Bash scriptleri kullanarak sistem performansını anlamak ve özellikle CPU ve IO Wait durumları arasındaki korelasyonu incelemek, sistem yöneticileri ve performans analistleri için önemli bir konudur. Bu tarz analizler, darboğazları tespit etmek, sistemin genel sağlığını değerlendirmek ve uygun optimizasyonları yapmak açısından kritik öneme sahiptir.
İlk olarak, sistemdeki CPU ve IO Wait oranlarını düzenli olarak toplamak gerekir. Linux sistemlerde bu veriler genellikle
top,
iostat veya
/proc/stat dosyasından alınabilir. Bash ile otomatik veri toplamı yaparken,
iostat komutu oldukça faydalıdır. Örneğin, her 1 saniyede bir CPU kullanımını ve IO Wait yüzdesini toplamak için şu komut kullanılabilir:
Burada,
-c CPU istatistikleri,
1 saniyelik aralık ve
10 toplam örnek sayısıdır. Çıktıyı parse edip, her örnekteki %idle, %iowait gibi değerleri ayıklayabiliriz. Bu verileri zaman dizisi halinde sakladıktan sonra, correlation hesaplaması yapabiliriz. Bash doğal olarak doğrudan istatistiksel korelasyon fonksiyonları sunmaz, ancak
awk veya
bc gibi araçlar kullanılarak temel korelasyon hesaplamaları yapılabilir.
Örnek olarak, iki değişken arasındaki Pearson korelasyon katsayısı şu formüle göre hesaplanır:
[r]r = Σ((X - μX) * (Y - μY)) / (√Σ(X - μX)^2 * √Σ(Y - μY)^2)[/r]
Bash ve
awk kullanarak bu işlemi gerçekleştirmek mümkündür. Bu sayede, CPU %iowait ile toplam CPU kullanımı veya diğer sistem metrikleri arasındaki ilişkiyi görebilirsiniz. Analiz sonucu yüksek pozitif korelasyon, IO yoğunluklarının CPU bekleme sürelerine doğrudan etkisini gösterebilir.
Ek olarak, bu verileri görselleştirmek için çıktılarını CSV formatında kaydedebilir ve daha gelişmiş analizleri Python veya R gibi araçlarda yapabilirsiniz. Ancak, Bash ile temel toplamalar, parse işlemleri ve korelasyon hesaplamaları yaparak, sistem performansını hızlıca değerlendirmek mümkündür.
Sizde bu tür analizleri nasıl yapıyorsunuz? Hangi araçlar ve metodlar sizin iş akışınıza uyuyor?