Usando o Linux / proc / meminfo para evitar a sobrecarga do servidor via troca

1

Estou tentando encontrar uma métrica para usar que me dirá se iniciar outro processo estimado para usar N bytes de memória terá um impacto adverso no desempenho do sistema.

Eu sei que /proc/meminfo fields MemFree , Buffers e Cached podem ser adicionados para fornecer a memória total disponível para os programas. No entanto, eu preferiria não extrair o cache que está realmente sendo usado para um bom efeito (a carga de trabalho resulta em pontos de acesso de disco).

A entrada Active em /proc/meminfo parece que pode ser comparada com MemTotal para determinar quanta memória está disponível (seja trocando algo ocioso ou sendo livre, em primeiro lugar), mas eu tenho não consegui encontrar muita informação sobre Active e por isso não tenho a certeza.

Devo ter como meta a Active de memória mais próxima de MemTotal sem ultrapassar o que posso gerenciar?

Existe alguma outra maneira de estimar o comportamento de memória da execução de outro processo?

    
por Eli Stevens 02.04.2013 / 08:44

1 resposta

0

Após a experimentação, parece que a memória ativa é um bom indicador.

O que observamos é que, à medida que a memória livre caía para zero, ocorreram saídas de páginas de frequência muito baixa à medida que a memória inativa começou a ser trocada (para nosso sistema, da ordem de 10s a 100s por segundo). A troca real resultaria em 10 a 100 vezes mais saídas de páginas por segundo. Acabamos escolhendo 1.000 page outs por segundo como nosso ponto de corte para diferenciar entre a retirada de memória inativa e a troca real com impacto no desempenho.

Não tivemos muita sorte em empurrar a memória ativa para 100% do total, mas isso se deve em grande parte ao formato do trabalho que estamos fazendo (ficamos com o limite máximo da CPU). Decidimos que, para nossa carga de trabalho, qualquer coisa com mais de 75% de memória ativa significava que não deveríamos mais iniciar um novo processo, embora nossos limites de carga e taxa de geração de novos processos sejam tipicamente o que realmente limita a criação do processo. advertências pesadas.

    
por 05.04.2013 / 21:18