Linux, sistem performansını izlemek için güçlü araçlar sunar, özellikle bellek ve CPU kullanımı açısından. Performans sorunlarını giderirken, yüksek bellek ve CPU kullanan süreçleri tespit etmek önemlidir. Sistemde çalışan süreçler hakkında bilgi almak ve bunları filtreleyerek sıralamak için ps
, top
gibi önceden yüklenmiş sistem araçlarını kullanabilirsiniz. Bunun dışında htop
, vmstat
gibi dış araçlar da kullanılabilir. Her bir araç, farklı avantajlar sunar.
Bu yazıda, Linux’ta yüksek bellek ve CPU tüketen süreçleri tespit etmek için basit komutlar kullanılacaktır.
1. ps
Komutunu Kullanarak En Çok Bellek ve CPU Kullanan Süreçleri Bulma
ps
komutu, çalışan süreçler hakkında bilgi gösteren çok yönlü bir araçtır. Çıktıyı kolayca filtreleyebilir ve belirli kriterlere göre sıralayabilirsiniz.
Bellek Kullanımına Göre Sıralama:
En yüksek bellek kullanımına sahip ilk 10 süreci listelemek için şu komutu kullanabilirsiniz:
ps -eo pid,cmd,%mem,%cpu --sort=-%mem | head
Bu komut, bellek kullanımına göre sıralanmış süreçleri PID (Process ID), komut adı, bellek ve CPU kullanımıyla birlikte listeler.
CPU Kullanımına Göre Sıralama:
En yüksek CPU kullanımına sahip ilk 10 süreci listelemek için şu komutu kullanabilirsiniz:
ps -eo pid,cmd,%mem,%cpu --sort=-%cpu | head
Bu komut, CPU kullanımına göre sıralanmış süreçleri PID, komut adı ve bellek kullanımıyla birlikte gösterir.
2. top
Komutunu Kullanarak Gerçek Zamanlı İzleme
top
komutu, sistem performansını anlık olarak izleyen interaktif bir araçtır. Bu araç, CPU ve bellek kullanımını izleyerek en çok kaynak tüketen süreçleri gösterir.
Komutu Çalıştırmak:
top
Bu komutu çalıştırdığınızda, terminalde anlık olarak sistemin genel performansı ve en yüksek kaynak kullanan süreçler gösterilir.
Çıktıyı Özelleştirme:
- Bellek kullanımına göre sıralamak için
M
tuşuna basın. - CPU kullanımına göre sıralamak için
P
tuşuna basın.
Çıktıyı Sınırlama:
Belirli sayıda süreci listeleyip çıktıdan sonra çıkmak için aşağıdaki komutu kullanabilirsiniz:
top -b -n 1 | head -n 17
Bu komut şu işlevleri yerine getirir:
-b
: Komutun betik modunda çalışmasını sağlar.-n 1
: Yalnızca bir kez yenileme yapar ve sonra çıkar.
3. ps
Komutunu Diğer Komutlarla Birleştirerek Filtreleme
ps
komutunu, belirli kriterlere göre süreçleri filtrelemek için awk
veya grep
gibi diğer araçlarla birleştirebilirsiniz.
Bellek Kullanımı Yüzdesine Göre Filtreleme:
Örneğin, bellek kullanım oranı %5’ten fazla olan tüm süreçleri listelemek için şu komutu kullanabilirsiniz:
ps -eo pid,cmd,%mem,%cpu --sort=-%mem | awk '$4 > 5.0'
Bu komut, bellek kullanım oranı %5’ten fazla olan süreçleri listeleyecektir. Aynı şekilde, CPU kullanımına göre sıralama yapabilirsiniz.
4. Süreç İzlemeyi Otomatikleştirme
Süreç izleme işlemini otomatikleştirmek için, komutları cron
kullanarak zamanlayabilir ve daha sonra analiz için sonuçları kaydedebilirsiniz.
Cron İşlemi Örneği:
Her 5 dakikada bir en yüksek bellek kullanan süreçleri log dosyasına kaydetmek için aşağıdaki cron işini kullanabilirsiniz:
*/5 * * * * ps -eo pid,cmd,%mem,%cpu --sort=-%mem | head >> /var/log/process_monitor.log
Bu komut, her 5 dakikada bir en yüksek bellek kullanan 10 süreci /var/log/process_monitor.log
dosyasına kaydedecektir. Böylece, sistem performansını düzenli olarak izleyebilir ve geçmiş verileri inceleyebilirsiniz.
Sonuç
Linux sistemlerinde yüksek bellek ve CPU kullanımı, performans sorunlarının en yaygın nedenlerinden biridir. Bu makalede, ps
ve top
gibi komutlarla en yüksek bellek ve CPU kullanan süreçlerin nasıl tespit edileceğini öğrendiniz. Bu araçlar sayesinde sisteminizin performansını düzenli olarak izleyebilir, potansiyel darboğazları belirleyebilir ve gerektiğinde müdahalede bulunabilirsiniz. Ayrıca, otomatik izleme işlemleri ile zaman içinde sisteminizin kaynak kullanımını takip edebilir ve performans sorunlarını erkenden tespit edebilirsiniz.