Sar: Estatísticas de memória livre (incluindo buffers, cache)

2

Os comandos free fornecem a quantidade de memória livre em duas formas: memória completamente livre (a linha Mem ) e memória descartável usada para caches e buffers (a linha -/+ buffers/cache ):

-bash-3.2$ free -m
             total       used       free     shared    buffers     cached
Mem:         16057      15173        884          0         17       2520
-/+ buffers/cache:      12635       3422
Swap:        12287       4937       7350

Neste exemplo, há 884 MB de memória livre excluindo buffers e cache e 3422 MB de memória livre, incluindo buffers e cache.

Como posso obter a segunda medição (memória livre, incluindo buffers e cache) em sar ?

    
por Adam Matan 17.04.2013 / 14:45

1 resposta

7

O sinal -r para sar fornecerá kbmfree, kbmemused, kbbuffers e kbcached. Não, infelizmente, os totaliza como a coluna - / + buffers / cache como o comando free , então você terá que passar por um script awk ou perl para totalizá-los. Tente isto:

sar -r |\
awk '
{
    if (NR > 3 && $3 != "kbmemfree" && $3 != "") {
        if ($1 != "Average:") {
            kbmemfree = $3
            kbmemused = $4
            kbbuffers = $6
            kbcached = $7
        }
        else {
            kbmemfree = $2
            kbmemused = $3
            kbbuffers = $5
            kbcached = $6
        }

        kbfree_plus_bufcache = kbmemfree + kbbuffers + kbcached
        kbused_minus_bufcache = kbmemused - kbbuffers - kbcached

        printf("%s %15d %15d\n", $0, kbfree_plus_bufcache, kbused_minus_bufcache)
    } else if ($3 == "kbmemfree") {
        printf("%s %15s %15s\n", $0, "kbfree+bufcache", "kbused-bufcache")
    } else {
        printf("%s\n", $0)
    }
}'
    
por 17.04.2013 / 15:19