Como reduzir buffers \ cache

3

Um sistema de monitoramento continua alertando que minha máquina está atingindo o limite de utilização de RAM que é 15 GBs .

Eu fiz algumas leituras e entendi que a aparente utilização de RAM não é real e que a RAM extra é usada para armazenar em cache a operação \ I \ O do disco em buffer para melhorar o desempenho do servidor. Estou executando o MySQL nesse servidor, esse é o único serviço notável em execução.

  • Então, como posso reduzir o disco I \ O cache \ buffering RAM para não romper o limiar? Isso poderia ser um problema do MySQL e não Linux?

Essa é a saída de free -gt

[root@ipk ~]# free -gt
             total       used       free     shared    buffers     cached
Mem:            15         15          0          0          0          9
-/+ buffers/cache:          5         10
Swap:            5          0          5
Total:          21         15          6

Versão do Linux é:

[root@ipk ~]# uname -rmo
2.6.32-220.el6.x86_64 x86_64 GNU/Linux
    
por Muhammad Gelbana 15.09.2013 / 15:39

2 respostas

13

Já que você não parece aceitar nem nossas opiniões, nem as várias páginas às quais nos ligamos como 'oficiais', talvez a Red Hat oficial documentação irá convencê-lo:

In this example the total amount of available memory is 4040360 KB. 264224 KB are used by processes and 3776136 KB are free for other applications. Do not get confused by the first line which shows that 28160KB are free! If you look at the usage figures you can see that most of the memory use is for buffers and cache. Linux always tries to use RAM to speed up disk operations by using available memory for buffers (file system metadata) and cache (pages with actual contents of files or block devices). This helps the system to run faster because disk information is already in memory which saves I/O operations. If space is needed by programs or applications like Oracle, then Linux will free up the buffers and cache to yield memory for the applications. If your system runs for a while you will usually see a small number under the field "free" on the first line.

    
por 15.09.2013 / 18:09
5

Isso tudo é bom e elegante, mas e o tempo de atraso entre ter que fazer a solicitação de memória, mapeá-la para o que o cache de disco precisa liberar? Claro, você pode dizer que é mínimo, ou nem perceptível, mas talvez eu me importe com os 0,0000001 segundos adicionados por causa desse processo. Quem é você para decidir como minha RAM é usada?

E se eu não quiser experimentar esse atraso? Talvez eu não me importe com meus aplicativos carregando mais devagar a partir da unidade, mas quero ocupar a RAM imediatamente, sem o tempo de atraso para remover a memória do cache de disco.

Como posso limitar a quantidade de RAM que meu cache de disco está ocupando? Não me diga que isso foi implementado sem uma maneira de fazer isso.

UPDATE : encontrou uma maneira de fazer isso.

echo 3 | sudo tee /proc/sys/vm/drop_caches

Faça um: free -m depois de executar o acima para confirmar. Funciona.

    
por 29.08.2015 / 16:11