ps ile bellek tüketen süreçleri bulma

0 Yanıt 2 Görüntülenme
Puanlayanlar
Katılımcılar
Konuyu Açan #1
ps ile bellek tüketen süreçleri bulma

Giriş ve bağlam
Bir sunucuda veya masaüstünde bellek kullanımında ani artışlar görüldüğünde hangi süreçlerin bu kullanımı tetiklediğini hızlıca tespit etmek kritik olabilir. Bu tür durumlarda temel komutlar olan ps, top, pidstat ve vmstat gibi araçlar bir arada kullanılarak sistemin hangi süreçlerin hafızayı kapladığını netleştirebilir. Uzun vadeli izleme için ise sarf edilen kaynaklar ve hedefler belirlenerek, kullanım kalıplarını anlamak mümkündür.

1) ps ile anlık bellek tüketimini sıralama
En temel yaklaşım, çalışan tüm süreçleri bellek kullanımlarına göre sıralamaktır. Linux’ta genelde şu komut kombinasyonu kullanılır:
KOD
1ps aux --sort=-%mem | head -n 20

Bu komut şu anki bellek kullanımını yüzdelik olarak gösterir ve en çok bellek kullanan ilk 20 süreci listeler. Çıktıdaki %MEM sütununa dikkat etmek gerekir; bazı durumlarda RSS de kontrol edilmelidir.

2) RSS ve VSZ arasındaki farkı anlamak
  • RSS (Resident Set Size): sürecin fiziksel RAM’de kapladığı alan.
  • VSZ (Virtual Size): süreç tarafından adres alanı için ayrılan sanal bellek büyüklüğü.

Bellek sorunlarını yorumlarken RSS değerleri daha doğrudan tehdit oluşturur. Örneğin yüksek RSS değerli süreçler fiziksel RAM baskısı yaratabilir.

3) süreklilik ve kalıpları görmek için loglama altyapısı
Bir anlık tablo yanıltıcı olabilir. Süreklilik için belirli aralıklarla kaydetmek gerekir:
KOD
1while true; do ps aux --sort=-%mem | head -n 20; sleep 5; done

Bunu cron veya systemd-timer ile periyodik olarak da çalıştırabilir, çıktıyı bir dosyaya veya loglama servisine yönlendirebilirsiniz. Ayrıca toplu istatistikler için pidstat kullanımı değerlidir:
KOD
1pidstat -p ALL 5

Bu komut her 5 saniyede bir her işlemin bellek kullanımını gösterir.

4) süreç başına ayrıntılı bellek analizleri
  • top veya htop kullanımını tercih edin: yük altındaki sistemde hangi prosesler anlık olarak artış gösteriyorsa görebilirsiniz.
  • smem aracı varsa RAM katmanı açısından daha ayrıntılı bir analiz yapabilirsiniz: RAM, swap, shared memory gibi bölümler için süreç bazında bakış sağlar.
  • Bügülü ayrıntılar için /proc/[pid]/statm veya /proc/[pid]/status dosyaları süreci daha derinlemesine analiz eder.


5) bellek sızıntısı olup olmadığını ayırt etme
Yüksek bellek kullanımı beklenen bir uygulama ile ilgiliyse süreklilik aranır: bellek kullanımının zaman içinde artış göstermesi (özellikle RSS) sızıntıya işaret edebilir. Daemonlar veya uzun çalışan hizmetler için düzenli bellek döngülerini izlemek gerekir; bazen cache ve buffers’in RAM’den serbest bırakılamamış olması bu tabloyu etkiler.

Kapanış
Bellek tüketimini anlamak için birden çok araç ve yaklaşımı bir arada kullanmak en güvenilir sonuçları verir. Anlık tabloları süreklilikle karşılaştırmak, hangi süreçlerin baskı altında olduğunu netleştirir ve gerekli optimizasyon veya yeniden yapılandırma adımlarını belirler. Bu konuya ilişkin spesifik bir ortam ve karşılaştığınız örnekler varsa, bunları paylaşabilirsiniz.

Yanıt vermek için giriş yapmış olmalısınız.

0 alıntı seçildi