Árvore de páginas

Versões comparadas

Chave

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

...

No gráfico "Cache Size Graphic" temos uma clara indicação to 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.

Existem situações, como na Totvs, 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).

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 nosso o tamanho da página do Slab foi parametrizado para 5 megas em uma conta aproximada  (1024*1024*5) / 96 = 54613, ou seja 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.

Existem situações, como na Totvs, 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).

 

 

 

No exemplo abaixo a configuração do tamanho de 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, no exemplo abaixo 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 um uma página no slab, toda a memoria configurada é alocada, no caso 5 megas, se esse slab essa página não recebe mais nenhum ou poucos registros toda essa área vai ficar subutilizada.

...

As parametrizações do memcached é uma matemática que estamos desvendando aos poucos, hoje já sabemos que no ambiente da Totvs necessitamos um necessita de 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 Slabs de 5 megas para as página do Slab.