iotop Nedir? Linux’ta Hangi İşlem Disk I/O Kullanıyor?

Linux sunucularda performans sorunlarını analiz ederken yalnızca işlemci (CPU) veya bellek (RAM) kullanımını takip etmek çoğu zaman yeterli değildir. Özellikle web sunucuları, veritabanları ve dosya tabanlı uygulamalarda yaşanan yavaşlamaların önemli bir bölümü depolama katmanından kaynaklanabilir. İşte bu noktada iotop nedir sorusu önem kazanır.
iotop, Linux işletim sistemlerinde çalışan işlemlerin (process) disk okuma (Read) ve yazma (Write) işlemlerini gerçek zamanlı olarak gösteren güçlü bir komut satırı aracıdır. Hangi uygulamanın diski kullandığını, ne kadar veri okuduğunu veya yazdığını anlık olarak görüntüleyerek Disk I/O kaynaklı performans sorunlarının kaynağını kısa sürede belirlemenizi sağlar.
Bir sunucuda yalnızca “Disk I/O yüksek” bilgisini görmek çoğu zaman yeterli değildir. Asıl önemli olan, bu yükün hangi işlem tarafından oluşturulduğunu tespit edebilmektir. Çünkü yüksek disk kullanımı yoğun çalışan bir MySQL veritabanından, sürekli log yazan bir uygulamadan, yanlış yapılandırılmış bir Docker container’ından veya zamanlanmış bir yedekleme görevinden kaynaklanabilir.
İşte iotop tam olarak bu sorunun cevabını verir. Gerçek zamanlı olarak çalışan işlemleri izleyerek hangi uygulamanın depolama kaynağını kullandığını gösterir ve performans sorunlarının kaynağını tahmin etmek yerine somut verilerle analiz etmenizi sağlar.
Bu rehberde iotop nedir, iotop ne işe yarar, Linux’ta iotop nasıl kurulur, iotop komutları nasıl kullanılır, hangi işlemin Disk I/O oluşturduğu nasıl tespit edilir ve iostat ile iotop birlikte nasıl değerlendirilir gibi en çok merak edilen konuları ayrıntılı olarak ele alacağız.
💡 İpucu: Disk kullanımının yükseldiğini gördüğünüzde doğrudan CPU veya RAM yükseltmeyi düşünmek yerine önce hangi işlemin Disk I/O oluşturduğunu belirlemek çok daha doğru bir teşhis yöntemidir.
🔍 iostat ile iotop Arasındaki Fark Nedir?
Linux sistemlerde Disk I/O analizi yapılırken en sık kullanılan araçlardan ikisi iostat ve iotop komutlarıdır. Her iki araç da depolama performansını analiz etmek için kullanılsa da farklı sorulara cevap verir.
iostat, disk veya blok aygıtı seviyesindeki performans metriklerini gösterir. Diskin ne kadar yoğun çalıştığını, okuma ve yazma hızlarını, IOPS değerlerini, bekleme sürelerini ve kuyruk uzunluğunu analiz etmenizi sağlar.
Eğer iostat komutunu daha önce kullanmadıysanız, iostat Nedir? Linux Disk I/O Performansı Nasıl Ölçülür?rehberimizi de incelemenizi öneririz. Bu içerik, disk seviyesindeki performans analizini ayrıntılı olarak ele almaktadır.
Ancak iostat şu sorunun cevabını vermez:
“Bu Disk I/O yükünü hangi uygulama oluşturuyor?”
İşte bu noktada iotop devreye girer.
| Özellik | iostat | iotop |
|---|---|---|
| Disk kullanımını gösterir | ✅ | ✅ |
| Process bazlı analiz yapar | ❌ | ✅ |
| Gerçek zamanlı izleme sağlar | ✅ | ✅ |
| Hangi uygulamanın Disk I/O oluşturduğunu gösterir | ❌ | ✅ |
| Performans darboğazını analiz etmeye yardımcı olur | ✅ | ✅ |
Bunu daha kısa şekilde özetleyebiliriz.
iostat
➡️ Disk nasıl çalışıyor?
iotop
➡️ Diski hangi işlem kullanıyor?
Gerçek bir performans analizi yaparken bu iki aracı birlikte kullanmak çok daha doğru sonuçlar elde etmenizi sağlar.
⚙️ iotop Nasıl Çalışır?
iotop, Linux çekirdeğinin I/O Accounting mekanizmasını kullanarak çalışan işlemlerin gerçekleştirdiği disk okuma ve yazma işlemlerini takip eder. Kernel tarafından toplanan bu bilgiler terminal üzerinde okunabilir bir tablo hâline getirilir ve gerçek zamanlı olarak güncellenir.
Gösterilen temel bilgiler şunlardır:
- PID (Process ID)
- USER
- DISK READ
- DISK WRITE
- SWAPIN
- IO%
- COMMAND
Bu bilgiler sayesinde aşağıdaki servislerin depolama üzerindeki etkisini kolayca analiz edebilirsiniz.
- MySQL ve MariaDB
- PostgreSQL
- PHP-FPM
- Apache
- Nginx
- Docker
- rsync
- journald
- logrotate
- Backup scriptleri
⚠️ Dikkat: Çoğu Linux dağıtımında iotop komutunun tüm süreçleri görüntüleyebilmesi için
sudoveyarootyetkisi gerekir. Yetkisiz çalıştırıldığında bazı işlemler listelenmeyebilir.
🎯 iotop Ne İşe Yarar?
iotop nedir sorusunun cevabını öğrendikten sonra aracın hangi durumlarda kullanılacağını bilmek de önemlidir.
Bir Linux sunucuda yüksek Disk I/O oluşmasının birçok farklı nedeni olabilir. iotop bu nedenleri tahmin etmek yerine doğrudan hangi sürecin depolama erişimi yaptığını göstererek teşhis sürecini hızlandırır.
En yaygın kullanım alanları şunlardır.
🗄️ Veritabanı Sunucularını Analiz Etmek
MySQL ve MariaDB gibi veritabanı servisleri yoğun sorgular, eksik indeksler veya uzun süren transaction’lar nedeniyle yüksek Disk I/O oluşturabilir.
🌐 Web Sunucularını İncelemek
Apache, Nginx veya PHP-FPM süreçleri WordPress önbelleğinin devre dışı olması, çok sayıda küçük dosyanın okunması veya yoğun medya kullanımı nedeniyle depolama üzerinde yüksek yük oluşturabilir.
🐳 Docker Ortamlarını İzlemek
Container logları, volume işlemleri ve image oluşturma süreçleri beklenenden fazla Disk I/O oluşturabilir.
💾 Backup ve Senkronizasyon İşlemlerini Kontrol Etmek
rsync, tar, gzip veya otomatik yedekleme görevleri çalışırken oluşan disk kullanımını analiz etmek için iotop oldukça kullanışlıdır.
🔄 Swap Kaynaklı Disk Kullanımını İncelemek
Fiziksel RAM yetersiz kaldığında Linux kullanılmayan bellek sayfalarını swap alanına taşır. Bu durum yoğun Disk I/O oluşmasına neden olabilir.
Swap kullanımının sistem performansına etkisini daha ayrıntılı öğrenmek için Linux Swap Nedir? VDS Sunucuda RAM Yetmediğinde Ne Olur? rehberimizi de inceleyebilirsiniz.
💡 İpucu: Eğer yüksek Disk I/O ile birlikte I/O Wait değeri de artıyorsa, I/O Wait Nedir? VDS Sunucuda Disk Beklemesi Hızı Nasıl Etkiler? rehberimiz disk bekleme sürelerini doğru yorumlamanıza yardımcı olacaktır.
💾 Linux’ta iotop Nasıl Kurulur?
iotop nedir sorusunun cevabını öğrendikten sonra aracı sisteminize kurabilirsiniz. iotop, birçok Linux dağıtımının resmi paket depolarında yer alır ve birkaç komutla kolayca kurulabilir. Bazı yeni dağıtımlarda klasik Python tabanlı sürüm yerine iotop-c paketi sunulmaktadır. Temel kullanım mantığı her iki sürümde de benzerdir.
🐧 Ubuntu ve Debian
Ubuntu ve Debian tabanlı sistemlerde aşağıdaki komutları kullanarak iotop kurulumunu gerçekleştirebilirsiniz.
sudo apt update
sudo apt install iotopEğer paket depoda bulunmuyorsa aşağıdaki komut ile kontrol edebilirsiniz.
apt search iotopBazı sürümlerde paket adı iotop-c olarak listelenebilir.
🎩 AlmaLinux, Rocky Linux ve RHEL
RHEL tabanlı sistemlerde kurulum aşağıdaki komutla yapılabilir.
sudo dnf install iotopPaket depoda görünmüyorsa:
sudo dnf search iotopkomutu ile kontrol sağlayabilirsiniz.
📦 CentOS 7
CentOS 7 kullanan sistemlerde önce EPEL deposunun etkin olması gerekir.
sudo yum install epel-release
sudo yum install iotop🏹 Arch Linux
Arch Linux kullanıcıları aşağıdaki komut ile kurulumu gerçekleştirebilir.
sudo pacman -S iotopKurulum tamamlandıktan sonra sürümü doğrulamak için aşağıdaki komutu çalıştırabilirsiniz.
iotop --version💡 İpucu: Üretim sunucularında yeni paket kurmadan önce bakım penceresi planlamak ve mevcut sistem yedeklerinin güncel olduğundan emin olmak iyi bir uygulamadır.
▶️ iotop Nasıl Kullanılır?
iotop nedir konusunu öğrendikten sonra aracın temel kullanımına geçebiliriz. En basit kullanım aşağıdaki komuttur.
sudo iotopKomut çalıştırıldığında terminal üzerinde sürekli güncellenen gerçek zamanlı bir ekran açılır.
Örnek çıktı aşağıdaki gibi görünebilir.
Total DISK READ : 6.84 M/s
Total DISK WRITE: 2.15 M/s
Current DISK READ: 5.12 M/s
Current DISK WRITE: 1.08 M/s
PID PRIO USER DISK READ DISK WRITE SWAPIN IO COMMAND
3124 be/4 mysql 5.0 M/s 860 K/s 0.00% 22.1% mysqld
4178 be/4 www-data 980 K/s 240 K/s 0.00% 5.2% php-fpm
5821 be/4 root 310 K/s 910 K/s 0.00% 4.0% rsyncBu ekranda çalışan tüm işlemleri görebilir ve hangi uygulamanın ne kadar Disk I/O oluşturduğunu gerçek zamanlı olarak takip edebilirsiniz.

📊 iotop Çıktısı Nasıl Okunur?
iotop nedir konusunu tam anlamıyla anlayabilmek için ekrandaki sütunların ne ifade ettiğini bilmek gerekir.
🆔 PID
PID (Process ID), çalışan işlemin benzersiz kimlik numarasıdır.
Örneğin;
3124numaralı işlemi ayrıntılı incelemek için aşağıdaki komutu kullanabilirsiniz.
ps -fp 3124Gerekirse işlemi CPU ve bellek kullanımı açısından da inceleyebilirsiniz.
top -p 3124👤 USER
USER sütunu işlemin hangi kullanıcı hesabı altında çalıştığını gösterir.
Örneğin;
- mysql
- www-data
- nginx
- root
Paylaşımlı hosting veya çok kullanıcılı VDS sunucularda hangi kullanıcının yoğun Disk I/O oluşturduğunu belirlemek açısından oldukça faydalıdır.
📥 DISK READ
Bu sütun işlemin diskten saniyede ne kadar veri okuduğunu gösterir.
Örneğin;
5.0 M/sBu değer ilgili işlemin saniyede yaklaşık 5 MB veri okuduğu anlamına gelir.
Yüksek okuma değerleri genellikle;
- Büyük veritabanı sorguları
- Çok sayıda dosya okunması
- Medya dosyalarının sunulması
- Cache oluşturma işlemleri
- Dosya indeksleme servisleri
sırasında görülebilir.
📤 DISK WRITE
DISK WRITE sütunu işlemin diske yazdığı veri miktarını gösterir.
Örneğin;
860 K/sYüksek yazma değerleri çoğunlukla;
- MySQL
- MariaDB
- PostgreSQL
- Docker
- rsync
- journald
- logrotate
gibi servislerde görülür.
Sürekli yüksek yazma oranları tespit ederseniz VDS Sunucuda Log Yönetimi Nedir? Nasıl Yapılır? rehberimizi inceleyerek log yönetimini optimize edebilirsiniz.
🔄 SWAPIN
SWAPIN sütunu işlemin swap alanından veri almak için ne kadar süre beklediğini gösterir.
Bu değerin uzun süre yüksek kalması;
- RAM yetersizliği
- Bellek sızıntısı (Memory Leak)
- Yoğun Swap kullanımı
- Yanlış yapılandırılmış uygulamalar
gibi durumlara işaret edebilir.
Swap mekanizmasını daha ayrıntılı öğrenmek için Linux Swap Nedir? VDS Sunucuda RAM Yetmediğinde Ne Olur?rehberimize de göz atabilirsiniz.
⏳ IO%
IO sütunu işlemin çalışma süresinin ne kadarını Disk I/O bekleyerek geçirdiğini gösterir.
Örneğin;
IO 22.1%Bu değer ilgili sürecin çalışma süresinin yaklaşık %22’sini disk erişimini bekleyerek geçirdiğini ifade eder.
Ancak bu metriği değerlendirirken;
- Depolama türü (SSD veya NVMe)
- Sunucunun genel yükü
- I/O Wait değeri
- CPU ve RAM kullanımı
- Uygulamanın normal iş yükü
birlikte değerlendirilmelidir.
⚠️ Dikkat: Yalnızca IO yüzdesine bakarak “disk yavaş” sonucuna varmak doğru değildir. Özellikle NVMe depolama kullanan modern VDS sunucularda anlık yüksek Disk I/O değerleri normal olabilir.
🧩 COMMAND Sütunu Ne Anlama Gelir?
COMMAND sütunu, Disk I/O oluşturan işlemin hangi uygulama veya komut olduğunu gösterir.
Örneğin aşağıdaki süreçlerle sık karşılaşabilirsiniz.
| COMMAND | Açıklama |
|---|---|
mysqld | MySQL veya MariaDB veritabanı servisi |
php-fpm | PHP FastCGI Process Manager |
nginx | Nginx web sunucusu |
apache2 | Apache HTTP Server |
dockerd | Docker servis süreci |
rsync | Dosya senkronizasyon işlemi |
tar | Arşivleme işlemi |
journald | Sistem günlük kayıt servisi |
COMMAND sütununu inceleyerek hangi uygulamanın disk üzerinde yoğun yük oluşturduğunu kolayca anlayabilirsiniz.
💡 İpucu: Eğer COMMAND sütununda tanımadığınız bir uygulama sürekli yüksek Disk I/O oluşturuyorsa, bunun normal bir sistem süreci mi yoksa beklenmeyen bir uygulama mı olduğunu araştırmanız faydalı olacaktır.
🔍 Process ve Thread Arasındaki Fark
Linux’ta bazı uygulamalar tek bir process olarak çalışırken, bazıları çok sayıda thread oluşturabilir.
Örneğin;
- MySQL
- PostgreSQL
- Java uygulamaları
- Docker servisleri
birden fazla thread kullanabilir.
Bu nedenle iotop varsayılan görünümde aynı uygulamaya ait birden fazla satır gösterebilir.
Daha sade bir görünüm elde etmek için ilerleyen bölümde anlatacağımız iotop -P parametresi kullanılabilir. Bu seçenek yalnızca ana process’leri listeleyerek çıktının daha okunabilir olmasını sağlar.
💡 İpucu: Çok sayıda thread oluşturan uygulamalarda doğrudan en yüksek değere sahip satıra odaklanmak yerine, uygulamanın genel davranışını değerlendirmek daha doğru sonuç verir.
🛠️ En Faydalı iotop Komutları
iotop nedir sorusunun cevabını öğrendikten sonra sıra aracı verimli şekilde kullanmaya gelir. iotop birçok farklı parametre desteklese de günlük sistem yönetiminde kullanılan birkaç komut, performans sorunlarını teşhis etmek için çoğu zaman yeterlidir.
Aşağıdaki tablo en sık kullanılan iotop komutlarını özetlemektedir.
| Komut | Açıklama |
|---|---|
sudo iotop | Gerçek zamanlı Disk I/O ekranını açar. |
sudo iotop -o | Sadece aktif olarak Disk I/O yapan işlemleri gösterir. |
sudo iotop -P | Thread yerine yalnızca process’leri listeler. |
sudo iotop -oP | Aktif Disk I/O oluşturan process’leri gösterir. |
sudo iotop -a | Toplam Disk I/O kullanımını biriktirerek gösterir. |
sudo iotop -b | Batch modunda çalışır. |
sudo iotop -b -n 1 | Tek seferlik çıktı üretir. |
sudo iotop -d 5 | Çıktıyı 5 saniyede bir yeniler. |
💡 İpucu: Günlük kullanımda en pratik komut genellikle
sudo iotop -oPkomutudur. Böylece yalnızca aktif Disk I/O oluşturan process’leri görür ve gereksiz satırlarla uğraşmazsınız.
🔍 sudo iotop Komutu
En temel kullanım aşağıdaki gibidir.
sudo iotopKomut çalıştırıldığında terminal üzerinde sürekli güncellenen canlı bir ekran açılır.
Bu ekran sayesinde;
- Hangi uygulamanın diski kullandığını,
- Ne kadar veri okuduğunu,
- Ne kadar veri yazdığını,
- Hangi işlemin Disk I/O beklediğini
anlık olarak takip edebilirsiniz.
Çoğu Linux dağıtımında tüm süreçleri görebilmek için sudo yetkisi gerekir.
⚡ iotop -o Ne İşe Yarar?
Varsayılan görünümde iotop, disk erişimi gerçekleştirmeyen işlemleri de listede gösterebilir.
Özellikle onlarca servisin çalıştığı VDS sunucularda bu durum ekranın gereksiz şekilde kalabalık görünmesine neden olur.
Bu nedenle en sık kullanılan parametrelerden biri -o seçeneğidir.
sudo iotop -oBu komut yalnızca o anda disk okuyan veya yazan işlemleri gösterir.
Örneğin;
PID USER DISK READ DISK WRITE COMMAND
3124 mysql 6.1 M/s 980 K/s mysqld
4517 www-data 1.2 M/s 140 K/s php-fpmBu görünüm sayesinde gerçekten disk kullanan uygulamaları çok daha hızlı tespit edebilirsiniz.
💡 İpucu: Eğer iostat çıktısında yüksek Disk I/O görüyorsanız ikinci adım olarak
iotop -oçalıştırmanız, yükün hangi uygulamadan kaynaklandığını anlamanızı kolaylaştıracaktır. Disk seviyesindeki analiz hakkında daha fazla bilgi için iostat Nedir? Linux Disk I/O Performansı Nasıl Ölçülür? rehberimizi inceleyebilirsiniz.
🖥️ iotop -P Ne İşe Yarar?
Linux’ta bazı uygulamalar onlarca hatta yüzlerce thread oluşturabilir.
Varsayılan görünümde iotop bu thread’leri ayrı ayrı gösterebilir.
Örneğin;
- MySQL
- PostgreSQL
- Java uygulamaları
- Docker servisleri
çok sayıda iş parçacığı oluşturabilir.
Bu da ekranın okunmasını zorlaştırabilir.
sudo iotop -P-P parametresi yalnızca ana process’leri gösterir.
Böylece çıktı çok daha sade ve anlaşılır hâle gelir.
🚀 iotop -oP Neden En Çok Kullanılır?
Linux sistem yöneticilerinin büyük bölümü performans analizi yaparken aşağıdaki komutu tercih eder.
sudo iotop -oPBu komut;
- Yalnızca aktif Disk I/O oluşturan işlemleri gösterir.
- Thread yerine process seviyesinde listeleme yapar.
- Gereksiz satırları gizleyerek okunabilirliği artırır.
Yoğun çalışan üretim sunucularında ilk kontrol edilmesi gereken komutlardan biridir.
💡 İpucu: Eğer sunucunuzda belirli saatlerde performans sorunu yaşanıyorsa
iotop -oPkomutunu birkaç dakika açık bırakarak anlık yük oluşturan işlemleri yakalayabilirsiniz.
📈 iotop -a Ne İşe Yarar?
Varsayılan olarak iotop yalnızca anlık Disk I/O kullanımını gösterir.
Bazı durumlarda ise işlemlerin çalışmaya başladıkları andan itibaren oluşturdukları toplam Disk I/O miktarını görmek daha faydalıdır.
Bunun için aşağıdaki komutu kullanabilirsiniz.
sudo iotop -aBu özellik özellikle;
- MySQL
- PostgreSQL
- Docker
- Elasticsearch
gibi uzun süre çalışan servislerde oldukça kullanışlıdır.
Anlık kullanım düşük görünse bile toplam veri miktarı oldukça yüksek olabilir.
📄 Batch Modu (-b)
Performans sorunu her zaman siz terminal başındayken oluşmayabilir.
Bu gibi durumlarda iotop’u Batch Mode ile çalıştırabilirsiniz.
sudo iotop -bÇıktıyı doğrudan bir dosyaya kaydetmek de mümkündür.
sudo iotop -b > iotop.logDestek ekiplerine log gönderirken veya geçmiş performansı analiz ederken bu yöntem oldukça kullanışlıdır.
🔢 iotop -b -n 1 Ne İşe Yarar?
Script yazarken sürekli çalışan bir ekran yerine tek seferlik çıktı almak istenebilir.
Bunun için aşağıdaki komut kullanılabilir.
sudo iotop -b -n 1Komut yalnızca bir örnekleme yapar ve ardından otomatik olarak sonlanır.
Monitoring sistemleri ve otomasyon scriptlerinde yaygın olarak tercih edilir.
⏱️ Yenileme Süresini Değiştirmek (-d)
Varsayılan yenileme süresi ihtiyacınıza göre uygun olmayabilir.
Aşağıdaki örnekte ekran her 5 saniyede bir güncellenmektedir.
sudo iotop -d 5Yoğun çalışan sunucularda daha uzun yenileme aralıkları kullanmak çıktının daha rahat okunmasını sağlayabilir.
⚠️ Dikkat: iotop nedir sorusunun cevabını bilmek kadar çıktıyı doğru yorumlamak da önemlidir. Yüksek Disk I/O her zaman depolama altyapısının yetersiz olduğu anlamına gelmez. CPU, RAM ve Disk I/O birlikte değerlendirilmelidir. Bu konuda VDS Sunucuda Darboğaz Tespit Etmek: CPU, RAM ve Disk Analizirehberimiz de teşhis sürecinde size yardımcı olacaktır.
📊 iotop Çıktısını Doğru Yorumlamak Neden Önemlidir?
Birçok kullanıcı iotop ekranında en yüksek değere sahip işlemi gördüğünde doğrudan bunun sorunlu olduğunu düşünür. Ancak gerçek sistemlerde bu her zaman doğru değildir.
Örneğin yoğun trafik alan bir web sunucusunda mysqld işleminin listenin en üstünde yer alması normaldir. Aynı şekilde gece saatlerinde çalışan bir rsync yedekleme görevinin yüksek Disk I/O oluşturması da beklenen bir durumdur.
Önemli olan, görülen Disk I/O kullanımının sistemin normal çalışma düzeniyle uyumlu olup olmadığını değerlendirmektir.
Beklenmeyen saatlerde çalışan işlemler, sürekli büyüyen log dosyaları veya normalden fazla disk kullanan uygulamalar daha ayrıntılı incelenmelidir.
💡 İpucu: Eğer yoğun Disk I/O ile birlikte yüksek I/O Wait değerleri de görüyorsanız I/O Wait Nedir? VDS Sunucuda Disk Beklemesi Hızı Nasıl Etkiler? ve VDS Disk I/O Nedir? Sunucuda IOPS ve Disk Performansı Rehberi içeriklerimizi de inceleyerek performans analizini daha kapsamlı şekilde gerçekleştirebilirsiniz.
🔎 Gerçek Kullanım Senaryoları ile iotop Analizi
iotop nedir sorusunun cevabını öğrendikten sonra, gerçek hayatta karşılaşabileceğiniz senaryolar üzerinden ilerleyelim. Böylece yalnızca komutları öğrenmekle kalmayacak, elde ettiğiniz verileri nasıl yorumlayacağınızı da anlayabileceksiniz.
🗄️ Senaryo 1: MySQL Yoğun Disk I/O Oluşturuyor
Bir e-ticaret siteniz olduğunu düşünelim. Kullanıcılar sayfaların yavaş açıldığını bildiriyor ancak CPU ve RAM kullanımı normal seviyelerde görünüyor.
İlk olarak iostat Nedir? Linux Disk I/O Performansı Nasıl Ölçülür? rehberimizde anlattığımız gibi disk seviyesindeki performansı kontrol ettiğinizi ve yüksek Disk I/O tespit ettiğinizi varsayalım.
Şimdi aşağıdaki komutu çalıştırıyorsunuz.
sudo iotop -oPÖrnek çıktı:
PID USER DISK READ DISK WRITE COMMAND
2841 mysql 18.4 M/s 3.1 M/s mysqldBu çıktı, mysqld işleminin yoğun Disk I/O oluşturduğunu gösterir.
Ancak bu durum tek başına MySQL’in hatalı çalıştığı anlamına gelmez.
Sebep aşağıdakilerden biri olabilir.
- İndeks kullanılmayan sorgular
- Büyük JOIN işlemleri
- Uzun süren transaction’lar
- Yoğun veri içe aktarma işlemleri
- Otomatik yedekleme sırasında çalışan sorgular
Bu nedenle iotop yalnızca ilk teşhisi koyar. Ardından slow query logları, EXPLAIN çıktıları ve veritabanı optimizasyonu incelenmelidir.
💡 İpucu: MySQL sürekli listenin en üstünde görünüyorsa hemen sunucu yükseltmek yerine sorgu optimizasyonu yapmak çoğu zaman daha büyük performans kazancı sağlar.
🌐 Senaryo 2: PHP-FPM Beklenenden Fazla Disk Kullanıyor
Bir WordPress sitesinde CPU kullanımı düşük olmasına rağmen sayfalar geç açılıyor olabilir.
Aşağıdaki gibi bir çıktı görebilirsiniz.
PID USER DISK READ DISK WRITE COMMAND
5328 www-data 8.2 M/s 320 K/s php-fpmBu durumda aşağıdaki ihtimaller değerlendirilmelidir.
- WordPress önbelleği çalışmıyor olabilir.
- Çok fazla küçük dosya okunuyor olabilir.
- Ağır çalışan eklentiler sürekli dosya erişimi yapıyor olabilir.
- Tema gereğinden fazla dosya okuyor olabilir.
- Dosya tabanlı cache sistemi yanlış yapılandırılmış olabilir.
Özellikle yüksek trafikli WordPress sitelerinde bu durum sık görülebilir.
Sunucu performansını artırmak için VDS Sunucuda Performansın En Etkili 10 Yolu rehberimizde yer alan optimizasyon önerilerini de uygulayabilirsiniz.
🐳 Senaryo 3: Docker Sürekli Disk Yazıyor
Docker kullanan sistemlerde aşağıdaki gibi bir çıktı ile karşılaşabilirsiniz.
PID USER DISK READ DISK WRITE COMMAND
7482 root 820 K/s 12.4 M/s dockerdİlk bakışta Docker’ın sorun çıkardığı düşünülebilir.
Ancak bunun nedeni;
- Sürekli büyüyen container logları,
- Overlay filesystem,
- Volume senkronizasyonları,
- Image oluşturma işlemleri,
- Veritabanı container’ları
olabilir.
Docker sürecini durdurmadan önce hangi container’ın yoğun I/O oluşturduğunu belirlemek çok daha doğru olacaktır.
⚠️ Dikkat: Docker’ın kendisi yerine container içerisinde çalışan uygulama asıl nedeni oluşturabilir. Bu nedenle yalnızca
dockerdsürecine odaklanmak doğru olmayabilir.
💾 Senaryo 4: rsync ve Backup İşlemleri
Gece saatlerinde aşağıdaki gibi bir çıktı görmeniz tamamen normaldir.
PID USER DISK READ DISK WRITE COMMAND
9511 root 21.6 M/s 1.8 M/s rsyncBu durum, yedekleme işleminin aktif olarak çalıştığını gösterir.
Ancak aşağıdaki durumlar araştırılmalıdır.
- Backup görevi gün içinde çalışıyorsa
- Aynı görev sürekli tekrar ediyorsa
- Yanlış yapılandırılmış senkronizasyon scriptleri varsa
- Gereksiz dosyalar sürekli kopyalanıyorsa
Bu tür işlemler gereksiz Disk I/O oluşturabilir.
Yedekleme görevlerini planlarken Cron Job Nedir? Ne İşe Yarar? Nasıl Oluşturulur? ve VDS Sunucuda Crontab Nedir? Nasıl Kullanılır? rehberlerimiz de faydalı olacaktır.
📝 Senaryo 5: Log Dosyaları Diski Yoruyor
Bazı sunucularda yüksek Disk I/O’nun nedeni uygulamanın kendisi değil, sürekli büyüyen log dosyaları olabilir.
Örneğin;
PID USER DISK WRITE COMMAND
1874 root 6.8 M/s journaldveya
PID USER DISK WRITE COMMAND
4428 www-data 5.4 M/s nginxBu durum;
- Çok ayrıntılı log seviyesi,
- Sürekli oluşan uygulama hataları,
- Hatalı çalışan servisler,
- Döngüye giren scriptler
nedeniyle oluşabilir.
Log dosyalarının düzenli olarak yönetilmesi performans açısından önemlidir. Bu konuda VDS Sunucuda Log Yönetimi Nedir? Nasıl Yapılır? rehberimizden faydalanabilirsiniz.
💡 İpucu: Log dosyalarını tamamen kapatmak yerine yalnızca gereksiz kayıt seviyelerini azaltmak ve düzenli log rotasyonu uygulamak çok daha doğru bir yöntemdir.
🔄 Senaryo 6: Swap Nedeniyle Disk Kullanımı Artıyor
CPU kullanımı düşük olmasına rağmen sistem yavaş çalışıyorsa neden RAM yetersizliği olabilir.
Bu durumda iotop ekranında SWAPIN değerlerinin yükseldiğini görebilirsiniz.
Yoğun swap kullanımı;
- Uygulamaların daha geç yanıt vermesine,
- Disk erişimlerinin artmasına,
- Genel sistem performansının düşmesine
neden olabilir.
Swap kullanımının nasıl çalıştığını daha ayrıntılı öğrenmek için Linux Swap Nedir? VDS Sunucuda RAM Yetmediğinde Ne Olur? rehberimizi de inceleyebilirsiniz.
⚖️ iostat ve iotop Birlikte Nasıl Kullanılmalıdır?
Birçok sistem yöneticisi yalnızca iotop çıktısına bakarak karar vermeye çalışır. Oysa doğru yöntem, birden fazla aracı birlikte kullanmaktır.
Önerilen analiz sırası aşağıdaki gibidir.
1. Adım: Disk seviyesindeki performansı iostat Nedir? Linux Disk I/O Performansı Nasıl Ölçülür? rehberiyle analiz edin.
2. Adım: Eğer Disk I/O yüksek görünüyorsa aşağıdaki komutu çalıştırın.
sudo iotop -oP3. Adım: En fazla Disk I/O oluşturan process’i belirleyin.
4. Adım: Bunun beklenen bir sistem davranışı mı yoksa olağan dışı bir durum mu olduğunu değerlendirin.
5. Adım: CPU, RAM, Swap ve I/O Wait değerlerini birlikte analiz edin.
Performans sorunlarını yalnızca disk üzerinden değerlendirmek yerine tüm sistem kaynaklarını birlikte incelemek daha doğru sonuç verecektir. Bu konuda VDS Sunucuda Darboğaz Tespit Etmek: CPU, RAM ve Disk Analizi rehberimiz kapsamlı bir yol haritası sunmaktadır.
⚠️ Dikkat: Özellikle SSD ve NVMe depolama kullanan modern VDS sunucularında anlık yüksek Disk I/O değerleri her zaman performans sorunu anlamına gelmez. iotop nedir sorusunun cevabını doğru uygulayabilmek için iotop verilerini iostat, I/O Wait, CPU ve RAM metrikleriyle birlikte değerlendirmek gerekir.
❓ Sık Sorulan Sorular (SSS)
iotop nedir?
iotop, Linux işletim sistemlerinde çalışan işlemlerin gerçek zamanlı Disk I/O kullanımını gösteren bir komut satırı aracıdır. Hangi process’in diski kullandığını, ne kadar veri okuduğunu ve yazdığını görüntüleyerek performans sorunlarının kaynağını tespit etmeye yardımcı olur.
iotop hangi işletim sistemlerinde kullanılabilir?
iotop, Linux tabanlı işletim sistemlerinde kullanılabilir. Ubuntu, Debian, AlmaLinux, Rocky Linux, RHEL, CentOS ve Arch Linux gibi birçok dağıtım tarafından desteklenmektedir.
iotop çalıştırmak için root yetkisi gerekir mi?
Çoğu durumda evet. Tüm süreçleri ve doğru Disk I/O bilgilerini görüntüleyebilmek için sudo veya root yetkisi önerilir. Yetkisiz çalıştırıldığında bazı işlemler listelenmeyebilir veya eksik bilgiler gösterilebilir.
iotop ile iostat arasındaki fark nedir?
iotop, hangi işlemin Disk I/O oluşturduğunu gösterirken iostat disk veya blok aygıtı seviyesindeki performans istatistiklerini gösterir.
Özetle;
- iostat: Disk nasıl çalışıyor?
- iotop: Diski hangi işlem kullanıyor?
Her iki aracı birlikte kullanmak çok daha doğru analiz yapılmasını sağlar. Disk seviyesindeki performans metrikleri hakkında ayrıntılı bilgi için iostat Nedir? Linux Disk I/O Performansı Nasıl Ölçülür? rehberimizi inceleyebilirsiniz.
iotop yüksek Disk I/O gösteriyorsa disk arızalı mıdır?
Hayır.
Yüksek Disk I/O her zaman donanımsal bir arıza anlamına gelmez. Yoğun çalışan veritabanları, yedekleme işlemleri, log kayıtları veya yüksek trafikli web uygulamaları da yüksek Disk I/O oluşturabilir.
Bu nedenle iotop çıktısı; CPU, RAM, Swap ve I/O Wait gibi diğer sistem metrikleriyle birlikte değerlendirilmelidir.
iotop -o ne işe yarar?
iotop -o yalnızca aktif olarak Disk I/O gerçekleştiren işlemleri gösterir. Böylece disk kullanmayan süreçler listelenmez ve yoğun Disk I/O oluşturan uygulamaları tespit etmek kolaylaşır.
iotop -P ne işe yarar?
iotop -P parametresi thread yerine yalnızca ana process’leri listeler. Çok sayıda iş parçacığı kullanan uygulamalarda çıktının daha okunabilir olmasını sağlar.
iotop -a ne işe yarar?
iotop -a, işlemlerin çalışmaya başladıkları andan itibaren gerçekleştirdikleri toplam Disk I/O miktarını gösterir. Özellikle uzun süre çalışan servislerin genel disk kullanımını analiz etmek için faydalıdır.
iotop üretim sunucularında güvenle kullanılabilir mi?
Evet.
iotop bir benchmark aracı değildir. Sistemde ek yük oluşturmadan mevcut Disk I/O kullanımını izlemek için geliştirilmiştir. Bu nedenle üretim ortamlarında teşhis amacıyla güvenle kullanılabilir.

🎯 Sonuç
iotop, Linux sistem yöneticileri için Disk I/O kaynaklı performans sorunlarını analiz ederken en faydalı araçlardan biridir. Bir sunucuda yalnızca disk kullanımının arttığını görmek çoğu zaman yeterli değildir. Asıl önemli olan, bu yükü hangi uygulamanın oluşturduğunu doğru şekilde belirleyebilmektir.
Bu rehberde iotop nedir, iotop ne işe yarar, Linux’ta iotop nasıl kurulur, en sık kullanılan komutlar, gerçek kullanım senaryoları ve çıktının nasıl yorumlanacağı gibi temel konuları ayrıntılı şekilde ele aldık.
Ancak unutulmaması gereken önemli bir nokta vardır. iotop, tek başına kesin teşhis aracı değildir. Sağlıklı bir performans analizi için elde edilen veriler; iostat Nedir? Linux Disk I/O Performansı Nasıl Ölçülür?, I/O Wait Nedir? VDS Sunucuda Disk Beklemesi Hızı Nasıl Etkiler? ve VDS Sunucuda Darboğaz Tespit Etmek: CPU, RAM ve Disk Analizi rehberlerimizde anlattığımız diğer performans metrikleriyle birlikte değerlendirilmelidir.
Modern SSD ve NVMe depolama kullanan VDS sunucularında doğru teşhis, yalnızca tek bir metriğe bakılarak değil; CPU, RAM, Disk I/O, I/O Wait ve uygulamanın çalışma yükü birlikte analiz edilerek yapılmalıdır. Bu yaklaşım, gereksiz donanım yükseltmelerinin önüne geçerken gerçek performans sorunlarının çok daha hızlı tespit edilmesini sağlar.
Sunucunuzun yüksek performanslı SSD veya NVMe depolama altyapısında kararlı çalışmasını istiyorsanız VDS Sunucu çözümlerimizi inceleyebilir, güçlü donanım altyapısı ve yüksek disk performansı sayesinde uygulamalarınızı güvenle çalıştırabilirsiniz.