Foruma hoş geldin 👋, Ziyaretçi

Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak tamamen ücretsizdir.

Linux'ta iotop ile Disk Giriş/Çıkış (I/O) Yükünü Hangi Süreçlerin Oluşturduğunu Tespit Etme

webnix

Üye
Katılım
14 Mart 2026
Mesajlar
19
Merhaba arkadaşlar, bugün sizlere sunucularımızda zaman zaman karşılaştığımız gizemli disk yavaşlığı problemini çözmek için çok kullandığım bir aracı, `iotop`'u anlatacağım. Disk I/O (Giriş/Çıkış) yüksek olduğunda sistem adeta kıpırdamaz hale gelir, web sayfaları geç açılır, veritabanı sorguları yavaşlar. Bu rehberle, hangi sürecin diskinizi en çok meşgul ettiğini anında görecek ve sorunun kaynağına ineceksiniz.

📦 iotop Nedir ve Kurulumu

`iotop`, tıpkı `top` veya `htop` komutunun CPU ve RAM için yaptığını, disk I/O için yapan bir izleme aracıdır. Süreçleri, okuma/yazma hızlarına göre sıralayarak gerçek zamanlı olarak gösterir.

Kurulum oldukça basit. Benim gibi Debian/Ubuntu tabanlı bir sistem kullanıyorsanız:

Bash:
sudo apt-get update
sudo apt-get install iotop

RHEL, CentOS, Fedora gibi sistemler için ise:

Bash:
sudo yum install iotop  # veya sudo dnf install iotop

Kurulum tamamlandığında, artık disk aktivitesini gözlemlemeye hazırsınız.

⚙️ Temel Kullanım ve Anlamlı Sonuçlar Almak

En temel kullanımı, komutu `sudo` yetkisiyle çalıştırmaktır:

Bash:
sudo iotop

Bu komutu çalıştırdığınızda karşınıza sürekli güncellenen bir tablo gelecek. Ancak burada dikkat etmeniz gereken önemli bir nokta var: Varsayılan olarak `iotop`, tüm süreçleri ve iş parçacıklarını (thread) gösterir. Bu bazen kafa karıştırıcı olabilir.

Benim en çok kullandığım ve daha temiz bir görünüm sağlayan parametreler şunlar:

Bash:
sudo iotop -oPa

Bu parametrelerin ne işe yaradığını açıklayayım:
`-o`: Sadece aktif olarak I/O yapan süreçleri gösterir. Liste çok daha kısa ve anlamlı olur.
`-P`: Süreçleri, iş parçacıkları yerine ana süreç (PID) bazında gruplar. Çok daha net bir bakış sağlar.
`-a`: I/O istatistiklerini toplam okuma/yazma miktarına göre biriktirir (accumulated). Anlık değil, komutu çalıştırdığınızdan beri olan toplam yükü görürsünüz.

🔍 Çıktıyı Nasıl Yorumlamalıyız?

`iotop -oPa` komutunun çıktısı şuna benzer bir tablo oluşturur:

Kod:
Total DISK READ: 5.45 M/s | Total DISK WRITE: 1.10 M/s
  TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN     IO>    COMMAND
  456 be/4 mysql       4.21 M/s    0.00 B/s  0.00 % 85.12 % mysqld
 1234 be/4 www-data    1.12 M/s    1.10 M/s  0.00 % 12.45 % php-fpm: pool www

Şimdi bu sütunların ne anlama geldiğine bakalım:
DISK READ / DISK WRITE: Sürecin saniyede okuduğu/yazdığı veri miktarı. Sorunun büyüklüğünü buradan anlarsınız.
IO>: Bu en kritik sütun! Sürecin I/O için harcadığı CPU zamanının yüzdesini gösterir. %90'ları gören bir süreç, diski kilitlemiş demektir ve muhtemel suçlu odur.
COMMAND: Sürecin adı. Hemen MySQL, PHP, backup script'i gibi kaynağı tanıyabilirsiniz.

⚠️ Kritik Uyarılar ve İpuçları

1. Sürekli Loglama: Sorunu tespit etmek için `iotop`'u bir kere çalıştırıp kapatmayın. Özellikle arka planda çalışan bir backup işlemi veya cron job'ı yakalamak için bir süre (2-3 dakika) izleyin.
2. Batch Modu: Eğer bir log dosyasına kaydetmek veya başka bir script ile işlemek isterseniz, batch modunu kullanın:
Bash:
sudo iotop -b -n 5 -d 2
Bu komut, 2 saniyede bir olmak üzere 5 kez (`-n 5`) anlık görüntü alır ve çıktıyı batch (`-b`) formatında verir.
3. Kernel Thread'leri Gizleme: Bazen "kworker" gibi kernel iş parçacıkları listede üst sıralarda çıkabilir. Bunlar genellikle bir sonuçtur, sebep değil. Asıl sebep olan kullanıcı sürecine (mysqld, php gibi) odaklanın.
4. Dosya Sistemi Önbelleği: Linux agresif bir şekilde disk okumalarını önbelleğe alır. `iotop` ile gördüğünüz okuma (READ) değerleri, bu önbellekten okunmayan, doğrudan diske erişen "gerçek" okumalardır. Bu yüzden çok doğru bir gösterge sağlar.

💎 Özet ve Son Tavsiyeler

Disk yavaşlaması şikayetiniz olduğunda ilk bakacağınız yer `iotop -oPa` olmalı. Bu komut, sorunu neredeyse her zaman anında ortaya çıkarır. Bir veritabanı sorgusu, loglama yapan bir uygulama, hatalı bir cron jobı veya bir yedekleme işlemi... Hepsi burada kendini ele verir.

Ben genelde sunucuma ilk bağlandığımda, genel sistem sağlığını kontrol etmek için `htop` ve `iotop -oPa` komutlarını yan yana terminal pencerelerinde açarım. Bu ikili, sistemin nabzını tutmak için birebirdir.

Peki siz disk I/O sorunlarını tespit etmek için hangi araçları kullanıyorsunuz? `iotop` dışında favori yöntemleriniz var mı? Ya da bu rehberle ilgili sorusu olan, aşağıya yorum bıraksın, elimden geldiğince yardımcı olmaya çalışayım.
 

Tema özelleştirme sistemi

Bu menüden forum temasının bazı alanlarını kendinize özel olarak düzenleye bilirsiniz.

Zevkine göre renk kombinasyonunu belirle

Tam ekran yada dar ekran

Temanızın gövde büyüklüğünü sevkiniz, ihtiyacınıza göre dar yada geniş olarak kulana bilirsiniz.

Geri