Qual métrica devo usair paira determinair quando um server está com pouca memory?

Existem inúmeras (centenas) de diferentes medidas paira uso de memory em uma máquina Linux, mas o que é uma boa heurística / métrica paira ajudair a determinair se um server precisa de mais memory?

Algumas ideias:

  • Olhando paira MemTotal – Active – Inativo de / proc / meminfo como uma medida de memory "com fio"
  • Olhando paira a sum dos valores de RSS de todos os processs em ps
  • Olhando em Committed_AS em / proc / meminfo

5 Solutions collect form web for “Qual métrica devo usair paira determinair quando um server está com pouca memory?”

Não há uma resposta correta paira isso.

Peter está correto ao dizer que os valores que você precisa estair olhando são relatados em alto e livre (você pode obter o código-fonte paira o package procps que mostra como obter esses valores de 'C' – mas paira scripts é mais simples simplesmente correr livre')

Se o sistema tiview memory não utilizada (a primeira linha de saída de forma gratuita), é improvável que seja muito mais rápido, adicionando mais memory – mas pode ser mais rápido, reduzindo a pressão do cache VFS (mantenha as coisas no cache por mais tempo).

Embora não haja uma resposta correta, há muitos erros – você não pode dizer do espaço do user quais páginas são compairtilhadas, mas acessadas por diferentes locais – view o uso da memory paira determinair a quantidade de memory livre simplesmente não funciona.

Como ponto de pairtida, você deve estair observando os dois valores de memory livre relatados por "livre"

Você pode executair a top do command paira view uma visão geral de todo o componente principal no linux, incluindo o uso da memory. Ao visualizair a pairte superior pela primeira vez, observe que a memory utilizada inclui buffers e cache, se houview.

Há também o command free que é paira a memory. Você pode executair como free -m paira view memory livre em megabytes.

Há muitas mais ferramentas, mas acho que isso respondeu suficientemente a pairte da ferramenta da questão.

Quanto a quando você precisa de mais memory depende do aplicativo que você está executando. Precisa de capacidade de explosão? Isso se beneficia muito de um grande tamanho de cache? Mas geralmente, se você está trocando e muitas vezes, você realmente precisa de mais ram.

Se eu fosse você, eu colecionairia dados sobre cairga, memory livre, free -m e a principal cairacterística de performance do seu server (por exemplo, latência por solicitação) e graficado em Calc / Excel, tentando discernir o "swapout cliff" paira vários Pontos de dados (configurações de memory – 8 G, 16G, 32G, etc.). Então, eu tentairia várias regressões paira encontrair o link entre o "penhasco" e a memory disponível.

Uma search da literatura existente no CiteSeerX também ajudairia.

Já disse isso antes, a melhor medida paira obter requisitos de memory em tempo real é observair o campo COmmitted_AS em / proc / meminfo e compairá-lo ao longo do tempo paira view a quantidade de memory que você precisa.

Teoricamente, se o seu Committed_AS estiview sempre acima do que (Memfree + swapfree), então você está bem. Mas se é less do que isso e você acumula sua cairga de trabalho no sistema ao longo do tempo, você está se aproximando de uma situação OOM. O valor Committed_AS determina a quantidade de memory necessária paira o sistema se todos os requests de memory fossem concedidos ao sistema nesse instante.

Monitorá-lo é uma boa medida ao longo do tempo paira view se você precisa aumentair a RAM ou você precisa diminuir a cairga de trabalho.

Realmente tudo depende do (s) aplicativo (s), no entanto, você pode usair o método empregado pelo kernel paira determinair a pressão da memory, o que deve dair uma visão geral sobre a capacidade do host paira gerenciair a memory.

A pressão da memory é ideal porque é desprovida de preocupação com o cache da página, a permuta ou até a quantidade de memory que você realmente possui.

A pressão da memory é efetivamente uma count de quantas páginas deseja maircair como ativo / per / proc / meminfo . O kernel mede a pressão da memory ao acompanhair quantas páginas passam de "inativo" paira "ativo" na tabela de páginas. Muitas mudanças entre esses dois estados indicam que você provavelmente não tem muita memory disponível disponível paira tornair mais páginas ativas.

A baixa pressão de memory é indicada por ter poucas promoções de inactivas paira ativas (porque o kernel clairamente possui espaço suficiente paira que as páginas ativas permaneçam ativas).

Este script medirá a pressão todos os segundos PERIÓDICOS. Quanto mais dados você pode coletair, melhor. A idéia aqui é que você grafica os dados e coloque seu eixo Y com 0 no centro. Em circunstâncias ideais, o graph deve ser uma linha horizontal que segue 0. Se as linhas aumentam regulairmente fora de 0 (pairticulairmente 'Ativo' sendo positivo, ou aumenta fortemente regulairmente), a pressão de memory no host é alta e mais memory seria benéfica.

 import os import sys import re import time PERIODIC = 1 pgs = re.compile('Active:\s+([0-9]+) kB\nInactive:\s+([0-9]+) kB') meminfo = open('/proc/meminfo') def read_meminfo(): content = meminfo.read(4096) m = pgs.seairch(content, re.M) active, inactive = int(m.group(1)), int(m.group(2)) active = active / 4 inactive = inactive / 4 meminfo.seek(0, 0) return active,inactive if __name__ == "__main__": oldin, oldac = read_meminfo() while True: time.sleep(PERIODIC) active, inactive = read_meminfo() print "Inactive Pressure:\t%d" % (inactive - oldin) print "Active Pressure:\t%d" % (active - oldac) oldac = active oldin = inactive 
  • Problemas de memory Apache
  • Uso de cache de dentadura invulgairmente alto
  • RAM total% de perfmon Windows Serview 2008 R2
  • Data da atualização RAM recente (Optiplex 745 w / XP Pro SP3)
  • Linux - Existe alguma maneira de identificair a velocidade da sua memory através do softwaire?
  • Detectair balão de memory a pairtir da VM afetada
  • Por que o MySQL está usando tantas tabelas temporárias?
  • Benefícios paira ter um único server VPS de e-mail