Saya ingin tahu apakah output dari linux berbasis Red-Hat dapat diinterpretasikan berbeda oleh linux berbasis Debian.
Untuk membuat pertanyaan lebih spesifik, apa yang saya cari, adalah memahami bagaimana "rata-rata muat" dari baris pertama top
perintah pada sistem Red-Hat ditafsirkan dan bagaimana memverifikasi ini dengan kode ro dokumentasi dokumentasi resmi.
[Ada banyak cara untuk mendekati subjek ini, yang semuanya merupakan jawaban yang dapat diterima untuk pertanyaan]
Salah satu pendekatan potensial, adalah menemukan di mana informasi ini didokumentasikan secara resmi.
Yang lain, akan menemukan versi kode yang top
dibangun dari dalam distribusi spesifik dan versi yang saya kerjakan.
Output perintah yang saya dapatkan adalah:
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
Dalam hal ini, bagaimana saya bisa mengartikan nilai rata-rata beban ?
Saya telah berhasil menemukan bahwa beban rata-rata adalah sekitar menit terakhir, dari satu sumber dokumentasi dan harus ditafsirkan setelah dikalikan dengan 100, oleh sumber dokumentasi lain.
Jadi, pertanyaannya adalah:
Apakah 0,02% atau 2% dimuat?
Sumber dan versi dokumentasi:
1) Bintang pertama dengan
TOP(1) Linux User’s Manual TOP(1)
NAME
top - display Linux tasks
Sumber: man top
dalam distribusi RedHat saya
Ubuntu juga memiliki versi dengan "tugas" yang tidak menjelaskan rata-rata beban di:
http://manpages.ubuntu.com/manpages/precise/man1/top.1.html
2) Yang kedua dimulai dengan
TOP(1) User Commands TOP(1)
NAME top
top - display Linux processes
Sumber:
http://man7.org/linux/man-pages/man1/top.1.htm
3) Yang ini dimulai dengan:
TOP(1)
NAME
top - display and update information about the top cpu processes
Sumber: http://www.unixtop.org/man.shtml
Yang pertama , dapat dilihat man top
di dalam RHEL
atau di online ubuntu documentation
dan tidak memiliki penjelasan untuk format output (atau tentang rata-rata beban di mana saya tertarik) .
Yang kedua , berisi penjelasan singkat, menunjukkan bahwa rata-rata beban ada hubungannya dengan 1 menit terakhir, tetapi tidak ada tentang interpretasi nilainya!
Saya mengutip langsung dari sumber kedua:
2a. Rata-rata UPTIME dan LOAD
Bagian ini terdiri dari satu baris yang berisi:
nama program atau jendela, tergantung pada mode tampilan
waktu saat ini dan lamanya waktu sejak
jumlah total boot terakhir dari pengguna
yang memuat sistem rata-rata selama 1, 5 dan 15 menit terakhir
Jadi, jika penjelasan ini memang benar, itu hanya cukup untuk memahami bahwa rata-rata beban sekitar 1 menit terakhir.
Tapi itu tidak menjelaskan format angka.
Dalam penjelasan ketiga , dikatakan bahwa:
Saat menentukan angka untuk rata-rata muat, angka itu harus dikalikan dengan 100.
Penjelasan ini menunjukkan bahwa 0,02 berarti 2% dan bukan 0,02%. Tetapi apakah ini benar? Selain itu, apakah benar untuk semua distribusi linux dan implementasi yang berpotensi berbeda top
?
Untuk menemukan jawaban atas pertanyaan ini, saya mencoba membaca kode dengan mencarinya secara online. Tapi saya menemukan, setidaknya, dua versi berbeda top
terkait dengan RHEL di luar sana! yang builtin-top.c
dan refactored top.c
. Keduanya dilindungi hak cipta oleh Red-Hat sebagaimana pemberitahuan mengatakan di awal kode dan dengan demikian tampaknya logis bahwa RHEL menggunakan salah satunya.
http://lxr.free-electrons.com/source/tools/perf/builtin-top.c
http://lxr.free-electrons.com/source/tools/perf/util/top.c
Jadi, sebelum mempelajari kode sebanyak itu, saya ingin pendapat tentang di mana fokus untuk membentuk pemahaman yang akurat tentang bagaimana cpu load diinterpretasikan?
Dari informasi yang diberikan dalam jawaban di bawah ini, di samping beberapa pencarian pribadi, saya telah menemukan bahwa:
1 - Yang top
saya gunakan terkandung dalam paket procps-3.2.8. Yang dapat diverifikasi dengan menggunakan top -v
.
2 - Dalam versi procps-3.2.8
yang saya unduh dari situs web resmi, tampaknya alat tersebut uptime
mendapatkan informasi dari procfs
file /proc/loadavg
secara langsung (tidak menggunakan fungsi linux getloadavg()
).
3 - Sekarang untuk top
perintah itu juga tidak menggunakan fungsi getloadavg()
. Saya berhasil memverifikasi bahwa top
memang melakukan hal yang sama denganuptime
alat untuk menampilkan rata-rata beban. Ini sebenarnya memanggil fungsi uptime
alat, yang mendapat informasinya dari procfs
file /proc/loadavg
.
Jadi, semuanya menunjuk ke /proc/loadavg
file! Jadi, untuk membentuk pemahaman yang akurat tentang yang load average
dihasilkan oleh top
, seseorang harus membaca kode kernel untuk melihat bagaimana file loadavg
tersebut ditulis.
Ada juga artikel bagus yang ditunjukkan dalam salah satu jawaban yang memberikan penjelasan istilah tiga orang awam tentang tiga nilai loadavg
.
Jadi, terlepas dari kenyataan bahwa semua jawaban sama bermanfaat dan membantu, saya akan menandai jawaban yang menunjuk ke artikel
http://www.linuxjournal.com//article/9001 sebagai "the" jawaban untuk pertanyaan saya. Terima kasih atas kontribusi Anda!
Selain itu dari pertanyaan Memahami rata-rata atas dan memuat , saya telah menemukan tautan ke kode sumber kernel yang menunjuk ke tempat di mana loadavg
dihitung. Sepertinya ada komentar besar yang menjelaskan cara kerjanya, bagian kode ini juga ada C
!
Tautan ke kode adalah http://lxr.free-electrons.com/source/kernel/sched/loadavg.c
Sekali lagi saya tidak mencoba terlibat dalam segala bentuk plagiarisme, saya hanya menambahkan ini untuk kelengkapan. Jadi, saya mengulangi bahwa tautan ke kode kernel ditemukan dari salah satu jawaban dalam Memahami rata-rata teratas dan memuat ...
top -v
)