
Acabei de ler que a configuração incorreta de innodb_buffer_pool_size pode causar paginação no nível do sistema operacional. Alguém sabe como isso pode acontecer e como evitar isso? Atualmente estou usando CentOS 4 e MySQL 5.0.41
Responder1
Lugaropção memlockem meu.cnf. No CentOS5 o SELinux estava impedindo o bloqueio do processo mysqld na memória e devo criar meu próprio módulo para habilitar isso.
Outra possibilidade é usarPáginas grandes, que sempre reside na memória. Você deve se lembrar de colocar ulimit -l unlimited
em seu script de inicialização do mysqld
Responder2
Em termos simples, para evitar a paginação, você precisa manter o tamanho do buffer pequeno o suficiente para caber completamente na memória, junto com tudo o mais para o qual o sistema operacional usa a memória. Se os requisitos totais de memória se tornarem maiores que a memória física, ela será trocada. Se você não tiver espaço de troca, algo terá que quebrar.
Responder3
Se você tiver a troca habilitada em sua máquina e tiver buffer pools maiores do que a RAM física, isso fará com que as coisas sejam trocadas para o disco para liberar RAM para seus buffer pools. Evite isso desativando o swap ou certificando-se de que o mysql nunca consumirá RAM física suficiente para ser trocado.