Uygulama

Linux’ta Disk G / Ç performansı nasıl izlenir

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.