Bu yazıda, Linux sistemlerinde disk I/O (Giriş/Çıkış) aktivitesini nasıl izleyebileceğimizi tartışacağız. Bu, bir sistemi yönetirken önemli bir görevdir. Diskten veri geri almak zaman alır ve bu sebeple disk I/O alt sistemi genellikle sistemin en yavaş kısmı olarak kabul edilir. Disk I/O performansı düşükse tüm sistem yavaşlayabilir.
Bu yüzden disk performansını düzenli olarak kontrol etmek gerekir. Sisteminizde bir darboğaz olup olmadığını ve varsa bunun nedenini tespit etmeliyiz. Ayrıca hangi işlemin I/O talebinin tamamlanmasını beklediğini de anlamak önemlidir. Bunun için iostat
, iotop
, sar
ve vmstat
gibi araçları kullanarak Linux sistemlerindeki disk I/O performansını inceleyeceğiz.
1. Gerekli Araçların Kurulumu
Başlamadan önce, bu araçların sistemimizde yüklü olduğundan emin olmalıyız. Eğer yüklü değillerse, kurulum işlemini gerçekleştirmemiz gerekecek. iostat
, vmstat
ve sar
araçları sysstat
paketinin bir parçasıdır. iotop
aracı ise iotop
paketinin bir parçasıdır.
Debian, Ubuntu veya türevlerinde kurulum için şu komutları çalıştırabilirsiniz:
$ sudo apt-get install sysstat
$ sudo apt-get install iotop
RHLE, CentOS ve Fedora sistemleri için ise şu komutları kullanabilirsiniz:
$ sudo dnf install sysstat
$ sudo dnf install iotop
2. Disk I/O İstatistiklerini Raporlama
İlk olarak, genel bir disk I/O aktivitesi görünümü elde etmek faydalı olacaktır. Bu noktada, iostat
komutu oldukça kullanışlı ve anlaşılır bir araçtır. iostat
, giriş/çıkış istatistiklerini gösterir ve CPU ile disk aygıtlarının kullanım oranlarını raporlar.
Disk I/O aktivitelerine odaklanmak için -d
seçeneğini kullanarak sadece disk aktivitelerini görüntüleyebiliriz:
$ iostat -d
Linux 5.13.12-100.fc33.x86_64 (cpynet) _x86_64_ (4 CPU)
Device tps kB_read/s kB_wrtn/s kB_dscd/s kB_read kB_wrtn kB_dscd
dm-0 4.84 48.24 35.44 0.00 15064145 11067448 0
dm-1 1.00 1.41 2.60 0.00 440364 812036 0
Bu komutu belirli aralıklarla tekrarlamak isterseniz, komuta saniye cinsinden bir aralık ekleyebilirsiniz. Örneğin, iki saniyede bir rapor almak için:
$ iostat -d 2
iostat
, sistemdeki tüm cihaz aktiviteleri hakkında bilgi verir. Blok cihazlar ve bu cihazların tüm bölümleri hakkında istatistikler görmek isterseniz -p
seçeneğini kullanabilirsiniz:
$ iostat -d -p sda
Sadece gerçekten aktif olan disk veya bölümler hakkında bilgi almak istiyorsanız, -z
seçeneği ile sıfır değerlerine sahip cihazları atlayabilirsiniz:
$ iostat -d -z 2
3. Darboğaz Oluşturan İşlemi Tespit Etme
Disk I/O aktivitelerini izlemek her zaman yeterli olmayabilir. Bazen hangi işlem veya iş parçacığının yoğun I/O aktivitelerine sebep olduğunu tespit etmek gerekir. iotop
komutu bu durumda işimize yarar. iotop
, her işlem veya iş parçacığı tarafından gerçekleştirilen disk aktivitelerini gerçek zamanlı olarak gösteren interaktif bir araçtır. iotop
komutunu çalıştırmak için root yetkilerine veya NET_ADMIN yeteneğine sahip olmanız gerekir.
Ayrıca, aşağıdaki çekirdek seçeneklerinin etkin olup olmadığını kontrol etmelisiniz:
$ egrep '(CONFIG_VM_EVENT_COUNTERS|TASK_IO_ACCOUNTING|CONFIG_TASKSTATS|TASK_DELAY_ACCT)' /boot/config-$(uname -r)
iotop
komutunu çalıştırdığınızda, her işlem veya iş parçacığı tarafından gerçekleştirilen disk I/O aktivitelerini görebilirsiniz:
$ sudo iotop
Sadece gerçekten I/O aktivitesi gerçekleştiren işlemleri görmek isterseniz, -o
seçeneğini kullanabilirsiniz:
$ sudo iotop -o
İş parçacıklarını göstermemek için -P
seçeneğini kullanabilirsiniz:
$ sudo iotop -oP
4. Disk I/O İstatistiklerini Zamanla Toplama
Gerçek zamanlı disk aktivitelerini izlemeyi öğrendik ancak bazı durumlarda belirli bir zaman diliminde istatistik toplamak gerekebilir. sar
aracı bu amaçla kullanılabilir. sar
, sistemdeki çeşitli kaynakların kullanım istatistiklerini toplar ve raporlar.
$ sar -d 1 5
Bu komut her saniye bir rapor oluşturur ve toplamda beş rapor alır. sar
aracını kullanarak belirli bir zaman aralığı boyunca disk performansını gözlemleyebilirsiniz.
Sonuç
Bu yazıda Linux sistemlerinde disk I/O aktivitelerini izlemek için kullanabileceğiniz temel araçları inceledik. iostat
, iotop
, sar
ve vmstat
gibi araçlar yardımıyla disk performansınızı kontrol edebilir ve olası darboğazları tespit edebilirsiniz. Sistem yöneticileri için düzenli disk performansı izlemesi yapmak, sistemin genel performansını iyileştirmede önemli bir adımdır. Cpynet sunucunuzda bu araçları kullanarak disk I/O performansınızı gözlemleyebilir ve gerektiğinde iyileştirmeler yapabilirsiniz.