私のサーバーはカーネル4.18を実行しており、いくつかのメモリがすぐに欠落しているようです。一般的な原因(カーネルスラブメモリ、ページキャッシュ)は除外されました。
およそ 6GB 程度が使用されます (MemTotal - MemAvailable) プロセスとカーネルボード、shmem で使用するスペースをすべて合わせると、たったの 1GB に過ぎません。コールドスタート以降です。残りの5人はどこに行きましたか?
最も奇妙なことは、同じアプリケーションを実行している同じサーバーがあり、MemAvailableが実際にそこより5 GB高いことです。
# ps fauxw | sed 1d | awk '{ x += $6 } END { print x }'
757368
# cat /proc/meminfo
MemTotal: 32826040 kB
MemFree: 26493788 kB
MemAvailable: 26322932 kB
Buffers: 11948 kB
Cached: 72584 kB
SwapCached: 0 kB
Active: 247756 kB
Inactive: 41348 kB
Active(anon): 204952 kB
Inactive(anon): 1012 kB
Active(file): 42804 kB
Inactive(file): 40336 kB
Unevictable: 0 kB
Mlocked: 0 kB
SwapTotal: 0 kB
SwapFree: 0 kB
Dirty: 4 kB
Writeback: 0 kB
AnonPages: 204632 kB
Mapped: 33052 kB
Shmem: 1396 kB
Slab: 219376 kB
SReclaimable: 30744 kB
SUnreclaim: 188632 kB
KernelStack: 18960 kB
PageTables: 12548 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 16413020 kB
Committed_AS: 4565744 kB
VmallocTotal: 34359738367 kB
VmallocUsed: 0 kB
VmallocChunk: 0 kB
HardwareCorrupted: 0 kB
AnonHugePages: 0 kB
ShmemHugePages: 0 kB
ShmemPmdMapped: 0 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
DirectMap4k: 186396 kB
DirectMap2M: 9152512 kB
DirectMap1G: 26214400 kB
答え1
私の質問に答えるには:
結局のところ、メモリ使用量はネットワークインターフェイスリングサイズ(ethtool -G)のさまざまな設定に関連していることがわかりました。このホストのRXとTXの数は4096に増え、それぞれ6つの10G NICと多くのキュー(56 vcore)を含むGBメモリを使用しました。
しかし、まだ奇妙なことは、メモリ使用量が/proc/情報のどこにも表示されないようです。