Mostrando postagens com marcador mysql. Mostrar todas as postagens
Mostrando postagens com marcador mysql. Mostrar todas as postagens

segunda-feira, 23 de abril de 2012

Swap MySQL



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_NAMEVARIABLE_VALUE
binlog_cache_size32768
have_query_cacheYES
key_cache_age_threshold300
key_cache_block_size1024
key_cache_division_limit100
max_binlog_cache_size18446744073709547520
query_cache_limit1048576
query_cache_min_res_unit4096
query_cache_size1073741824
query_cache_typeON
query_cache_wlock_invalidateOFF
table_definition_cache256
table_open_cache457
thread_cache_size32

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



Pages read 1674521, created 2505362, written 10421938

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.

sexta-feira, 28 de outubro de 2011

InnoTop

O InnoTop foi desenvolvido para monitoramento do seu banco MySQL, através dele conseguimos verificar várias opções, conforme imagem abaixo:




Nele é possível, por exemplo, verificar as querys que estão sendo executadas, ver o status do InnoDB, observar vários status do seu banco, etc.


Instalação:
  1. Download do script em http://code.google.com/p/innotop/downloads/list
  2. Descompactação: tar-xzvf innotop-1.8.0.tar.gz
  3. Para executar o programa, executar: ./innotop --user=user --password=pass --delay=1
    • Nesse caso, o script irá capturar informações de 1 em 1 segundo.
Na primeira vez instalando o script, tive um problema com um dos plugins do CPAN [Can't locate Term/ReadKey.pm], facilmente solucionado seguindo os passos abaixo:
  1. sudo su -
  2. perl -MCPAN -e shell
  3. Configurar o CPAN conforme suas necessidades e configurações internas;
  4. Assim que entrar no console do CPAN, instalar o seguinte plugin:
    • install Term::ReadKey
    • exit

Pronto, agora, tudo deve estar funcionando com o innotop, aproveite essa boa ferramenta.


Esse é meu primeiro 'artigo', espero que seja útil.