Linux: reduz a RAM usada para caches de disco, etc.

1

Eu tenho um servidor virtual e meu provedor me cobra por uso de recursos. Eu posso definir um limite máximo de RAM, mas ainda sou cobrado pela RAM usada, não pelo máximo (o preço é calculado a cada 5 minutos com base no uso real).

Usar toda a RAM seria normal, mas a política do Linux "RAM não utilizada é um desperdício de RAM" é insuficiente para este tipo de contabilidade, já que a máquina acabará usando toda a RAM disponível, e mesmo a maior parte como um disco Apenas cache, eu ainda tenho que pagar por isso.

Eu gosto de definir o limite no provedor um pouco maior para acomodar as necessidades de pico da RAM. Posso, de alguma forma, limitar a quantidade de memória que será usada para armazenar em cache, etc? Vamos dizer que eu reservo 3 GB e meu aplicativo + serviços de sistema normalmente precisam de 1 GB, mas se houver uma necessidade real, meu aplicativo pode usar 2 GB de RAM extra, mas quando inativo eu quero limitar o cache a tomar, e. somente até 500 MB de RAM livre, para que eu não precise pagar por 3 GB o tempo todo.

    
por Jan Hadáček 22.09.2016 / 09:42

1 resposta

0

A resposta vinculada O how-do-you-empty-the-buffers-and-cache-on-linux-system mostra como liberar seus caches (pagecache, dentries e inodes). Você precisaria fazer essa atividade de liberação repetidamente, talvez do cron. Eu não sei se funcionaria do jeito que você quer em um container OpenVZ, porque o gerenciamento de memória do OpenVZ parece complexo (ou talvez não documentado bem o suficiente). Não pretendo criticar o OpenVZ; é uma ótima solução de virtualização e pode espremer vários sistemas em um servidor físico.

Cool, linux-ftools pode ajudá-lo a ver quantas páginas de cache estão sendo usadas por arquivo.

Você também pode experimentar o swappiness e defini-lo como 100 para troca agressiva.

    
por 04.02.2017 / 12:02