Linux’ta gerçek zamanlı disk G / Ç performansı sorunlarını gidermek veya izlemek için hangi araçların kullanıldığını biliyor musunuz?
Genel olarak, bir uygulama performansı yavaş olduğunda sistem performansını görüntülemek için top komutu kullanılacaktır,
Bu, Linux Yöneticisi tarafından gerçek dünyada yaygın olarak gerçekleştirilen ilk sorun giderme düzeyidir.
Kaynak kullanımıyla ilgili, özellikle CPU ve Bellekle ilgili herhangi bir performans sorunu bulamazsanız, darboğazları tanımlamak için diğer alanlar seçilecektir.
Depolama aygıtlarında ve bölümlerde (Sabit disk sürücüleri, SSD ve Disk bölümleri gibi) yüksek G/Ç Okuma ve Yazma işlemleri olup olmadığını anlamak için üst komut çıkışındaki wa alanını kontrol etmenizi öneririm.
Sistemdeki CPU ve Bellek kullanımından bağımsız olarak, depolama aygıtlarında ve bölümlerde yüksek disk Okuma Yazma G/Ç işlemi nedeniyle sunucu performansında düşüş meydana gelebilir.
Disk G/Ç işlemi yüksekse veya dalgalanıyorsa, sistemdeki disk G / Ç istatistiklerinin doğrulanması gereken performans gecikmesinin olası bir nedeni olabilir.
G / Ç istatistiklerini ayrıntılı olarak türetmek ve doğrulamak için ağırlıklı olarak ıotop ve ıostat komutları kullanılacaktır.
Bu komutlar, yerel diskler veya Ağ Dosya Sistemi dahil olmak üzere depolama aygıtlarıyla ilgili performans sorunlarını tanımlamak için yaygın olarak kullanılır.
1) Iotop nedir?
ıotop, gerçek zamanlı disk etkinliğini görüntülemek için top command utility’ye benzer.
ıotop, Linux çekirdeğinden G/Ç kullanım bilgilerini izler ve sistemdeki işlemler veya iş parçacıkları aracılığıyla mevcut G/Ç kullanımının bir tablosunu görüntüler.
Her işlemden/iş parçacığından okunan ve yazılan G / Ç bant genişliğini görüntüler. Ayrıca, G/Ç’yi değiştirirken veya beklerken iş parçacığının/işlemin harcadığı sürenin yüzdesini de görüntüler.
Toplam DİSK OKUMA ve Toplam DİSK YAZMA değerleri, bir taraftaki işlemler ve çekirdek iş parçacıkları ile diğer taraftaki çekirdek blok aygıt alt sistemi arasındaki toplam okuma ve yazma bant genişliğini temsil eder.
Gerçek DİSK OKUMA ve Gerçek DİSK YAZMA değerleri, çekirdek blok aygıt alt sistemi ile temeldeki donanımlar (HDD, SSD, vb.) Arasındaki gerçek disk G/Ç için karşılık gelen bant genişliklerini temsil eder.).
1.1) Linux’ta ıotop kurulumu
Paket tüm Linux dağıtım depolarında mevcut olduğu için bir paket yöneticisi yardımıyla kolayca kurabiliriz.
Fedora ve RHEL/CentOS 8 sistemi için ıotop’u kurmak için DNF Komutunu kullanın.
$ sudo dnf install iotop
Debian / Ubuntu sistemleri için, ıotop’u kurmak için APT-GET Komutunu veya APT Komutunu kullanın.
$ sudo apt install iotop
Arch Linux tabanlı sistemler için ıotop’u kurmak için Pacman Komutunu kullanın.
$ sudo pacman -S iotop
RHEL / CentOS 6/7 sistemleri için ıotop’u kurmak için YUM Komutunu kullanın.
$ sudo yum install iotop
openSUSE Leap sistemi için, ıotop’u kurmak için Zypper Komutunu kullanın.
$ sudo zypper install iotop
1.2) Iotop komutunu kullanarak Disk G / Ç etkinliğini izleme
Disk G/Ç ile ilgili çeşitli istatistikleri kontrol etmek için ıotop komutunda birçok seçenek mevcuttur.
Geçerli G/Ç kullanımıyla ilgili her işlemi veya iş parçacığını görmek için ıotop komutunu bağımsız değişken olmadan çalıştırın.
# iotop
Disk gç’sini gerçekte hangi işlemlerin kullandığını kontrol etmek için, görselleştirmek için-o veya –only seçeneğiyle ıotop komutunu çalıştırın.
# iotop --only
Detaylar:
IO:
Disk ve takas içeren her işlemin Giriş / Çıkış kullanımını gösterir.SWAPIN:
Her işlemin yalnızca takas kullanımını gösterir.
2) Iostat nedir?
ıostat, cihazlar ve bölümler için Merkezi işlem Birimi (CPU) istatistiklerini ve giriş/çıkış istatistiklerini bildirmek için kullanılır.
Iostat komutu, cihazların ortalama aktarım hızlarına göre aktif oldukları süreyi gözlemleyerek sistem giriş/çıkış cihazı yüklemesini izlemek için kullanılır.
Iostat komutu, fiziksel diskler arasındaki giriş/çıkış yükünü daha iyi dengelemek için sistem yapılandırmasını değiştirmek için kullanılabilecek raporlar oluşturur.
Iostat komutu her seferinde çalıştığında tüm istatistikler raporlanır. Çok işlemcili sistemlerde, CPU istatistikleri tüm işlemciler arasında sistem genelinde ortalama olarak hesaplanır.
Iostat komutu iki tür rapor oluşturur,
- CPU Kullanım raporu
- Cihaz Kullanım raporu.
2.1) Linux’ta iostat nasıl kurulur?
ıostat aracı, resmi Linux dağıtım deposundan kurulabilen sysstat paketinin bir parçasıdır.
Fedora ve Centos’ta / RHEL 8
$ sudo dnf install sysstat
Debian/Ubuntu’da
$ sudo apt install sysstat
Arch Linux’ta
$ sudo pacman -S sysstat
RHEL/CentOS 6/7’de
$ sudo yum install sysstat
openSUSE’de
$ sudo zypper install sysstat
2.2) Sysstat komutu ile Disk I/O performansının ölçülmesi
Disk G/Ç ve CPU ile ilgili çeşitli istatistikleri kontrol etmek için iostat komutunda birçok seçenek mevcuttur.
Sistemin tüm istatistiklerini görmek için iostat komutunu herhangi bir argüman olmadan çalıştırın.
# iostat Linux 4.19.32-1-MANJARO (daygeek-Y700) Thursday 18 April 2019 _x86_64_ (8 CPU) avg-cpu: %user %nice %system %iowait %steal %idle 29.45 0.02 16.47 0.12 0.00 53.94 Device tps kB_read/s kB_wrtn/s kB_dscd/s kB_read kB_wrtn kB_dscd nvme0n1 6.68 126.95 124.97 0.00 58420014 57507206 0 sda 0.18 6.77 80.24 0.00 3115036 36924764 0 loop0 0.00 0.00 0.00 0.00 2160 0 0 loop1 0.00 0.00 0.00 0.00 1093 0 0 loop2 0.00 0.00 0.00 0.00 1077 0 0
Tüm cihazların G/Ç istatistiklerini görmek için iostat komutunu -d seçeneğiyle çalıştırın.
# iostat -d Linux 4.19.32-1-MANJARO (daygeek-Y700) Thursday 18 April 2019 _x86_64_ (8 CPU) Device tps kB_read/s kB_wrtn/s kB_dscd/s kB_read kB_wrtn kB_dscd nvme0n1 6.68 126.95 124.97 0.00 58420030 57509090 0 sda 0.18 6.77 80.24 0.00 3115292 36924764 0 loop0 0.00 0.00 0.00 0.00 2160 0 0 loop1 0.00 0.00 0.00 0.00 1093 0 0 loop2 0.00 0.00 0.00 0.00 1077 0 0
Tüm aygıtların ve bölümlerinin G/Ç istatistiklerini görmek için iostat komutunu -p seçeneğiyle çalıştırın.
# iostat -p Linux 4.19.32-1-MANJARO (daygeek-Y700) Thursday 18 April 2019 _x86_64_ (8 CPU) avg-cpu: %user %nice %system %iowait %steal %idle 29.42 0.02 16.45 0.12 0.00 53.99 Device tps kB_read/s kB_wrtn/s kB_dscd/s kB_read kB_wrtn kB_dscd nvme0n1 6.68 126.94 124.96 0.00 58420062 57512278 0 nvme0n1p1 6.40 124.46 118.36 0.00 57279753 54474898 0 nvme0n1p2 0.27 2.47 6.60 0.00 1138069 3037380 0 sda 0.18 6.77 80.23 0.00 3116060 36924764 0 sda1 0.00 0.01 0.00 0.00 3224 0 0 sda2 0.18 6.76 80.23 0.00 3111508 36924764 0 loop0 0.00 0.00 0.00 0.00 2160 0 0 loop1 0.00 0.00 0.00 0.00 1093 0 0 loop2 0.00 0.00 0.00 0.00 1077 0 0
Tüm cihazların ayrıntılı G/Ç istatistiklerini görmek için iostat komutunu -x seçeneğiyle çalıştırın.
# iostat -x Linux 4.19.32-1-MANJARO (daygeek-Y700) Thursday 18 April 2019 _x86_64_ (8 CPU) avg-cpu: %user %nice %system %iowait %steal %idle 29.41 0.02 16.45 0.12 0.00 54.00 Device r/s rkB/s rrqm/s %rrqm r_await rareq-sz w/s wkB/s wrqm/s %wrqm w_await wareq-sz d/s dkB/s drqm/s %drqm d_await dareq-sz aqu-sz %util nvme0n1 2.45 126.93 0.60 19.74 0.40 51.74 4.23 124.96 5.12 54.76 3.16 29.54 0.00 0.00 0.00 0.00 0.00 0.00 0.31 30.28 sda 0.06 6.77 0.00 0.00 8.34 119.20 0.12 80.23 19.94 99.40 31.84 670.73 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.13 loop0 0.00 0.00 0.00 0.00 0.08 19.64 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 loop1 0.00 0.00 0.00 0.00 0.40 12.86 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 loop2 0.00 0.00 0.00 0.00 0.38 19.58 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Belirli bir aygıtın ve bölümlerinin G/Ç istatistiklerini görmek için iostat komutunu -d [Aygıt_Adı] seçeneğiyle çalıştırın.
# iostat -p [Device_Name] # iostat -p sda Linux 4.19.32-1-MANJARO (daygeek-Y700) Thursday 18 April 2019 _x86_64_ (8 CPU) avg-cpu: %user %nice %system %iowait %steal %idle 29.38 0.02 16.43 0.12 0.00 54.05 Device tps kB_read/s kB_wrtn/s kB_dscd/s kB_read kB_wrtn kB_dscd sda 0.18 6.77 80.21 0.00 3117468 36924764 0 sda2 0.18 6.76 80.21 0.00 3112916 36924764 0 sda1 0.00 0.01 0.00 0.00 3224 0 0
Tüm aygıtların G/Ç istatistiklerini KB yerine MB cinsinden görmek için iostat komutunu -m seçeneğiyle çalıştırın.
Varsayılan olarak çıktıyı KB cinsinden gösterir.
# iostat -m Linux 4.19.32-1-MANJARO (daygeek-Y700) Thursday 18 April 2019 _x86_64_ (8 CPU) avg-cpu: %user %nice %system %iowait %steal %idle 29.36 0.02 16.41 0.12 0.00 54.09 Device tps MB_read/s MB_wrtn/s MB_dscd/s MB_read MB_wrtn MB_dscd nvme0n1 6.68 0.12 0.12 0.00 57050 56176 0 sda 0.18 0.01 0.08 0.00 3045 36059 0 loop0 0.00 0.00 0.00 0.00 2 0 0 loop1 0.00 0.00 0.00 0.00 1 0 0 loop2 0.00 0.00 0.00 0.00 1 0 0
Aşağıdaki formatı kullanarak iostat komutunu belirli aralıklarla çalıştırın. Bu örnekte beş saniye aralıklarla toplam iki rapor alınacaktır.
# iostat [Interval] [Number Of Reports] # iostat 5 2 Linux 4.19.32-1-MANJARO (daygeek-Y700) Thursday 18 April 2019 _x86_64_ (8 CPU) avg-cpu: %user %nice %system %iowait %steal %idle 29.35 0.02 16.41 0.12 0.00 54.10 Device tps kB_read/s kB_wrtn/s kB_dscd/s kB_read kB_wrtn kB_dscd nvme0n1 6.68 126.89 124.95 0.00 58420116 57525344 0 sda 0.18 6.77 80.20 0.00 3118492 36924764 0 loop0 0.00 0.00 0.00 0.00 2160 0 0 loop1 0.00 0.00 0.00 0.00 1093 0 0 loop2 0.00 0.00 0.00 0.00 1077 0 0 avg-cpu: %user %nice %system %iowait %steal %idle 3.71 0.00 2.51 0.05 0.00 93.73 Device tps kB_read/s kB_wrtn/s kB_dscd/s kB_read kB_wrtn kB_dscd nvme0n1 19.00 0.20 311.40 0.00 1 1557 0 sda 0.20 25.60 0.00 0.00 128 0 0 loop0 0.00 0.00 0.00 0.00 0 0 0 loop1 0.00 0.00 0.00 0.00 0 0 0 loop2 0.00 0.00 0.00 0.00 0 0 0
LVM disk G/Ç istatistik raporunu görmek için iostat komutunu -N seçeneğiyle çalıştırın.
# iostat -N Linux 4.15.0-47-generic (Ubuntu18.2daygeek.com) Thursday 18 April 2019 _x86_64_ (2 CPU) avg-cpu: %user %nice %system %iowait %steal %idle 0.38 0.07 0.18 0.26 0.00 99.12 Device tps kB_read/s kB_wrtn/s kB_read kB_wrtn sda 3.60 57.07 69.06 968729 1172340 sdb 0.02 0.33 0.00 5680 0 sdc 0.01 0.12 0.00 2108 0 2g-2gvol1 0.00 0.07 0.00 1204 0
Ağ Dosya Sisteminin (NFS) G/Ç istatistiklerini görmek için nfsiostat komutunu çalıştırın.
# nfsiostat
Yazının orijinalini buradan okuyabilirsiniz.
Kariyerime 26 yıl önce başladım. Windows ve Linux sistemlerinin kurulumu, yapılandırılması, yönetimi ve bakımı dahil olmak üzere birden fazla sistem üzerinde uzmanlaştım.
Açık kaynak dünyasındaki en son gelişmelerden haberdar olmaktan ve Linux hakkındaki en son araçları, özellikleri ve hizmetleri denemekten hoşlanıyorum.
Son 6 yıldır sistem ve ağ yöneticisi olarak görev yapıyorum ayrıca Pardus Dönüşüm Projesini yönetiyorum ve Pardus İşletim Sisteminin yaygınlaşması adına uğraş gösteriyorum.
Boş zamanlarımda açık kaynaklı uygulamaların Türkçe çevirisine katılıyorum ve The Document Foundation üyesiyim.