Red-Hat tabanlı bir linux çıktısının Debian tabanlı bir linux tarafından farklı yorumlanıp yorumlanamayacağını bilmek istiyorum.
Soruyu daha da spesifik hale getirmek için, neyin top
peşindeyim, bir Red-Hat sistemindeki komutun ilk satırındaki "yük ortalamasının" nasıl yorumlandığını ve bunun resmi dokümantasyon ro koduyla nasıl doğrulanacağını anlamaktır .
[Bu soruya, tümü soruya kabul edilebilir cevaplar olan pek çok yol vardır]
Potansiyel bir yaklaşım, bu bilgilerin resmi olarak nerede belgelendiğini bulmak olacaktır.
Bir diğeri, top
üzerinde çalıştığım belirli dağıtım ve sürümde oluşturulan kod sürümünü bulmak olacaktır .
Aldığım komut çıktısı:
top - 13:08:34 up 1:19, 2 users, load average: 0.02, 0.00, 0.00
Tasks: 183 total, 1 running, 182 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.2%us, 0.2%sy, 0.0%ni, 96.8%id, 2.7%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 3922520k total, 788956k used, 3133564k free, 120720k buffers
Swap: 2097148k total, 0k used, 2097148k free, 344216k cached
Bu durumda yük ortalama değerini nasıl yorumlayabilirim ?
Ortalama yükün yaklaşık bir dakika olduğunu, bir dokümantasyon kaynağından olduğunu ve 100 ile çarpıldıktan sonra başka bir dokümantasyon kaynağı tarafından yorumlanması gerektiğini tespit ettim.
Yani soru şu:
% 0.02 veya% 2 yüklü mü?
Dokümantasyon kaynakları ve versiyonları:
1) İlk yıldız
TOP(1) Linux User’s Manual TOP(1)
NAME
top - display Linux tasks
Kaynak: man top
RedHat dağıtımımda
Ubuntu'nun yük görevini şu şekilde açıklamayan "görevler" içeren bir sürümü var:
http://manpages.ubuntu.com/manpages/precise/man1/top.1.html
2) İkincisi ile başlar
TOP(1) User Commands TOP(1)
NAME top
top - display Linux processes
Kaynak:
http://man7.org/linux/man-pages/man1/top.1.htm
3) Bu şunlarla başlar:
TOP(1)
NAME
top - display and update information about the top cpu processes
Kaynak: http://www.unixtop.org/man.shtml ilk bir, görebileceği içinde veya ve çıkış biçimi için herhangi bir açıklama yoktur (ne de hakkında yük ortalamasının ben ilgileniyorum hangi) . İkinci bir yük ortalama son 1 dakika ile ilgisi var olduğuna işaret ederek, kısa bir açıklama içerir, ancak değeri yorumlanması hakkında hiçbir şey!
man top
RHEL
online ubuntu documentation
Doğrudan ikinci kaynaktan alıntı yapıyorum:
2a. UPTIME ve LOAD Ortalamaları
Bu bölüm aşağıdakileri içeren tek bir satırdan oluşur:
ekran modu
geçerli süresine ve son önyüklemeden bu yana geçen
toplam kullanıcı sayısı
son 1, 5 ve 15 dakika boyunca sistem yükü ortalama sayısına bağlı olarak program veya pencere adı
Dolayısıyla, bu açıklama gerçekten doğruysa, yük ortalamasının son 1 dakika civarında olduğunu anlamak yeterlidir.
Ancak sayının biçimini açıklamaz.
In üçüncü açıklama, o diyor ki:
Yük ortalamaları için sayılar belirlenirken, 100 ile çarpılmalıdır.
Bu açıklama, 0.02'nin% 0.02 değil% 2 anlamına geldiğini göstermektedir. Ama bu doğru mu? Ayrıca, linux'un tüm dağıtımları ve potansiyel olarak farklı uygulamaları için doğru top
mu?
Bu sorunun cevabını bulmak için, kodu çevrimiçi arayarak geçmeye çalıştım. Ama en azından top
RHEL ile ilgili iki farklı versiyon buldum ! builtin-top.c
ve refactored top.c
. Her ikisi de Red-Hat tarafından bildirimin kodun başında söylediği gibi telif hakkıyla korunmaktadır ve dolayısıyla RHEL'in bunlardan birini kullanması mantıklı görünmektedir.
http://lxr.free-electrons.com/source/tools/perf/builtin-top.c
http://lxr.free-electrons.com/source/tools/perf/util/top.c
Yani, bu kadar kod girmeden önce, cpu yükünün nasıl yorumlandığına dair doğru bir anlayış oluşturmak için nereye odaklanılması gerektiği hakkında bir fikir istedim?
Aşağıdaki cevaplarda verilen bilgilerden bazı kişisel aramalara ek olarak şunları buldum:
1 - Kullandığım top
procps-3.2.8 paketinde yer alıyor. Hangi kullanılarak doğrulanabilir top -v
.
2 - procps-3.2.8
Resmi web sitesinden indirdiğim versiyonda , aracın uptime
bilgilerini doğrudan procfs
dosyadan alıyor /proc/loadavg
(linux işlevini kullanmadan getloadavg()
).
3 - Şimdi top
komut için işlevi de kullanmıyor getloadavg()
. top
Gerçekten de aynı şeyleri yaptığını doğrulamayı başardım .uptime
yük ortalamalarını göstermek için bir araç. Aslında uptime
aracın bilgilerini procfs
dosyadan alan işlevini çağırır /proc/loadavg
.
Yani, her şey /proc/loadavg
dosyayı gösteriyor! Böylece, load average
tarafından üretilen hakkında doğru bir anlayış oluşturmak için top
, dosyanın nasıl loadavg
yazıldığını görmek için çekirdek kodunu okumak gerekir .
Bir layman'ın üç değerinin terimlerinin açıklamasını sağlayan cevaplardan birinde işaret edilen mükemmel bir makale de var loadavg
.
Bu nedenle, tüm cevapların eşit derecede yararlı ve yararlı olmasına rağmen, http://www.linuxjournal.com//article/9001 makalesine işaret eden cevabı sorumun "cevabı" olarak işaretleyeceğim
. Katkınız için hepinize teşekkürler!
Ayrıca üst ve yük ortalamasını anlama sorusundan loadavg
, hesaplanan noktayı gösteren çekirdeğin kaynak koduna bir bağlantı buldum . Görüldüğü gibi, nasıl çalıştığını açıklayan büyük bir yorum var, ayrıca kodun bu kısmı da var C
!
Kodun bağlantısı http://lxr.free-electrons.com/source/kernel/sched/loadavg.c
Yine herhangi bir intihalle uğraşmaya çalışmıyorum, bunu sadece bütünlük için ekliyorum. Yani, çekirdek koduna bağlantı üst ve yük ortalamasını anlama bölümündeki cevaplardan birinden bulundu tekrar ediyorum ...
top -v
)