1. Anasayfa
  2. Linux

Linux’ta En Çok RAM Tüketen 10 Sürecin Bulunması


Linux kullanıcıları arasında sık karşılaşılan sorunlardan biri sistemin yavaşlamasıdır. Özellikle CPU kullanımı düşük görünürken sistemde gecikmeler yaşanıyorsa çoğu zaman sorun RAM (bellek) tüketiminden kaynaklanır.

Yüksek bellek kullanan uygulamalar sistemde darboğaz yaratabilir swap alanına yönlendirme artabilir ve bu da genel sistem performansını ciddi oranda düşürür.

Bu makalemde Linux’ta en fazla RAM tüketen süreçleri nasıl tespit edebileceğinizi bu süreçlerle nasıl baş edebileceğinizi ve sistem belleğinizi nasıl daha verimli kullanabileceğinizi detaylı bir şekilde ele alacağız.

RAM, işletim sisteminizin ve çalışan uygulamaların verileri geçici olarak depoladığı yerdir. Bir uygulama çalıştığında verileri işlemek için RAM’e yüklenir. Eğer birden fazla uygulama ya da arka planda çalışan servisler aşırı bellek kullanıyorsa:

  • Sistem yavaşlar
  • Swap alanı devreye girer (disk kullanımı artar)
  • Uygulamalar donabilir ya da kilitlenebilir
  • Sunucu ortamlarında hizmet kesintilerine yol açabilir

Bu yüzden sistem yöneticileri ve ileri düzey kullanıcılar için RAM kullanımını izlemek kritik bir görevdir.

Bellek Tüketimini Görüntülemek İçin Araçlar ve Yöntemler

a) TOP Komtu

top, sistemdeki süreçleri gerçek zamanlı olarak izleyebileceğiniz güçlü bir araçtır.

top

Karşınıza sistemin canlı süreç listesi gelir. Buradaki önemli sütunlar:

  • PID: Süreç ID’si
  • USER: Süreci çalıştıran kullanıcı
  • %CPU: CPU kullanımı
  • %MEM: RAM kullanımı

Varsayılan olarak CPU kullanımına göre sıralanır. Belleğe göre sıralamak için:

  1. Shift + f tuşlarına basın
  2. ile %MEM seçeneğine inin
  3. s ile seçin, ardından Enter ve q tuşlarına basın

Artık süreçler RAM kullanımına göre sıralanmıştır.

b) ps Komutu

Daha hızlı ve sade bir çıktı almak için ps komutu idealdir.

ps -eo pid,ppid,cmd,%mem --sort=-%mem | head -n 11

Bu komutun anlamı:

  • -eo: Hangi sütunların gösterileceğini belirtir
    • pid: Süreç ID’si
    • ppid: Ebeveyn süreç ID’si
    • cmd: Komut satırı (çalışan uygulama)
    • %mem: RAM kullanım oranı
  • --sort=-%mem: Bellek kullanımına göre azalan sırada listeler
  • head -n 11: İlk 10 süreci ve başlık satırını gösterir

Bu yöntem, sistem yöneticileri için hızlı raporlama açısından oldukça faydalıdır.

c) htop Komutu

htop, top komutunun renkli ve kullanıcı dostu versiyonudur.

Kurulum (Debian/Ubuntu tabanlı sistemler için);

sudo apt install htop

komutu çalıştırmak için;

htop

Belleğe göre sıralamak için F6 tuşuna basıp %MEM seçeneğini seçebilirsiniz. Aynı anda CPU, RAM ve süreç ağacı gibi bilgileri de izleyebilirsiniz.

Bellek Canavarlarını Yönetme Yöntemleri

a) Gereksiz Süreçleri Sonlandırma

Belirli bir sürecin sistem belleğini gereğinden fazla kullandığını fark ettiyseniz ve bu süreç sistem için hayati değilse, onu sonlandırabilirsiniz:

kill -9 <PID>

Uyarı: -9 sinyali, süreci zorla sonlandırır. Öncelikle kill <PID> veya kill -15 <PID> ile daha nazik sinyaller deneyin.

b) Süreç Önceliğini Düşürme (nice ve renice)

Süreci sonlandıramıyorsanız ama sistem kaynaklarını daha az kullanmasını istiyorsanız, onun “önceliğini” düşürebilirsiniz.

Yeni bir işlemi düşük öncelikle başlatmak:

nice -n 10 python3 hesapla.py

Çalışan bir sürecin önceliğini değiştirmek:

renice 10 -p <PID>

Not: nice değeri ne kadar yüksekse, süreç o kadar az öncelikli olur (yani sistem kaynaklarına erişim önceliği azalır).

c) Bellek Sızıntılarını Tespit Etmek

Özellikle kendi yazdığınız betikler ya da açık kaynak uygulamalar sürekli artan bellek kullanımı ile dikkat çekebilir. Bu bir “memory leak” (bellek sızıntısı) olabilir.

Valgrind gibi araçlarla test edebilirsiniz:

valgrind --leak-check=full ./uygulama

Ayrıca büyük uygulamalar (örneğin MySQL) için konfigürasyon dosyalarındaki bellek ayarlarını gözden geçirmek gerekebilir (my.cnf).

d) (Swap) Alanı Eklemek
Fiziksel RAM yetersizse ve bellek açığı kritik hale geldiyse geçici bir çözüm olarak takas alanı oluşturabilirsiniz:

sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

Kalıcı yapmak için /etc/fstab dosyasına aşağı satırı ekleyin:

/swapfile none swap sw 0 0

e) Sistem ve Uygulamaları Güncel Tutun

Eski yazılımlar daha fazla bellek tüketebilir veya bellek sızıntılarına neden olabilir. Sisteminizi güncel tutmak performansı artırır;

sudo apt update && sudo apt upgrade

Otomatik İzleme: Cron + Loglama

RAM kullanımını düzenli olarak loglamak isterseniz cron ile otomatikleştirebilirsiniz;

crontab -e

Aşağıdaki satırı ekleyin (her 5 dakikada bir kaydeder):

*/5 * * * * ps -eo pid,cmd,%mem --sort=-%mem | head -n 11 >> /var/log/mem_usage.log

Sunucu veya kurumsal sistemlerde belleği daha profesyonelce izlemek için şu araçlara göz atabilirsiniz:

  • Prometheus + Grafana: Gerçek zamanlı metrik toplama ve görselleştirme
  • Zabbix: Ağ ve sistem izleme için kapsamlı bir araç
  • Netdata: Hızlı kurulumlu, gerçek zamanlı analizler sunar