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


195

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

Üst ekran görüntüsü

Satırlardan biri, bunun gibi temsil edilen CPU kullanım bilgilerine sahiptir:

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 tanımlarını bildiğim halde (çok aşağıda), bu görevlerin tam olarak ne anlama geldiğini anlamıyorum.

  • hi - Servis donanımı kesintileri ne anlama geliyor?
  • si - Servis yazılımı kesintileri ne anlama geliyor?
  • st - "Hiper yönetici, sanal bir makineden çalınan başka bir işlemciye (veya)% CPU zamanı servis ederken, sanal CPU'nun istem dışı beklemesinde CPU zamanı" diyorlar.

Fakat bu aslında ne anlama geliyor? Birisi daha net olabilir mi?

Ben tüm listelenmiş us, sy, niaynı ararken diğerlerine yardım çünkü, vb. Bu bilgi man sayfalarında yoktur.

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

Yanıtlar:


92

hiDonanımın kesilmesi için harcanan zamandır. Donanım kesintileri, donanım aygıtlarına (ağ kartları, klavye denetleyicisi, harici zamanlayıcı, donanım sensörleri, ...) CPU'ya bir şeyleri işaretlemeleri gerektiğinde (örneğin, veri geldiğinde) üretilir.

Bunlar çok sık olabileceğinden ve çalıştıkları sırada mevcut CPU'yu temelde engellediklerinden, çekirdek donanım kesme işleyicileri olabildiğince hızlı ve basit olacak şekilde yazılmıştır.

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

Mevcut işlemciyi bloke eden sabit IRQ'lar ve softirqsherhangi bir yerde çalışabilmekle ilgili kısım tam olarak doğru değildir, sınırlamalar olabilir ve bazı sabit IRQ'lar diğerlerini engelleyebilir.

Örnek olarak, bir ağ kartından kesilen bir "veri alındı" donanımı, bir yerde "kart ethX'in servis edilmesi gerektiği" bilgisini saklayabilir ve a softirq. softirqGerçek paket yönlendirme tetikleyen bir şey olacaktır.

sibunlarda harcanan zamanı temsil eder softirqs.

softirqMekanizma hakkında iyi bir okuma (biraz da tarih yazıyor ) Matthew Wilcox'un Daha Sonra Yapacağım: Softirq'ler, Tasklet'ler, Alt Yarımlar, Görev Sıraları, Çalışma Kuyrukları ve Zamanlayıcılar (PDF, 64k).

st"çalma zamanı", yalnızca sanallaştırılmış ortamlarda geçerlidir. Gerçek CPU'nun mevcut sanal makineye uygun olmadığı zamanları temsil ediyor - hiper yönetici tarafından o VM'den "çalındı" (başka bir VM çalıştırmak veya kendi ihtiyaçları için).

CPU süresi muhasebe IBM'den belge sanallaştırılmış ortamlarda daha fazla zaman çalmak hakkında bilgi ve CPU muhasebe vardır. (ZSeries tipi bir donanıma yöneliktir, ancak genel fikir çoğu platform için aynıdır.)


çok açık. Yani, eğer yeni bir ses sistemi, kulaklık vb. (Bu konuda herhangi bir donanım) bağlarsam, aynı zamanda bir donanım kesintisine neden olur, değil mi?
its_me

2
Evet, bu ses yonga setinizin "bir şey olduğunu" işaret etmesinin bir yolu olabilir. Ancak kulaklık takmak tamamen ses çipinin kendisi tarafından ele alınabilir (örneğin ses çıkışını ana cihazdan kulaklıklarınıza yeniden yönlendirir), bu nedenle ana CPU'yu kesmeyebilir. Klavyenizdeki bir tuşa basıldığında olsa kesinti meydana gelecektir (bir USB klavyeniz varsa, USB hub cihazınızdan). Ayrıca bakınız cat /proc/interrupts( man procbu dosya hakkında dokümanın adamı ).
Mat

15
  • Ulaşın - Kullanıcı alanında harcanan zaman
  • sy - Çekirdek uzayda harcanan zaman
  • ni - Kibar kullanıcı süreçlerini çalıştırmak için harcanan zaman (Kullanıcı tanımlı öncelik)
  • id - Boşta işlemlerde harcanan zaman
  • wa - IO çevre birimlerinde beklemeye harcanan süre (örn. disk)
  • hi - Donanım kesme yordamlarını ele geçirmek için harcanan zaman (Ne zaman bir çevre birim CPU'dan dikkat çekmek isterse, CPU'ya servis yapması için tam anlamıyla bir çizgi çeker)
  • si - Yazılımın kullanımı için harcanan zaman kesme rutinleri (bir kod parçası, kesme yordamını çağırır ...)
  • st - Hiper yönetici başka bir işlemciye hizmet verirken (sanal makineden çalınan) istemsiz beklemelere sanal işlemci tarafından harcanan süre

2

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

In AWS belgelerine size VCPU başına sadece% 10 taban çizgisi performansı elde etmenizi okuyabilir. Bunun anlamı, çok fazla cpu zamanı tüketecek bir işleminiz varsa, "st" değerinin 90 civarında kalacağıdır, çünkü VCPU’nun yalnızca% 10’unu kullanmanıza izin verilir. Diğer değerlerin toplamı 10 civarında kalacaktır.

Bu yüzden AWS, sadece belirli bir miktarda hesaplama gücüne erişmenize izin vermek için hipervizörü kullanıyor. Yalnızca düşük seviyeli bir örnek örneği kullandığınız için niyetinizi yavaşlatır.

Umarım bu durumun anlaşılmasını biraz daha kolaylaştırır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.