Bilinmeyen bir nedenle Linux yüksek RAM kullanımı


9

Bunu araştırıp yalnızca "önbelleğe alınmış" rakamı doğru yorumlamayan kişilerin gönderilerini bulduktan sonra bu soruyu sormaya karar verdim.

Elimde garip davranan bazı sunucularım var. Yani, RAM kullanımları belirgin bir sebep olmadan çok yüksektir. Görünmez bir süreçte birçok "kullanılmış" RAM varmış gibi görünüyor (ve "kullanılmış" demek istiyorum).

İşte bazı bilgiler:

  • tüm sunucular SLES 11 çalıştırır
  • çekirdek 3.0.76
  • tüm sunucular VMWare ESX altyapısı altında misafir olarak çalışır
  • Sunucuları kurmadım ve işletim sistemi seçiminde söz sahibi değildim ve sanallaştırma altyapısına erişimim yok
  • tüm sunucular benzer şekilde kurulur ve aynı yazılım setini çalıştırırlar (bir küme ve evet, biliyorum, sanallaştırılmış küme, yada yada: Söylediğim gibi)

Ve bazı kabuk çıktıları:

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
=================================

İyi sunucunun / proc / meminfo içeriği

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

Kötü sunucunun / proc / meminfo içeriği

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 - bunları yan yana karşılaştırırsanız, ana farklar şunlardır (BADserver - GOODserver):

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

Diğer farklılıklar oldukça küçüktür ve kişinin bekleyebileceği sınırlar dahilindedir (ancak kendiniz görebilirsiniz)

Gördüğünüz gibi, iyi sunucuda tüm işlemlerin tüm RES ve SHR belleklerinin toplamı, free -m"kullanılmış - / + tamponlar / önbellek" değeri için çıktıya oldukça yakındır - bu beklediğiniz şeydir, doğru ?

Şimdi kötü sunucuya bakın: free -m"used - / + buffers / cache" değeri için beklediğinizden yaklaşık 3 kat daha yüksek bir değer var, her şeyi pssize gösterebiliriz.

Bu /proc/meminfobana söylediklerine de uyuyor.

Şimdiye kadar bunun nasıl mümkün olduğu hakkında hiçbir fikrim yok. Burada neler oluyor?


Her iki çıktı /proc/meminfoda iyi bir sunucu için iddia? Kötü sunucu referansı da sağlayabilir misiniz?
Matthew Ife

VMware vSphere konsolunuza veya Sanal Merkezinize erişiminiz var mı? Ya da konuk hafızasıyla ilgili birkaç şeyi görmenin bir yolu var mı?
ewwhite

Lütfen / proc / zoneinfo çıktısını gönderin
Matthew Ife

@whwhite no, ne yazık ki işletim sisteminin ötesinde hiçbir şeye kesinlikle erişemiyorum.
luxifer

@MatthewIfe meminfo etiketi bir yazım hatasıydı - düzeltildi ... şimdi zoneinfo içeriğini çekiyor
luxifer

Yanıtlar:


12

Sanırım bir VMware bellek balonlama sorununuz olabilir . VSphere altyapısı boyunca bellek fazla taahhüdünün çok yüksek olma olasılığı vardır. VSphere vCenter'a erişmeden bunu düzeltemezsiniz, ancak vmtools'un yüklü olduğunu varsayarak bunu sanal makinelerinizden algılayabilmeniz gerekir:

Lütfen çıktısını gönderebilir misiniz vmware-toolbox-cmd stat balloon?

Ayrıca, size 16GB RAM tahsis edildi. Kişiye isteyiniz olan söz konusu VM'lerin yerleştirilen herhangi bir manuel RAM sınırları olup olmadığını altyapının kontrolünde.


Balonun vmware linux vms üzerinde nasıl çalıştığını okuduktan sonra bunun sebebi olduğunu düşünüyorum. Gerçi 'kullanılmış' sayfalar için hesap için VM tarafından bir yol sunmuyorum oldukça etkilenmedim.
Matthew Ife

1
Bu gerçekten doğru bence ... iyi sunucu "o MB" gösterir ... kötü sunucu "10092 MB" gösterir, ki bu gördüğümüzle hemen hemen aynıdır!
luxifer

@luxifer Şimdi düzeltmeniz gerekiyor . Bu, VM'de yapay bir RAM sınırının kaldırılması veya başka bir ESXi ana bilgisayarına vMotioning anlamına gelir. VMware altyapı ekibinizden bunun daha yaygın bir sorun olup olmadığını görmesini isteyin .
ewwhite

@wwhite Onları kesin olarak bilgilendireceğim. Ancak, müşterilerimizden birinin altyapısıdır ve normalde bunu tanımlamış olmalıdırlar. Ne yazık ki, dünya çapında BT servis sağlayıcıları bu kadar büyük görünmüyor;)
luxifer

@luxifer Cidden, bunun her türlü kuruluşta olabileceğini ve vSphere altyapısını yönetmekle görevlendirilen insanların bunu gerçekleştirmediğini görüyorum .
ewwhite
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.