it-swarm-tr.com

Linux "top" komutu: Biz, sy, ni, id, wa, hi, si ve st (CPU kullanımı için) nedir?

Linux'ta top yayınladığımda buna benzer bir sonuç alıyorum:

Screenshot of top

Satırlardan birinde şu şekilde temsil edilen CPU kullanım bilgileri vardır:

Cpu(s): 87.3%us,  1.2%sy,  0.0%ni, 27.6%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st

Her birinin (çok aşağıda) tanımlarını bilsem de, bu görevlerin tam olarak ne anlama geldiğini anlamıyorum.

  • hi - donanım kesintilerinin bakımı ne anlama geliyor?
  • si - servis yazılımı kesintileri ne anlama geliyor?
  • st - "hipervizör sanal bir makineden çalınan başka bir işlemciye (veya)% CPU süresine hizmet ederken sanal CPU'nun istem dışı beklemede CPU zamanı" olduğunu söylüyorlar.

Ama aslında ne anlama geliyor? Birisi daha açık olabilir mi?

Tüm us, sy, ni vb. Bu bilgi kılavuz sayfalarında değil.

us: user cpu time (or) % CPU time spent in user space
sy: system cpu time (or) % CPU time spent in kernel space
ni: user Nice cpu time (or) % CPU time spent on low priority processes
id: idle cpu time (or) % CPU time spent idle
wa: io wait cpu time (or) % CPU time spent in wait (on disk)
hi: hardware irq (or) % CPU time spent servicing/handling hardware interrupts
si: software irq (or) % CPU time spent servicing/handling software interrupts
st: steal time - - % CPU time in involuntary wait by virtual cpu while hypervisor is servicing another processor (or) % CPU time stolen from a virtual machine
206
its_me

hi donanım kesintilerini işlemek için harcanan zamandır. Donanım kesintileri, CPU'ya bir şey sinyali vermeleri gerektiğinde donanım aygıtları (ağ kartları, klavye denetleyicisi, harici zamanlayıcı, donanım sensörleri, ...) tarafından oluşturulur (örneğin, veri geldi).

Bunlar çok sık olabileceğinden ve esas olarak çalışırken mevcut CPU'yu engellediğinden, çekirdek donanım kesme işleyicileri mümkün olduğunca hızlı ve basit olarak yazılır.

Uzun veya karmaşık işlemlerin yapılması gerekiyorsa, bu görevler softirqs mekanizma çağrısı kullanılarak ertelenir. Bunlar bağımsız olarak programlanır, herhangi bir CPU üzerinde çalışabilir, hatta aynı anda çalışabilir (bunların hiçbiri donanım kesme işleyicileri için geçerli değildir).

Geçerli CPU'yu engelleyen sabit IRQ'larla ilgili bölüm ve softirqs ile herhangi bir yerde çalışabilme bölümü tam olarak doğru değil, sınırlamalar olabilir ve bazı sabit IRQ'lar diğerlerini kesintiye uğratabilir.

Örnek olarak, bir ağ kartından "veri alındı" donanım kesintisi "kart ethX'in servis edilmesi gereken" bilgileri bir yerde saklayabilir ve bir softirq planlayabilir. softirq gerçek paket yönlendirmesini tetikleyen şey olacaktır.

si bu softirqs içinde harcanan zamanı temsil eder.

softirq mekanizması hakkında iyi bir okuma (biraz tarihle de) Matthew Wilcox'un Daha Sonra Yapacağım: Softirqs, Görevler, Alt Yarılar, Görev Kuyrukları, Çalışma Kuyrukları ve Zamanlayıcıları = (PDF, 64k).

st, "çalma süresi", yalnızca sanallaştırılmış ortamlarda geçerlidir. Gerçek CPU'nun mevcut sanal makine tarafından kullanılamadığı zamanı temsil eder - bu VM hipervizör tarafından (başka bir VM çalıştırmak veya kendi ihtiyaçları için) tarafından "çalındı".

IBM'in CPU zaman hesaplaması belgesinin çalma süresi ve sanallaştırılmış ortamlarda CPU hesaplaması hakkında daha fazla bilgi vardır. (ZSeries tipi donanımı hedefler, ancak genel fikir çoğu platform için aynıdır.)

96
Mat
  • - Kullanıcı alanına harcanan zaman
  • sy - Çekirdek alanında harcanan zaman
  • ni - Güzel kullanıcı süreçlerini çalıştırmak için harcanan zaman (Kullanıcı tanımlı öncelik)
  • id - Boşta kalma işlemlerinde harcanan zaman
  • wa - IO çevre birimleri (ör. disk)
  • hi - Donanım kesme rutinlerini işlemek için harcanan zaman. (Bir çevre birimi CPU'dan dikkat istediğinde, CPU'ya servis vermesini bildirmek için kelimenin tam anlamıyla bir çizgi çeker)
  • si - Yazılım kesme rutinlerini işlemek için harcanan zaman. (bir parça kod, bir kesme rutini çağırır ...)
  • st - Hipervizör başka bir işlemciye (sanal makineden çalındığında) sanal işlemci tarafından istemsiz beklemeye harcanan zaman
20
Simon Rigét

"St" değeri AWS'den bir T2.micro EC2 örneği kullanılarak açıklanabilir.

AWS belgeleri içinde VCPU başına yalnızca% 10 temel performans elde ettiğinizi okuyabilirsiniz. Bu, çok fazla işlemci zamanı tüketecek bir işleminiz varsa, "st" değerinin 90 civarında kalacağından VCPU'nun yalnızca% 10'unu kullanmanıza izin verilir. Diğer değerlerin toplamı 10 civarında kalacaktır.

Bu nedenle AWS, hipervizörü sadece belirli bir hesaplama gücüne erişmenize izin vermek için kullanıyor. Yalnızca düşük düzeyli bir örnek kullandığınız için sizi kasıtlı olarak yavaşlatır.

Umarım bu işleri daha kolay anlar.

2
draufunddran