Enfrentamos um problema complicado demais na ultima semana, o servidor novo de replicação que havíamos colocado no ar estava com um estranho problema de swap em disco, mesmo tendo memória o suficiente para execução no servidor.
A configuração da máquina era:
- 26GB Memória
- 128GB SSD
- CentOS release 6.2 (Final)
Depois de verificar a alocação de memória do InnoDB, percebeu-se que estavam corretamente configuradas:
show global variables like '%cache%';
VARIABLE_NAME | VARIABLE_VALUE |
binlog_cache_size | 32768 |
have_query_cache | YES |
key_cache_age_threshold | 300 |
key_cache_block_size | 1024 |
key_cache_division_limit | 100 |
max_binlog_cache_size | 18446744073709547520 |
query_cache_limit | 1048576 |
query_cache_min_res_unit | 4096 |
query_cache_size | 1073741824 |
query_cache_type | ON |
query_cache_wlock_invalidate | OFF |
table_definition_cache | 256 |
table_open_cache | 457 |
thread_cache_size | 32 |
e o show innodb status (convertidos para melhor entendimento):
=======
Total memory allocated 15G; in additional pool allocated 1,5G
Dictionary memory allocated 512M
Buffer pool size 11G
Free buffers 0
Database pages 989137
Modified db pages 305
Pending reads 0
Pending writes: LRU 0, flush list 0, single page 0
1.18 reads/s, 0.14 creates/s, 6.05 writes/s
Buffer pool hit rate 1000 / 1000
========
========
O que sobrou de opção foi verificar algo no sistema operacional, visto que não encontrava nada que pudesse responder esse swap que estava ocorrendo.
O Linux tem como padrão uma configuração de swappiness.
Mudando essa opção no Linux, setando a variável para gerenciar somente 15% do que vai - com o perdão da palavra - ‘swappar’
vim /etc/sysctl.conf
vm.swappiness=15
Assim, o slave parou de fazer swap. Pode ser que essa solução não se aplique ao seu problema, porém, essa é uma solução muito adotada por administradores de infra, o que deu um bom resultado no nosso ambiente.
Espero ter ajudado.
Nenhum comentário:
Postar um comentário