OS 레벨 및 MySQL

OS 레벨 및 MySQL

innodb_buffer_pool_size의 잘못된 구성으로 인해 OS 수준 페이징이 발생할 수 있다는 내용을 방금 읽었습니다. 어떻게 이런 일이 발생할 수 있고 이를 방지하는 방법을 아는 사람이 있나요? 현재 저는 CentOS 4와 MySQL 5.0.41을 사용하고 있습니다.

답변1

장소memlock 옵션my.cnf에 있습니다. CentOS5에서 SELinux는 메모리에서 mysqld 프로세스를 잠그는 것을 방지했으며 이를 활성화하려면 자체 모듈을 만들어야 했습니다.

또 다른 가능성은대형 페이지, 항상 메모리에 상주합니다. ulimit -l unlimitedmysqld 시작 스크립트에 다음을 입력해야 합니다.

답변2

간단히 말해서, 페이징을 방지하려면 OS가 메모리를 사용하는 다른 모든 것과 함께 메모리에 완전히 들어갈 수 있을 만큼 버퍼 크기를 작게 유지해야 합니다. 총 메모리 요구 사항이 실제 메모리보다 커지면 교체됩니다. 스왑 공간이 없다면 뭔가가 깨져야 합니다.

답변3

머신에서 스왑이 활성화되어 있고 물리적 RAM보다 버퍼 풀이 더 큰 경우 버퍼 풀을 위한 RAM을 확보하기 위해 디스크로 물건을 스왑 아웃하게 됩니다. 스왑을 비활성화하거나 mysql이 스왑 아웃하기에 충분한 물리적 RAM을 먹지 않도록 하여 이를 방지하십시오.

관련 정보