Bellek kullanımını grafik için basit bir araç?


14

Bellek kullanımını grafik olarak, örneğin pasta grafik olarak gösterecek bir komut dosyası var mı, her işlem ayrı bir dilim mi?

Zaman içinde bellek kullanımını grafiklendirmek için Munin gibi bir şey aramıyorum , daha ziyade işlem başına bellek kullanımını tek bir noktada göstermek istiyorum.

İsteğimi daha da belirsiz hale getirmek için, başsız bir sunucu (yani X uygulaması yok) içindir. En basit yol, bir PNG dosyası veya muhtemelen bir HTML dosyası yazmaktır (bu, işlemlerin filtrelenmesine izin vermek, grafik türleri arasında geçiş yapmak vb. İçin Javascript kullanabilir)

Yanıtlar:


13

İşlem başına bellek muhasebesi, bir dakika içinde ele alacağım birkaç nedenden dolayı zor. Basit izleme için gkrellmd veya nagios komut dosyaları muhtemelen yeterlidir. Daha fazla doğruluk istiyorsanız, daha sıkı görünmeniz gerekir.

smem Oransal Set Boyutu kavramını sunar :

Fiziksel belleğin büyük bölümleri genellikle birden fazla uygulama arasında paylaşıldığından, yerleşik set boyutu (RSS) olarak bilinen standart bellek kullanımı ölçüsü bellek kullanımını önemli ölçüde abartıyor. Bunun yerine PSS, gerçekçi bir önlem vermek için her bir uygulamanın paylaşılan alanlarının "adil payını" ölçer.

Örnek: GNOME'u başlatıyorsunuz ve her uygulama ve program için bir tane olmak üzere birkaç işlemin başlamasına neden oluyorsunuz. Hepsi libglib'e bağlanır. Linux libglib'i bir bellek bloğuna yükler ve libglib'i isteyen her işlemle eşleştirir. Saf bellek muhasebesi, ona bağlanan her işleme karşı tam libglib boyutunu sayar.

smem, libglib'in maliyetini, gerçeği daha yakından görmek için onu kullanan süreçler arasında bölüştürür. Ayrıca bellek kullanımını görüntülemek için bir dizi seçenek vardır (web sitesinden):

  1. Temel işlem bilgisi ikilemini göster
  2. Sistem görünümünü göster smem -R 4G -K / yol / / / vmlinux -w
  3. Toplamları ve yüzdeleri göster smem -t -p
  4. Farklı sütunları göster smem -c "name user pss"
  5. Smem -M libxml eşlenerek filtrelenen işlemleri göster
  6. İşlem smem -m -P [e] volution tarafından filtrelenen eşlemeleri göster
  7. Yakalama tarball smem'inden veri okuma - kaynak capture.tar.gz
  8. Pid smem --bar pid -c "pss uss" ile etiketlenmiş bir çubuk grafik göster
  9. Ad smem ile etiketlenmiş RSS'nin pasta grafiğini göster --pie adı -s rss

Bununla birlikte, çok yeni bir çekirdeğe ihtiyacınız olacaktır (> 2.6.27).


1
Evet, 2.6.27'nin oldukça yeni olduğu yönündeki önerileri oldukça gülünç. Daha yeni bir çekirdeğe sahip geminin Fedora 10 ve Ubuntu 9.01 olduğunu bildiğim tek dağıtımlar.
Dave Cheney

9.04; Ubuntu 8.10 2.6.27 ile geliyor, ancak 2.6.30 rc3'te.
jldugger

Özür dilerim, 2.6.18'in son zamanlarda kabul edildiği RHEL topraklarında uzun süre geçirdim.
Dave Cheney

5

Raftan bir şey düşünemiyorum

ancak, ps -AH v yürüten bir PHP komut dosyası birleşik | awk '{print $ 8, $ 9, $ 10}' ve bunu pChart ile kullanmak , aradığınızı yapacak bir web sayfası verebilir mi? (Kb cinsinden kullanım, toplam yüzdesi ve işlem adı)


1
+1, google chart api ile bunu düşündüm. :)
Düğüm

iyi bir nokta. google grafik api muhtemelen çalışmak için daha hızlı ...
Mark Regensberg

2

Sarface'e bir göz atın - sar verilerine bağlıdır ve bellek kullanımınızı (ve diğer tüm sar / sysstat verilerini) canlı olarak izleyebilirsiniz.



1

Kendin Yap. RRD veritabanını güncelleyen basit bir kabuk komut dosyası yapın. Sonra rrdtool kullanarak bir grafik çizin.


1

Gerçekten daha düşük ayrıntı düzeyindeyseniz, toplama unutmayın. Rapor edebileceği işlem başına bellek kullanımı türlerine bir örnek:

KAYIT 1 cag-dl585-02 (1244758290.002) (Per 11 Haz 18:11:30 2009)

SÜREÇ ÖZETİ (sayaçlar / sn)
# PID Kullanıcı S VmSize VmLck VmRSS VmData VmStk VmExe VmLib MajF MinF Komutu
 9089 kök S 66856K 0 2328K 1440K 212K 736K 6812K 0 0 sendmail:
 9097 smmsp S 57600K 0 1772K 1304K 204K 736K 5904K 0 0 sendmail:
 9108 kök S 6428K 0 360K 180K 84K 88K 1944K 0 0 gpm
 9120 kök S 74808K 0 1136K 476K 520K 48K 1920K 0 0 crond
 9173 xfs S 20904K 0 1828K 1124K 88K 104K 3084K 0 0 xfs

Belirli işlemlerle ilgileniyorsanız, uygun filtreleri belirtebilirsiniz (konuları gösterecek bir anahtar dahil).

Ve genel olarak bellekle ilgileniyorsanız, aynı zamanda döşeme detayını gösterebilir ve hatta bir vmstat format çıktısı olabilir. Varolan araç zaten bunu yaptığında neden vmstat biçiminde veri göstermek istersiniz? Bu kolay - toplu olarak istatistikleri bir dosyaya kaydedebilir ve daha sonra birden çok biçimde oynatabilirsiniz.

dene, beğeneceksin


1
  1. İşlem (ler) i selamlayın.
  2. Çıkışı ayrıştırın ve bir metin dosyasına virgülle ayrılmış biçimde kaydedin.
  3. virgülle ayrılmış dosyayı excel'de açın.
  4. Excel'in grafik yardımcı programını kullanarak bu verilerin grafiğini çizin.

Bellek anlık görüntülerini farklı zaman aralıklarında istiyorsanız ... cron işini istediğiniz aralıkta ayarlayın ve komut dosyasını çalıştırın.

umarım yardımcı olur....


0

Bu tam olarak aradığınız şey değil, ancak belki de bu referansı kullanarak ihtiyaçlarınıza göre uyarlayabilirsiniz ("İşlem Başına Bellek Kullanımı" konusuna bakın).




0

Daha fazla ayrıntıya girmedim ama koleksiyonun ayırıcı ayrılmış çıkış üretme seçeneği var, bu yüzden gnuplot durumunda, verilerinizi boşluklarla oluşturuyorsunuz ve hepsi hazır. Hatta excel içine güzel yüklenir. Virgül istiyorsanız, sınırlayıcıyı değiştirebilirsiniz ve rrd rotasını gerçekten yapmak istiyorsanız (sadece araziler verilerle eşleşmediğinden dikkatli olun!), Sınırlayıcıyı iki nokta üst üste olarak değiştirebilir ve hatta zaman damgalarını UTC olarak değiştirebilirsiniz. -işaret


0

kSar, sar verilerine dayanır, ancak java tabanlıdır, bu yüzden az ya da çok platformdan bağımsızdır ve verileri almak için uzak bir ana bilgisayara ssh yapmanızı sağlar.

http://ksar.atomique.net/


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.