不明な理由によるLinuxの高RAM使用


9

これを探して、「キャッシュされた」数値を正しく解釈しない人々の投稿のみを見つけた後、私はこの質問をすることにしました。

私はいくつかのサーバーを手元に持っていますが、それらは奇妙に動作します。つまり、RAMの使用率は非常に高く、明確な理由はありません。目に見えないプロセスには大量の「使用済み」RAMがあるように見えます(私は「使用済み」を意味します)。

ここにいくつかの情報があります:

  • すべてのサーバーがSLES 11を実行
  • カーネルは3.0.76です
  • すべてのサーバーがVMWare ESXインフラストラクチャの下でゲストとして実行されます
  • サーバーをセットアップしておらず、OSの選択についても発言権がなく、仮想化インフラストラクチャにアクセスできません
  • すべてのサーバーは同じように設定され、同じソフトウェアセットを実行します(クラスターです。そうですね、仮想化クラスター、yada yada、言ったように:私はそれについて何も言わなかったのです)。

そしていくつかのシェル出力:

root@good-server:# free -m
             total       used       free     shared    buffers     cached
Mem:         15953      14780       1173          0        737       8982
-/+ buffers/cache:       5059      10894
Swap:        31731          0      31731

root@good-server:# python ps_mem.py
[... all processes neatly listed ...]
---------------------------------
                          4.7 GiB
=================================

root@bad-server:# free -m
             total       used       free     shared    buffers     cached
Mem:         15953      15830        123          0        124       1335
-/+ buffers/cache:      14370       1583
Swap:        31731         15      31716

root@bad-server:# python ps_mem.py
[... all processes neatly listed ...]
---------------------------------
                          4.0 GiB
=================================

良いサーバーの/ proc / meminfoの内容

MemTotal:       16336860 kB
MemFree:          112356 kB
Buffers:          138384 kB
Cached:          1145208 kB
SwapCached:         1244 kB
Active:          4344336 kB
Inactive:        1028744 kB
Active(anon):    3706796 kB
Inactive(anon):   382724 kB
Active(file):     637540 kB
Inactive(file):   646020 kB
Unevictable:           0 kB
Mlocked:               0 kB
SwapTotal:      32493560 kB
SwapFree:       32477728 kB
Dirty:              1248 kB
Writeback:             0 kB
AnonPages:       4087776 kB
Mapped:            60132 kB
Shmem:               156 kB
Slab:             274968 kB
SReclaimable:     225864 kB
SUnreclaim:        49104 kB
KernelStack:        4352 kB
PageTables:        16400 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:    40661988 kB
Committed_AS:    6576912 kB
VmallocTotal:   34359738367 kB
VmallocUsed:      311400 kB
VmallocChunk:   34359418748 kB
HardwareCorrupted:     0 kB
AnonHugePages:         0 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
DirectMap4k:       73728 kB
DirectMap2M:    16703488 kB

不良サーバーの/ proc / meminfoの内容

MemTotal:       16336860 kB
MemFree:         1182320 kB
Buffers:          756244 kB
Cached:          8695688 kB
SwapCached:            0 kB
Active:         13499680 kB
Inactive:         843208 kB
Active(anon):    4853460 kB
Inactive(anon):    37372 kB
Active(file):    8646220 kB
Inactive(file):   805836 kB
Unevictable:           0 kB
Mlocked:               0 kB
SwapTotal:      32493560 kB
SwapFree:       32493560 kB
Dirty:              1268 kB
Writeback:             0 kB
AnonPages:       4890180 kB
Mapped:            84672 kB
Shmem:               252 kB
Slab:             586084 kB
SReclaimable:     503716 kB
SUnreclaim:        82368 kB
KernelStack:        5176 kB
PageTables:        19684 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:    40661988 kB
Committed_AS:    6794180 kB
VmallocTotal:   34359738367 kB
VmallocUsed:      311400 kB
VmallocChunk:   34359419468 kB
HardwareCorrupted:     0 kB
AnonHugePages:         0 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
DirectMap4k:      112640 kB
DirectMap2M:    16664576 kB

TL; DR-これらを並べて比較すると、主な違いは次のとおりです(BADserver-GOODserver):

MemFree       -1070 MB
Cached        -7550 MB
Active        -9155 MB
Active(anon)  -1147 MB
Active(file)  -8009 MB
AnonPages     - 802 MB

他の違いはかなり小さく、期待できる範囲内です(ただし、自分で確認できます)

ご覧のように、適切なサーバーでは、すべてのプロセスのすべてのRESおよびSHRメモリの合計はfree -m、「使用済み-/ +バッファー/キャッシュ」の値の出力とほぼ一致しています。これは、期待どおりです。 ?

次に、不良サーバーを見てください。free -m「使用済み-/ +バッファー/キャッシュ」の値の出力は、予想よりも約3倍高く、すべてpsを合計するとわかります。

これ/proc/meminfoは私に言うこととも一致します。

これまでのところ、それがどのように可能かさえわかりません。ここで何が起こっているのでしょうか?


/proc/meminfoあなたが主張する両方の出力は良いサーバーのためのものですか?悪いサーバー参照も提供できますか?
Matthew Ife

VMware vSphereコンソールまたはVirtual Centerにアクセスできますか?または、ゲストのメモリに関連するいくつかのことを確認する方法はありますか?
ewwhite 2015

/ proc / zoneinfoの出力を投稿してください
Matthew Ife

@ewwhiteいいえ、残念ながら、オペレーティングシステム自体以外には一切アクセスできません。
luxifer 2015

@MatthewIfe meminfoラベルがタイプミスでした-修正しました... zoneinfoのコンテンツを
取得してい

回答:


12

VMwareのメモリバルーニングの問題があると思います。vSphereインフラストラクチャ全体のメモリのオーバーコミットメントが高すぎる可能性があります。vSphere vCenterにアクセスせずにこれを修正することはできませんが、vmtoolsがインストールされていると仮定すると、仮想マシン内からこれを検出できるはずです。

の出力を投稿できますvmware-toolbox-cmd stat balloonか?

また、16GBのRAMが割り当てられています。誰お尋ねくださいある質問にVM上に置かれた手動のRAMの制限がある場合、インフラのコントロールに。


vmware linux vmsでバルーニングがどのように機能するかを読んだことが原因だと思います。私はかなり感心していませんが、「使用された」ページのためにVM側からの方法を提供していません。
Matthew Ife

1
これは確かに正しいと思います...良いサーバーは "o MB"を示します...悪いサーバーは "10092 MB"を示します。これは私たちが見ているものとほぼ一致しています!
luxifer 2015

@luxiferだから今あなたたちはそれ修正する必要があります。これは、VMの人工的なRAM制限を削除するか、別のESXiホストにvMotionすることを意味します。VMwareインフラストラクチャチームに、これがより広範囲に及ぶ問題であるかどうかを確認してください。
ewwhite 2015

@ewwhite必ず通知します。ただし、これはお客様のインフラストラクチャであり、通常はこれを識別しているはずです。残念ながら、それは、世界規模のITサービスプロバイダーが機能しているほど大きくはありません;)
luxifer

@luxifer真剣に、これはあらゆる種類の組織で発生する可能性があり、vSphereインフラストラクチャの管理を担当している人々はそれを認識していないようです。
ewwhite 2015
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.