Hangi işlemin en çok belleği kullandığını kontrol etme


33

freeProd sunucusundan birini kontrol ettiğimde , belleğin% 70'inin kullanıldığını gösteriyor:

             total       used       free     shared    buffers     cached
Mem:     164923172  141171860   23751312          0    4555616   20648048
-/+ buffers/cache:  115968196   48954976
Swap:      8388600          0    8388600

Ancak hafızanın hangi işlemi kullandığını bulamadım, topkomutu denedim ve% 1.1 ve% 5.4 oranında hafıza kullanarak işlemi gösteriyor

Belleği hangi işlemin kullandığını nasıl bulabilirim?

Aşağıda en iyi komut sonuçları verilmiştir:

15085 couchbas  25   0 2784m 2.4g  40m S 183.7  1.5 299597:00 beam.smp
28248 tibco     18   0  124m 100m 3440 S 20.9  0.1   2721:45 tibemsd
15334 couchbas  15   0 9114m 8.6g 3288 S  9.0  5.4  12996:28 memcached
15335 couchbas  18   0  6024  600  468 S  2.0  0.0   1704:54 sigar_port
15319 couchbas  15   0  775m 2516  944 S  0.7  0.0 269:13.41 i386-linux-godu
12167 tibco     16   0 11284 1464  784 R  0.3  0.0   0:00.04 top
12701 root      15   0  451m 427m 2140 S  0.3  0.3  18:25.02 controller
13163 root      11  -5     0    0    0 S  0.3  0.0 289:58.58 vxglm_thread


Hızlı cevap verdiğiniz için teşekkür ederiz, tüm açık dosyaların ne olduğunu ve hangi dosyanın memeori yediğini kontrol etmenin bir yolu var mı?

1
Üst çıkışı sıralamaya çalışın - çalışırken, Shift + m tuşlarına basın
Eenoku

Yanıtlar:


50

Bu size en çok belleği kullanan ilk 10 işlemi gösterecektir:

ps aux --sort=-%mem | awk 'NR<=10{print $0}'

üst kullanma: üst açtığınızda mbellek kullanımına bağlı olarak işlem kısa sürecektir.

Fakat bu probleminizi çözmeyecektir, Linux'ta her şey dosya ya da süreçtir. Böylece açtığınız dosyalar da hafızayı yer. bu yüzden bu yardımcı olmayacak.

lsof Açılan tüm dosyaları size dosya boyutunda veya dosya bayt cinsinden gösterir.


5
headBu awk betiğinin yerine kullanabilirsiniz - aynı çıktıyı verir ve birçok garip karakter yazarak kendinizi kurtarırsınız.
strafor uçmak


6

En çok belleği kullanarak işlemi almak için ps komutunu ve sıralama yapabilirsiniz . Ayrıca, görmek istediğiniz diğer işlem ayrıntılarını belirtmenize de izin verir:

ps -eo pmem,pcpu,rss,vsize,args | sort -k 1 -n -r | less

Not: Yukarıdaki hafıza sütununuzun ilk " sort -k 1 -n -r " olduğunu varsayar.


3

Hangi slab nesnelerinin çekirdek tarafından kullanıldığını görüntülemek için slabtop komutunu kullanabilirsiniz.
Ayrıca / proc / meminfo çıktısını kontrol edebilirsiniz.

Çıktıdaki bu 2 çizgiyi arayın.

Slab:              68136 kB
SReclaimable:      21208 kB 

Yukarıdaki örnekte, çekirdek tarafından kullanılan 68 MB slab önbelleği gösterilmekte ve 21 MB geri kazanılabilmektedir. Eğer teknik Burada anlatılan kullanabilirsiniz ıslah etmek https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html-single/Performance_Tuning_Guide/#s-memory-tunables

echo 2 > /proc/sys/vm/drop_caches  

1

Etkileşimli bir analiz için, sıralama düzenini seçmek için htopişlev tuşuna basabilir F6, örneğin PERCENT_CPU(yüzde olarak bellek kullanımı), M_RESIDENT(yerleşik bellek boyutu, kullanılan gerçek bellek), M_SIZE(sanal bellek boyutu) veya M_SHARE(boyutu paylaşılan hafıza). İlk ikisi ilgili sayılardır .

Yeşil çizgiler ipliktir. Vur (büyük harf) Kve Honları gizlemek için.

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.