Neden "çalışma süresi" CPU yükü> 1 gösteriyor?


14

Bir var 1 çekirdekli işlemci benim PC'de yüklü. Bazen uptimeyük> 1'i gösterir. Bu nasıl mümkün ve bu ne anlama geliyor?

EDIT: Değerler 2.4


Not: loadfarklıdır load average. @Michas'ın dediği gibi, yük, yürütülmeyi bekleyen işlemlerin sayısı için bir göstergedir, ancak yük ortalaması , 1, 5 ve 15 dakikalık bir süre boyunca hesaplanan ortalama sistem yüküdür.
Mohammad Kholghi

Yanıtlar:


20

Yük, CPU kullanımına eşit değil. Temel olarak kaç işlemin yürütülmesini beklediğinin bir göstergesidir .

Bazı yararlı bağlantılar:


Oh, tamam, bu mantıklı. CPU kullanımını almanın bir yolu var mı?
Richard Rodriguez

Genelde birçok CPU'nuz olabilir. Biri tamamen meşgul olabilir ve diğeri sadece rölantide olabilir. Güzel bir htop"grafik" genel bakış için bir göz atın .
michas

2
bu yanlış. Yük ortalaması, kaç işlemin gerçekleştirilmeye hazır olduğuna ilişkin bir metriktir . Bu, bekleyen işlemleri değil, aynı zamanda yürütülmekte olan işlemleri de içerir . Bu nedenle, yük ortalaması 1 ise, ortalama olarak (belirli bir süre için) bir CPU'nun kullanıldığı anlamına gelir; iki ise, ortalama olarak iki CPU kullanımda olduğu anlamına gelir. Bu nedenle, tek CPU sistemi için belirli bir yük ortalaması, çok çekirdekli bir sistem için aynı yük ortalaması ile aynı şey değildir.
Wouter Verhelst


7

uptimeaşağıdaki gibi tarif edilen sistem yükünü (tam olarak CPU kullanımını değil) gösterir man uptime:

Sistem yük ortalamaları, çalıştırılabilir veya kesintisiz durumda olan ortalama işlem sayısıdır. Çalıştırılabilir durumdaki bir işlem, CPU'yu kullanmak veya CPU'yu kullanmak için beklemektedir. Kesintisiz durumdaki bir işlem bazı I / O erişimini bekliyor, örneğin disk bekleniyor. Ortalamalar üç zaman aralığında alınır. Yük ortalamaları bir sistemdeki CPU sayısı için normalleştirilmez, bu nedenle 1 ortalama yükü, tek bir CPU sisteminin her zaman yüklendiği anlamına gelirken, 4 CPU sisteminde zamanın% 75'i boşta olduğu anlamına gelir.

Yük, sahip olduğunuz CPU çekirdeği sayısından az olduğu sürece, iyi olmalıdır. Eğer yukarı çıkarsa, sisteminizin "gerçek zamanlı" iş yükü ile başa çıkamayacağı anlamına gelir. Bu nedenle, bazı işlemlerin CPU zamanı (veya IO erişimi) almak için beklemesi gerekir . Bir bekleme hattı oluşturulur.

2,7 yükünüz varsa, ortalama olarak (son 1, 5 veya 15 dakika boyunca, baktığınız değere bağlı olarak), 2,7 işlem paralel olarak yürütülmeye çalışır, ancak sadece 1 çekirdeğiniz vardır, bu nedenle sisteminiz aşırı yüklü. Ondan çok fazla şey istiyorsun.

Yine de panik yapmayın, böyle bir sorun olmayabilir: iş bittiğinde, işler genellikle normale döner.


4

Çalışma süresi, /proc/loadavgyüklerin çıktısını gösterir .

Arasında manpage man 5 procdiyor

   /proc/loadavg
          The first three fields in this file are load average figures giving
          the  number  of jobs in the run queue (state R) or waiting for disk
          I/O (state D) averaged over 1, 5, and 15  minutes. 

Böylece,% 0 CPU kullanımınız olsa bile yüksek yüklere sahip olabilirsiniz. Bir Çekirdek, çoklu işlemci sistemlerinde% 100 veya 1'e kadar yük kazanabilir.

Ayrıca bkz. G / Ç sırasında yüksek CPU yükü


-2
 ps aux --sort -rss |head -15

Bu, rss bellek tarafından en çok kullanılan 15 işlemi sıralar

Ayrıca bu en çok kullanılan işlemleri cpu ve belleğe göre sıralar

 ps aux --sort -pid |head -15

1'den fazla 1 CPU yükünüz varsa uyarı veriyor, işlem listesini inceleyin ve hangisinin en fazla CPU ve RAM kullandığını görün

En çok kullanılan işlemleri gördüğünüzde hangi dosyaların açık olduğunu görmeye çalışın

lsof -p [PID_most_used]

Ayrıca üst komuttan çıkış verirseniz iyi olur


1
rss yük ortalaması ile ilgili değil, neden bahsediyorsun?
Wouter Verhelst
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.