メモリを消費するプロセスを探す

メモリを消費するプロセスを探す

ボックスには96GBのRAMがあり、スワップはありません。

# free -m
             total       used       free     shared    buffers     cached
Mem:         96714      85762      10952          0         94       2185
-/+ buffers/cache:      83482      13232
Swap:            0          0          0

85GBメモリを使っているようですが、最上位命令でsort byをすると%MEM

メモリは32GBのみを使用し、残りはどこに行きますか?

ここに画像の説明を入力してください。

どんなアイデアがありますか?

編集する

# cat /proc/meminfo
MemTotal:         99036140     kB
MemFree:          10901516     kB
Buffers:          126816       kB
Cached:           2355968      kB
SwapCached:       0            kB
Active:           35103352     kB
Inactive:         2973732      kB
Active(anon):     34352040     kB
Inactive(anon):   1793248      kB
Active(file):     751312       kB
Inactive(file):   1180484      kB
Unevictable:      1892         kB
Mlocked:          0            kB
SwapTotal:        0            kB
SwapFree:         0            kB
Dirty:            8864         kB
Readahead:        0            kB
Writeback:        0            kB
AnonPages:        35596308     kB
Mapped:           693268       kB
Shmem:            549000       kB
Slab:             48846688     kB
SReclaimable:     48771520     kB
SUnreclaim:       75168        kB
KernelStack:      9864         kB
PageTables:       108668       kB
NFS_Unstable:     0            kB
Bounce:           0            kB
WritebackTmp:     0            kB
CommitLimit:      49518068     kB
Committed_AS:     41937368     kB
VmallocTotal:     34359738367  kB
VmallocUsed:      500436       kB
VmallocChunk:     34290219936  kB
HugePages_Total:  0
HugePages_Free:   0
HugePages_Rsvd:   0
HugePages_Surp:   0
Hugepagesize:     2048         kB
DirectMap4k:      7252         kB
DirectMap2M:      100620288    kB

ベストアンサー1

合計メモリ=使用可能メモリ+キャッシュ/バッファ+アクティビティ+非アクティブ

         = 10901516 + 126816 + 2355968 + 35103352 + 2973732
         = 51461384 KB
         = 49 GB 

不足しているメモリ = 96GB - 49GB = 47GB 不足しているメモリは、タブレットメモリ(48846688kB)とほぼ同じです。いくつかのカーネルモジュールからメモリが漏れていると推測されます。

さらに調査するには、/proc/slabinfo および labtop コマンドの出力を印刷し、vmware で実行している場合は vmware-toolbox-cmd stat bubble および vmware-toolbox-cmd stat memlimit の出力も印刷します。

編集する

インターネットで検索してみると、48646536kBを消費するdentryカーネルモジュールがあるようです。https://serverfault.com/questions/561350/unusually-high-dentry-cache-usageこれは、LibcurlにバンドルされているNSS(Network Security Services)ライブラリで問題が発生することを示しています。

少なくともnss-softokn(nss-utilsに必須の依存関係がある)をアップグレードするだけです。利点を得るには、libcurlを使用するプロセスに環境変数NSS_SDB_USE_CACHEを設定する必要があります。この環境変数が存在する場合、存在しないファイルの高価なスキャンをスキップできます。 」

試してみて教えてください。

おすすめ記事