Problemas de relatório de memória

3

Quando vejo o monitor do sistema, ele informa que estou usando apenas 48% do RAM. O mesmo com o gkrellm. Mas todos os utilitários de linha de comando relatam diferentes. Aqui está a saída para liberar e / proc / meminfo. A única razão que posso pensar é que os utilitários gráficos negligenciam a contagem do cache. Mas isso ainda não está armazenado na memória física? Por que existe tal distinção entre os dois (gráfico e cmd-line). O cache não é importante?

Obrigado antecipadamente

grátis -o

             total       used       free     shared    buffers     cached
Mem:       1915936    1831836      84100          0      11280     874072
Swap:      3866620     146944    3719676

cat / proc / meminfo

MemTotal:        1915936 kB
MemFree:           81740 kB
Buffers:           11900 kB
Cached:           869224 kB
SwapCached:         4128 kB
Active:           722020 kB
Inactive:         887300 kB
Active(anon):     669976 kB
Inactive(anon):   235424 kB
Active(file):      52044 kB
Inactive(file):   651876 kB
Unevictable:       50812 kB
Mlocked:               0 kB
SwapTotal:       3866620 kB
SwapFree:        3719680 kB
Dirty:               460 kB
Writeback:             0 kB
AnonPages:        776964 kB
Mapped:            52052 kB
Shmem:            126384 kB
Slab:              77824 kB
SReclaimable:      37580 kB
SUnreclaim:        40244 kB
KernelStack:        2800 kB
PageTables:        33836 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:     4824588 kB
Committed_AS:    2622452 kB
VmallocTotal:   34359738367 kB
VmallocUsed:      560312 kB
VmallocChunk:   34359122920 kB
HardwareCorrupted:     0 kB
AnonHugePages:    118784 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
DirectMap4k:       12288 kB
DirectMap2M:     1949696 kB
    
por rubixibuc 29.12.2011 / 09:34

2 respostas

2

detalhes de / proc / meminfo é

MemTotal: total de RAM utilizável (por exemplo, RAM físico menos alguns bits reservados e o código binário do kernel)

MemFree: é a soma de LowFree + HighFree (estatística geral)

MemShared: 0; está aqui por razões de compatibilidade, mas sempre zero.

SwapCache: Memória que uma vez foi trocada, é trocada de volta, mas ainda está no swapfile (se a memória for necessária, ela não precisa ser trocada novamente porque ela já está no swapfile. Isso economiza I / O)

o cache descrito em / proc / meminfo é Memória no pagecache (diskcache) menos o SwapCache, veja aqui e esta explicação aqui

O gkrellm informa que ele calcula a memória livre e usada por

A memória usada e livre aqui é calculada a partir do kernel relatado usado e livre subtraindo ou adicionando os buffers e a memória cache. Vejo o README e compare com a linha "- / + buffers / cache:" do livre comando. Se você mostrar três krells de memória, o kernel "raw free" é o espaço depois da krell mais à direita.

se você executar free -m , verá colunas "buffers" e "cache", que informam sobre a quantidade de memória que o kernel está usando para buffers de sistema de arquivos, etc.

Esse tipo de dado em cache será liberado pelo kernel quando um aplicativo tentar alocar mais do que o que é "livre", e é por isso que a linha "- / + buffers / cache" é realmente a linha importante a prestar atenção quando você está verificando a memória livre em um sistema. veja aqui

    
por 29.12.2011 / 10:59
1

O cache é importante do ponto de vista do desempenho. Mas para memória livre: quando algo requer mais memória do que disponível gratuitamente, alguma memória cache será liberada automaticamente.

    
por 29.12.2011 / 11:33

Tags