/proc/meminfoで利用可能なRAMを測定するには、ramdisk(initrd)を使用してください。

/proc/meminfoで利用可能なRAMを測定するには、ramdisk(initrd)を使用してください。

initrdPXE経由でディスクイメージを起動しましたが、RAMディスクのシステム全体でした。システムの実際の使用可能なメモリ(バッファとファイルシステムキャッシュを除く)を測定したいと思います。 MemFree、Buffers、Cachedに値を追加すればよいと聞きました/proc/meminfo。既存のシステムでは、これは正確な結果を提供します。

しかし、私のRAMディスク設定では正確な結果が得られません。 RAMディスクが使用するメモリが「キャッシュ済み」値に追加されたとします。

[root@node1 ~]# cat /proc/meminfo
MemTotal:        8173700 kB
MemFree:         7443696 kB
Buffers:               0 kB
Cached:           650236 kB
SwapCached:            0 kB
MemCommitted:          0 kB
VirtualSwap:           0 kB
Active:            27156 kB
Inactive:         632204 kB
Active(anon):       4636 kB
Inactive(anon):     4616 kB
Active(file):      22520 kB
Inactive(file):   627588 kB
Unevictable:           0 kB
Mlocked:               0 kB
SwapTotal:             0 kB
SwapFree:              0 kB
Dirty:                 0 kB
Writeback:             0 kB
AnonPages:          9156 kB
Mapped:             8712 kB
Shmem:               128 kB
Slab:              38548 kB
SReclaimable:      29420 kB
SUnreclaim:         9128 kB
KernelStack:         536 kB
PageTables:         1268 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:     4086848 kB
Committed_AS:      51216 kB
VmallocTotal:   34359738367 kB
VmallocUsed:      288032 kB
VmallocChunk:   34359448036 kB
HardwareCorrupted:     0 kB
AnonHugePages:         0 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
DirectMap4k:       10240 kB 
DirectMap2M:     8378368 kB

残念ながら、これは私が計算したい2つの指標である%MemUsedとAmountMemFreeActualに誤った値を提供します。 Ramdiskの場合、「キャッシュ」値は少なくとも部分的にリサイクルできないため、実際に使用可能なメモリを計算するために使用することはできません。

どちらも正しく計算するには、RAMディスクのメモリ使用量を知る必要があり、単に「キャッシュ」値を使用することはできないようです。これは、キャッシュされた他のファイルシステムデータも含めることができるためです。

私が知っている限り、それは回復不可能なメモリであるため、両方の指標からRAMディスクのメモリ使用量を除外することが望ましいです。どこを見るべきか考えがありますか?

編集:「無料」(@answer1)は同じエラー値を提供します。とにかく、「free」出力の「free」値は誤解を招く可能性があります。 「空き」メモリは、通常「空き」+「バッファ」+「キャッシュ」です。私の問題は、通常、キャッシュされたファイルシステムデータとは異なり、RAMディスクを回復不可能なメモリに回復できないことです。

答え1

free使用可能なRAMの量を決定するためにこのコマンドを使用できない理由はありますか?

# free output in MBs
$ free -m
             total       used       free     shared    buffers     cached
Mem:          7800       6724       1075          0        397       1952
-/+ buffers/cache:       4374       3425
Swap:         5823         27       5796

上の画像を見ると、バッファとキャッシュがない場合、約3.4GB程度の空き容量があることがわかります。

関連情報