web-dev-qa-db-ja.com

Sar:空きメモリ統計(バッファ、キャッシュを含む)

freeコマンドは、2つの形式で空きメモリの量を提供します。完全に空きメモリ(Mem行)と、キャッシュとバッファに使用される使い捨てメモリ(-/+ buffers/cache line):

-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

この例では、バッファとキャッシュを除いて884 MBの空きメモリがあり、バッファとキャッシュを含めて3422MBの空きメモリがあります。

sarで2番目の測定値(バッファとキャッシュを含む空きメモリ)を取得するにはどうすればよいですか?

2
Adam Matan

sar-rフラグは、kbmfree、kbmemused、kbbuffers、およびkbcachedを提供します。残念ながら、freeコマンドのように-/ + buffers/cache列のように合計することはないため、合計するにはawkまたはPerlスクリプトを介してパイプする必要があります。これを試して:

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)
    }
}'
8
Derek Pressnall