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 `iostat` ve `iotop` Komutları ile Disk Giriş/Çıkış (I/O) Performansını İzleme ve Analiz Etme

asteron

Üye
Katılım
14 Mart 2026
Mesajlar
40
Merhaba arkadaşlar, bugün sizlere sunucularımızda sıkça karşılaştığımız bir performans darboğazını, yani disk I/O (Giriş/Çıkış) problemlerini nasıl teşhis edeceğimizi anlatacağım. Diskler, CPU veya RAM kadar göz önünde olmasa da, yavaşlamanın en temel sebeplerinden biridir. Bu rehberde, iostat ve iotop gibi araçlarla disklerinizin ne kadar yoğun çalıştığını, hangi sürecin diskleri yediğini nasıl bulacağımızı adım adım göreceğiz.

📦 Gerekli Araçların Kurulumu

Öncelikle bu araçların sistemimizde yüklü olduğundan emin olalım. Genellikle sysstat ve iotop paketlerine ihtiyacımız var.

Debian/Ubuntu tabanlı sistemler için:

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

RHEL/CentOS/Fedora tabanlı sistemler için:

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

Kurulumdan sonra, sysstat servisini başlatmak ve sistem açılışında otomatik başlamasını sağlamak iyi olur.

⚙️ iostat ile Genel Disk İstatistikleri

iostat komutu, disklerinizin genel performans istatistiklerini (okuma/yazma hızı, işlem sayısı, kullanım yüzdesi vb.) gösterir. En temel kullanımı parametresiz çalıştırmaktır. Bu, sistem açılışından itibaren ortalama değerleri verir.

Bash:
iostat

Anlık ve sürekli izlemek için -x (detaylı) ve 1 (1 saniye aralık) parametrelerini kullanırım. Bu, en çok işe yarayan komuttur.

Bash:
iostat -x 1

Bu komut bize şu önemli sütunları gösterir:
%util: Diskin meşguliyet yüzdesi. %70-80'in üzeri kritik bir yük olduğunu gösterir.
await: Okuma/yazma isteklerinin ortalama tamamlanma süresi (ms). Yüksek olması diskte kuyruk oluştuğu anlamına gelir.
r/s, w/s: Saniyedeki okuma ve yazma işlemi sayısı.
rkB/s, wkB/s: Saniyede okunan/yazılan kilobayt miktarı.

Örneğin, /dev/sda diskinizin %util değeri sürekli %90'larda ise, disk I/O'nuz tıkanmış demektir.

⚠️ iostat Çıktısını Okurken Dikkat!

%util yüksek ama rkB/s veya wkB/s düşükse, bu genellikle diskte çok fazla küçük, rastgele okuma/yazma işlemi olduğu (örneğin bir veritabanı sunucusu) anlamına gelir. Bu durumda SSD'ye geçmek veya RAID yapısını gözden geçirmek gerekebilir. Eğer await değeri çok yüksekse (50ms üzeri), fiziksel bir disk sorunu olabilir.

🔍 iotop ile Süreç Bazlı Disk Kullanımı

iostat bize "diskin yoğun" olduğunu söyler ama "hangi program yoğunlaştırıyor?" sorusunun cevabını iotop verir. Tıpkı top komutu gibi, ancak disk I/O için çalışan bir araçtır. Root yetkisiyle çalıştırmanızı öneririm.

Bash:
sudo iotop

Çalıştırdığınızda anlık olarak hangi sürecin (PID) ne kadar disk okuma/yazma band genişliği kullandığını göreceksiniz. Özellikle DISK READ ve DISK WRITE sütunlarına bakın. Sürekli yüksek değerler gösteren bir süreç, sorunun kaynağı olabilir.

iotop'u sadece okuma/yazma yapan süreçleri gösterecek şekilde filtrelemek için -o parametresini kullanabilirsiniz.

Bash:
sudo iotop -o

💡 Pratik Analiz ve Optimizasyon İpuçları

1. Önce iostat -x 1 ile genel durumu kontrol edin. Hangi diskin (/dev/sdb, /dev/nvme0n1 vb.) problemli olduğunu tespit edin.
2. Ardından sudo iotop -o ile o diskte yoğun I/O yapan süreci bulun.
3. Süreç bir veritabanı (MySQL/PostgreSQL) ise, yavaş sorguları, yetersiz indeksleri veya tampon (buffer) boyutlarını kontrol edin. /etc/mysql/my.cnf veya /etc/postgresql/.../postgresql.conf dosyalarındaki ayarları gözden geçirin.
4. Süreç bir log yazma işlemiyse, rsyslog veya journald konfigürasyonunu kontrol edin. Aşırı verbose loglama yapılıyor olabilir.
5. Donanımsal bir sınır olup olmadığını anlamak için, disk modelinizin (HDD/SSD) spec'lerindeki IOPS ve throughput değerleri ile iostat çıktınızı karşılaştırın.

✅ Sonuç ve Tavsiyeler

Disk I/O izleme, proaktif sunucu yönetiminin olmazsa olmazıdır. iostat ve iotop bu işin temel taşları. Ben kendi sunucu izleme stack'imde, iostat verilerini düzenli olarak bir grafik sistemine (Grafana) aktarıp tarihsel eğilimleri de takip ediyorum. Bu sayede ani patlamaları veya yavaş yavaş artan yükü önceden görebiliyorum.

Siz bu disk izleme işini kendi ortamlarınızda nasıl yapıyorsunuz? atop veya nmon gibi başka favori araçlarınız var mı? Ya da SSD'ye geçtikten sonra yaşadığınız performans farkı? Tecrübelerinizi ve sorularınızı aşağıdaki yorumlarda paylaşabilirsiniz. Bir sonraki rehberde görüşmek üzere, sağlıcakla kalın.
 

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