Süreçlerin işlem / bellek kullanımını zaman içinde nasıl izleyebilir ve kaydedebilirim? [kapalı]


30

Balonculuk hafızası işleminin takas doldurduğu ve tüm makineyi (apache gibi) öldürdüğü takas ölümü gibi sorunları teşhis etmenin bir yolunu arıyorum.

Ben zaten kaktüsler kullanıyorum ve nagios (tercih etmeme rağmen) ya da munin ayarlayabilirim ancak kendi program programlarını kullanamadıklarını söyleyebildiğim kadarıyla - genel durum.

Her 30 saniyede bir dosyaya bir >> dosya yazabileceğimi biliyorum, ancak mevcut bir olgun çözüm olup olmadığını görmek istiyorum.

Yine, ideal olarak:

  • her N saniyede bir kayıt işlemlerinin hafıza kullanımını
  • Her N saniyede bir işlemlerin CPU kullanımını kaydedin
  • destek çizelgeleri ve tarihçesi
  • destek ortalamaları - mysqld gibi son gün% 43 CPU kullanıyor ve ortalama 400 MB hafıza kullanıyor
  • özgür ve açık kaynak olun

Proses isimleri önceden bilinmemeli ve bilinmemelidir - fikir sadece izlemesine izin vermek ve sonra üst düzey suçlulara bir göz atmaktır.

Sistemim Linux (OpenSUSE).


Bellek sızıntısı olabilecek herhangi bir işlemi izlemek ister misiniz (En üstteki N bellek domuzları) veya tanımlanmış bir işlem kümesini (örneğin, Apache web sunucusu ve Tomcat işlemi) izlemek mi istiyorsunuz? Sonuncusu, bazı basit Nagios veya Cacti eklentileri ile yapılabilir. İlki daha zor. Bunu netleştirmelisin.
Stefan Lasiewski

Zaten yazıyı açıklığa kavuşturdum ama tekrar açıklığa kavuşturmak için: Takas ölümü nedeniyle düştüğünde sistemin durumunu bilmek istiyorum. En kötü suçluların kim olduğunu bilmek istiyorum. Ve btw, bellek sızıntısı olması gerekmiyor - sadece bir trafik akışı ya da yüksek bellek kullanımına sebep olan şey. Bu nedenle, yine, ikili isimler hakkında önceden bilgi sahibi olmamalıdır.
Artem Russakovskii


Warren, bu tamamen farklı bir soru.
Artem Russakovskii

8
Kaliteli bir yazıyı kapatmak, özellikle 4 yıl sonra geriye dönük olarak kötü bir şeydi.
peterh Monica

Yanıtlar:


16

Sadece en iyi suçluları istiyorsun top, toplu iş modunda nispeten uzun bir aralıkla (60 saniye artı) çalışmayı düşünün . topÜst düzey suçluları birden fazla kaynaktan yakalamak için birden fazla koşuya ihtiyacınız olabilir . topBir kaynak kullanıldığında birkaç devir çalışacak sistemleri yapılandırdım .

sarKaynak kullanımını yakalamak için toplu halde çalışmayı düşünün . Bunun sunucu tabanlı olduğunu biliyorum, ancak sorunların meydana geldiği zamanları belirlemek yararlıdır.

muninBildirimleri çalıştırın ve etkinleştirin. Bu size içeri girme ve sunucunun aşağı inişlerini izleme şansını verebilir. Sorunu düşmeden önce düzeltebilirsiniz.

Bellek sızıntıları için, takas kullanımında sürekli bir artış bir sorun olduğunu gösterir. Bir keresinde bir sunucunun günlerce yavaş yavaş ölmesini izledim. Sorunlu servis, bellek sızıntıları için diğer işlemleri izleyen bir programdı. Sistem yöneticisi, artan takas kullanımının bir sorun olmadığını, sunucu yanıt vermeyi bırakana kadar ısrar etti.

Sen bulabilirsiniz cfengine'ın anomali tespiti işler ters gittiğinde sistem durumunu yakalamak için bir komut dosyası tetiklemek için kullanılabilir. En fazla kaynağı kullanan işlemlerin yanı sıra çok fazla bilgi isteyebilirsiniz. Ani kullanım akışı için, bir ağ bağlantısı listesi isteyebilirsiniz (adrese göre değil). Hafıza kullanımı da faydalıdır.


12

sysstat , tam olarak sizin amacınıza göre yapılır.


Buradan başlamalısın. Nerede en iyi şansa sahip olacağınızı bilene kadar sınava nereden başlayacağınızı bilemezsiniz. Sysstat, aradığınız şeydir (ayrıca güzel grafiklere de sahiptir). Bir kere daha biliyorsanız systemtap kullanın.
Allen,

9

Daha önce kullanmıştım:

http://freshmeat.net/projects/atop/

"Atop, tüm işlemlerin aktivitesini raporlama yeteneğine sahip bir ASCII tam ekran performans monitörüdür (işlemler sırasında aralık bitmiş olsa bile), günlük sistem kaydı ve uzun süreli analiz için işlem etkinliğini kullanarak aşırı yüklenmiş sistem kaynaklarını kullanarak vurgulayın renkler, vb. Düzenli aralıklarla CPU, bellek, takas, diskler ve ağ katmanları ile ilgili sistem düzeyinde etkinlik gösterir ve her aktif işlem için CPU kullanımını, bellek büyümesini, önceliği, kullanıcı adını, durumunu gösterir. ve çıkış kodu. "


Tepesinde bana istediğimi sağlayacak bir rapor görünmüyor. Yanılıyorsam lütfen beni düzeltin.
Artem Russakovskii

İlk iki mermi noktanızla ilgilenir (işlem tarafından bellek / işlemci). Bu istatistikleri toplamak için kütüphaneyi kullanabilir ve ardından verilerinize dayanarak geçmişinizi / grafiğinizi yapabilirsiniz.
NinjaCat

4
@ artem-russakovskii - Varsayılan olarak, varsayılan olarak her on dakikada bir dosyaya veri kaydeder. Sunucunuz saat 3: 45'te kilitlenmişse, baştan başlayabilirsiniz atop -r log_filename, mişlem başına bellek kullanımı görünümüne geçmek için düğmesine basın ve ardından saat t10: 30'a kadar 10 dakikalık artışlarla ilerlemek için düğmesine basın . Sen üstüne kullanma temelleri hakkında daha fazla bilgi bulabilirsiniz lwn.net/Articles/387202 ve bir bellek sızıntısı tanımlamanın bir örnek görmek atoptool.nl/download/case_leakage.pdf
Sciurus

6

Collectd'yi denedin mi?
Çok güçlü ve özelleştirilebilir.
Çok sayıda eklenti var ve nagios ile entegre olabilir.

http://collectd.org/features.shtml


Toplama çok hafiftir, kurulumu çok zor değildir ve zamanla hafıza / takas büyümesi görmenizi sağlar. Ancak, rahatsız edici süreçleri tam olarak belirleyemeyecektir - ancak belki zamanla bellek büyümesini farkedebilecek ve yakalayabilecek ve durumu el ile inceleyebileceksiniz top.
Marius Gedminas

1
Bu eklentiyi denemediğimi söylemek zorundayım, ancak colld işlem eklentisi kılavuzundan okumak: "İşlemler seçiliyse aşağıdaki bilgiler toplanır. Tüm bu bilgiler işlem adıyla toplanır. Resident Segment Size, Kullanılan kullanıcı ve sistem zamanı, Bu isme göre işlem sayısı, İş parçacığı sayısı (tüm işlemlerde toplanır), Büyük ve küçük sayfa hatalarının sayısı. Kaba G / Ç sayıları (nedeniyle yazılan ve okunan bayt sayısı) (syscalls tarafından sürecine).
PiL

İşlemleri veya isme veya regex'e göre seçebilirsiniz.
PiL

2

Nagios tepesinde Centreon, Nagios NRPE ile birleşti. Daha sonra verileri NRPE'ye dilediğiniz biçimde bildirmek için özel komut dosyaları yazabilirsiniz. Nagios daha sonra verileri NRPE'li uzak sunuculardan toplar ve Centreon güzel bir grafik çizer ve tonlarca kullanıcı esnekliği ekler. Http://beyondhosting.net adresinde kullanıyoruz . İsterseniz zaten centreon + nagios kurulumlu bir VZ Container şablonum var.

Grafikler centreon hostthenpost.org/tyler/2010-07-23_1719.png oluşturur


Bahsettiğim şeyleri bildirmek için hazır bir çözüm istiyorum, en önemlisi en çok belleği tüketen işlemler. Ayrıca VZ'nin ne olduğundan da emin değilim.
Artem Russakovskii

2

nmon , aradığınızı yapan harika bir araçtır. AIX ve Linux için geliştirildi. Bir ton detaylı çıktı üretir ve raporlara koymak kolaydır. Google’a giderseniz, verileri ayrıştırmak için bir sürü belgeye ve ek yardımcı programa sahip bir IBM wiki vardır.


2

Sunucu Yoğunluğu tam olarak tanımladığınız şeyi yapar.

Bunu üretim sunucularımızdan birinde kullanıyorum ve bu konuda çok mutluyum. En üst özelliği, mevcut tüm süreçler de dahil olmak üzere o andaki grafikleri görüntüleme, bir zirve ve sunucu CPU / Bellek tüketimini görebilme yeteneğidir. Buna anlık görüntüler diyorlar .

Sürekli gelişiyor. En son özelliklerden birisi olan anomali tespiti kolayca anormallik tespiti sağlar. Ayrıca çeşitli eşikleri ayarlayabilirsiniz


1
Ah, özgür olmayı tercih ettiğim küçük kısmı, mümkünse açık kaynaklı olmayı unuttum. Sunucu başına 100 ABD dolarının üzerinde harcama yapmak istediğim bir şey değil (ve yalnızca 1 sunucum var, 5 değil). serverdensity.com/pricing
Artem Russakovskii


2

Benzer bir soru sorduğumda önerilen cevaplar :

Icapan dedi ki :

Munin , kurulum ve yapılandırma işlemlerinde minimum çabayla çalışma süresi grafiklerini elde etmenin en kolay yoludur. Ayrıca bazı işlemlerde toplam cpu kullanımı için üstte kullanıyorum, ancak istediğiniz şey bu değil.

David Spillet şöyle dedi :

Bir dizi başka parametre arasında sistem yükünü kaydetmek için collectd kullanıyorum . Verileri, eldeki birçok araç ve komut dosyası kullanılarak analiz edilebilecek şekilde rendelenebilen ve analiz edilebilen RRD mağazalarında depolar. Grafiğim için bu betiğin değiştirilmiş bir sürümünü kullanıyorum ( örnek çıktı ).

Collectd, birçok şeyi izlemek için eklentilere sahiptir (her şey için sıkça sorulan her şey ve üstte birkaç şey vardır) ve özel bir şeye ihtiyacınız olursa kendinizinkini oluşturmak zor olmamalıdır, bu yüzden çok esnek bir araç sağlar. Grafikleri rrd.cgi'de yapılandırmak zor olsa da çok el ile yapılan bir işlemdir ancak yine de collectd tarafından tutulan RRD dosyalarıyla çalışmak için daha uygun bir araç bulabilirsiniz.

Ayrıca Nagios veya OpenNMS'i de kontrol edebilirsiniz .


1

Munin , Nagios veya başka bir araç gerektirmeden kutudan ihtiyacınız olan her şeyi yapacaktır. OpenSUSE için RPM'ler mevcuttur.


Bir eklenti ile yapar. Eğer öyleyse, hangisi? İzlemek için önceden yapılandırılmış bir işlem listesi gerektirmeyen birini bulamadım.
Artem Russakovskii

Asıl sorunuzdan önceden yapılandırılmış bir işlem listesini izlemek istemediğiniz belli değildi - gereksinimleriniz hakkında daha fazla ayrıntı verebilir misiniz?
gareth_bowles

Açıklama: Proses isimleri önceden bilinmemeli ve bilinmemelidir - fikir sadece izlemesine izin vermek ve sonra üst düzey suçlulara bir göz atmaktır.
Artem Russakovskii

1

Belki eski güzel OProfile ihtiyacınız olanı yapar? Sadece küçük (yüzde yüz) ek yüke sahip, çekirdek tabanlı bir sistem düzeyinde profil oluşturucu.

Sonra her çeşit CPU / hafıza limitini ayarlamanıza izin veren PSMon adlı mükemmel bir Perl betiği var . Bunlar aşılırsa, psmon bir hata kaydeder ve / veya rahatsız edici süreci öldürür.

İkincisi size herhangi bir profil oluşturma raporu vermez, ancak aynı işlemi tekrar tekrar öldürmeye karar verirse, muhtemelen aradığınız pis pisliği bulmuşsunuzdur. :-)

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.