Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

Índice

Índice
outlinetrue
stylenone
exclude.*ndice

 

Ferramenta

Existem diversas ferramentas de monitoramento de memcached disponíveis no mercado, como o phpMemcachedAdmin, o memcache-top, o statsproxy, além do próprio console do memcahced acessado por telnet. Utilizaremos phpMemcachedAdmin como ferramenta de monitoração, ele possui uma interface web simples e fácil de utilizar também iremos enumerar alguns pontos o que devem ser monitorados e soluções de problemas.

 

Guia de instalação do phpMemcachedAdmin

O  phpMemcachedAdmin deve ser baixado no site  https://code.google.com/p/phpmemcacheadmin/ , ele é um script simples em php e como tal deve rodar em um servidor http que tenha suporte a php.

...

seguindo as instruções do site devemos descompactar o pacote, dar permissão de execução aos scripts e permissão de escrita no arquivo de configuração dos servidores e na pasta em que são gerados os relatórios 

na pasta raiz do seu servidor ex:

Bloco de código
languagexml
/var/www/

...


mkdir phpMemcachedAdmin

...


cd phpMemcachedAdmin

...


wget http://phpmemcacheadmin.googlecode.com/files/phpMemcachedAdmin-1.2.2-r262.tar.gz

...


tar -xvzf phpMemcachedAdmin-1.2.2-r262.tar.gz

...


chmod +rx *

...


chmod 0777 Config/Memcache.php

...


chmod 0777 Temp/

 

Como configurar

Apontar o navegador para a instalação do phpMemcahedAdmin em seu servidor, no caso nossa instalação está em http://localhost/phpMemcachedAdmin.

 

Image Modified

 

Inicialmente o monitorador já vem configurado para se conectar a um memcached local na máquina em que foi instalado, caso o memcached esteja instalado em outro local devemos acessar o link "Edit Configuration" localizado no canto superior direito que erá direcionar a página abaixo.

Image Modified

 

Nessa tela é possível monitorar varias instalações de memcached, para a nossa configuração apenas vamos editar o endereço do servidor e a porta, lembrando que a porta padrão é a 11211, após salva as alterações já podemos seguir as páginas de monitoração clicando em "See Live Stats" ou "See Stats for"  mais a seleção do servidor no combo ao lado .

Caso as configurações apresente algum problema você visualizara a página abaixo, caso isso ocorra verifique se o memcached está funcionando e alcançável do servidor que o phpMemcached foi instalado, uma maneira de verificar isso é fazendo um telnet no endereço do memcached na porta 11211.

Image Modified

 

Pontos de atenção que devem ser monitorados e soluções

...

Deck of Cards
idstubFlex
historyfalse
Card
defaulttrue
effectDuration0.5
id1
label1º Passo
effectTypefade

 

No gráfico "Cache Size Graphic" temos uma clara indicação

...

do tamanho da memoria alocada para ele versus o consumo e o desperdício de memoria. O Fluig foi desenhado de maneira a nunca expirar um registro que está no cache, porem um alto consumo de memoria pode fazer com que o memcached de forma voluntária expurgue os registros mais antigos fazendo com que os usuários percam certas permissões, esse comportamento é evidenciado na quantidade de "Evictions" que o sistema está fazendo.

O memcached foi desenhado para trabalhar com blocos de 1 mega por padrão, esses blocos recebem o nome de Slab e agrupam registros de tamanhos similares. Quando solicitamos ao memcached para guardar um registro, é realizado um cálculo para saber em Slab ele vai ser inserido, se o Slab estiver cheio, vai ser criado uma nova página.  No exemplo abaixo, o Slab 1 guarda informações do tamanho de 96 bytes, como o tamanho da página do Slab foi parametrizado para 5 megas em uma conta aproximada  (1024*1024*5) / 96 = 54613, chegamos a conclusão que esse Slab comporta 54613 registros, caso mais um registro seja inserido o memcached irá criar uma nova página para esse Slab.

Image Added

 

Card
effectDuration0.5
id2
label2º Passo
effectTypefade

 

Existem situações

...

, em que podemos ter grupos com mais de 100 mil usuários e que acaba gerando registros maiores que o suportado por padrão, para esses casos, devemos parametrizar o memcached para trabalhar com Slabs maiores alterando o parâmetro  -I ( I de Igreja).

 

Image Modified

 

Card
effectDuration0.5
id3
label3º Passo
effectTypefade

 

No exemplo abaixo a configuração do tamanho da página do slab foi de 5 megas, esse numero é relativamente elevado e acaba gerando um grande desperdício de memoria, podemos verificar no exemplo abaixo que o tamanho máximo de registro é de 1.8 megas, logo podemos ter uma configuração mais assertiva e com um menor desperdício se o parâmetro fosse próximo dos 2 megas

O desperdício acontece quando é criado uma página no slab, toda a memoria configurada é alocada, no caso 5 megas, se essa página não recebe mais nenhum ou poucos registros toda essa área vai ficar subutilizada.

 

Image Modified

 

 

 

Como corrigir

...

As parametrizações do memcached é uma matemática que estamos desvendando aos poucos, hoje já sabemos que no ambiente da Totvs necessita de necessário uma configuração de tamanho de página de Slab maior que o padrão e assim há um consumo maior de memoria, as configurações são -m512 -i5m , ou seja, estamos alocando 512 megas de memoria e 5 megas para as página do Slab.

...