Apa artinya memuat rata-rata di Unix / Linux?

68

Jika saya berlari uptime, saya mendapatkan sesuatu seperti ini:

10:50:30 up 366 days, 23:27,  1 user,  load average: 1.27, 2.06, 1.54

Apa arti angka-angka itu pada akhirnya? Halaman manual memberi tahu saya bahwa "rata-rata memuat sistem selama 1, 5, dan 15 menit terakhir.". Tapi apa skalanya? Apakah 1,27 tinggi? Rendah? Apakah ini tergantung pada sistem saya?

John Fouhy
sumber
2
Saya bertanya-tanya bagaimana rata-rata beban harus ditafsirkan pada sistem CPU multi-core.
nagul
3
Sebagai pedoman umum, Anda harus membagi rata-rata beban dengan jumlah CPU untuk sistem multi-inti. Jadi, beban 2,0 pada sistem inti ganda kira-kira setara dengan 1,0 pada sistem inti tunggal. Ini tidak sepenuhnya benar, karena hal-hal seperti disk I / O dan network traiffic, tetapi load adalah semacam perkiraan yang sulit.
Mike Cooper
1
Saya menemukan blog ini sangat berguna: Memahami Beban CPU Linux
atmaish

Jawaban:

59

Load rata-rata adalah ukuran dari berapa banyak proses rata-rata, sekaligus menuntut perhatian CPU.

Secara umum, jika Anda memiliki satu proses berjalan pada 100%, dan itu hanya duduk seperti itu untuk selamanya, Anda dapat mengharapkan semua nilai mendekati '1'.

Secara umum, ini adalah komputasi seefisien yang Anda bisa dapatkan, tidak ada kerugian karena konteks-switch.

Namun, pada OS multitasking modern, ada lebih dari satu hal yang perlu perhatian CPU, jadi di bawah jumlah sedang dari satu proses, rata-rata beban harus mengambang antara 0,8 dan 2.

Jika Anda memutuskan untuk melakukan sesuatu yang gila, seperti membangun kernel dengan make -j 60, walaupun hanya memiliki satu prosesor logis, maka rata-rata memuat akan bergegas menuju 60, dan komputer Anda akan sangat tidak berguna bagi Anda (kematian oleh saklar konteks).

Juga untuk dicatat, metrik ini terlepas dari berapa banyak core / CPU yang ada. Untuk sistem dua-inti, menjalankan satu proses yang mengkonsumsi seluruh inti (membiarkan yang lain menganggur) menghasilkan rata-rata beban 1,0. Untuk memutuskan seberapa dimuat sistem, Anda harus mengetahui jumlah core dan melakukan pembagian sendiri.

Kent Fredric
sumber
1
Jadi rata-rata beban kurang dari 1 berarti "Proses umumnya tidak perlu menunggu"? Dapatkah saya mengartikan rata-rata muatan 2 sebagai "Setiap proses memakan waktu kira-kira dua kali selama akan dalam kondisi ideal"? (Saya tahu bahwa ada I / O yang perlu dikhawatirkan)
John Fouhy
Ya, itu masuk akal, mengabaikan IO;)
Kent Fredric
@KentFredric "Secara umum, ini adalah komputasi seefisien yang Anda bisa, tidak ada kerugian karena konteks-switch." ... Apakah 1 proses berjalan pada 100% sepanjang waktu efisien sama sekali? Tentunya saya kehilangan sesuatu yang mendasar di sini. Bisakah Anda jelaskan apa yang Anda maksud? Saya bingung bagaimana bisa satu proses memonopoli semua sumber daya cpu digambarkan sebagai efisien?
Geek
2
Saya tahu proses yang berjalan pada 100% kedengarannya tidak terlalu "efisien", tetapi jika proses itu secara sewenang-wenang membatasi dirinya hanya menggunakan 20%, itu akan memakan waktu 5 kali lebih lama. Jadi di sini efisiensi berarti "pemanfaatan sumber daya yang optimal".
Kent Fredric
1
Jadi untuk sistem n-cored, rata-rata beban n berarti bahwa setiap inti menangani proses 100% dari waktu dan karena itu paling efisien?
joshreesjones
9

man 5 proc:

/ proc / loadavg Tiga bidang pertama dalam file ini adalah memuat angka rata-rata memberikan jumlah pekerjaan dalam antrian run (negara bagian R) atau menunggu disk I / O (keadaan D) rata-rata berusia lebih dari 1, 5, dan 15 menit . Mereka sama dengan angka rata-rata memuat yang diberikan oleh uptime (1) dan program lainnya.

fho
sumber
3

Secara umum ia mengukur jumlah proses aktif pada waktu tertentu, tetapi metrik yang digunakan untuk menghitungnya berbeda pada beberapa sistem. Satu-satunya artikel yang saya temukan yang menjelaskan dengan cukup baik adalah artikel ini .

John T
sumber
2
Tautan itu bertanggal '03. Linux 2.6 keluar sejak itu. (Anda akan perhatikan mereka menggunakan 2.0, Aduh.) Metrik tampaknya sekarang agak berbeda dalam praktiknya daripada yang dinyatakan pada halaman itu.
Kent Fredric
Inilah salah satu dari akhir '06, yang tidak jauh berbeda dari artikel yang ditautkan: linuxjournal.com/article/9001
nagul
Tautan Anda masih berfungsi dan output terminalnya dari tahun 2001 😂 Sungguh luar biasa
MS Berends
2

Saya mengutip dari referensi kursus:

Rata-rata muatan adalah rata-rata jumlah beban untuk periode waktu tertentu. Ini memperhitungkan proses akun yaitu:

  • Berjalan aktif pada CPU.
  • Dianggap runnable, tetapi menunggu CPU tersedia.
  • Tidur: yaitu, menunggu beberapa jenis sumber daya (biasanya, I / O) tersedia.

Saya mengutip lebih jauh tentang menafsirkan rata-rata beban :

Rata-rata beban ditampilkan menggunakan tiga set angka yang berbeda, seperti yang ditunjukkan pada contoh berikut:

Bagian terakhir dari informasi adalah beban rata-rata sistem. Dengan asumsi sistem kami adalah sistem CPU tunggal, angka 0,25 berarti bahwa untuk menit terakhir, rata-rata, sistem tersebut telah digunakan 25%. 0,12 pada posisi berikutnya berarti bahwa selama 5 menit terakhir, rata-rata, sistem telah digunakan 12%; dan 0,15 pada posisi akhir berarti bahwa selama 15 menit terakhir, rata-rata, sistem telah digunakan 15%. Jika kita melihat nilai 1,00 di posisi kedua, itu akan menyiratkan bahwa sistem CPU tunggal 100% digunakan, rata-rata, selama 5 menit terakhir; ini bagus jika kita ingin sepenuhnya menggunakan sistem. Nilai lebih dari 1,00 untuk sistem CPU tunggal menyiratkan bahwa sistem itu digunakan secara berlebihan: ada lebih banyak proses yang membutuhkan CPU daripada CPU tersedia.

Jika kami memiliki lebih dari satu CPU, katakanlah sistem quad-CPU, kami akan membagi angka rata-rata beban dengan jumlah CPU. Dalam kasus ini, misalnya, melihat rata-rata muatan 1 menit 4,00 menyiratkan bahwa sistem secara keseluruhan adalah 100% (4,00 / 4) digunakan selama menit terakhir.

Peningkatan jangka pendek biasanya tidak menjadi masalah. Puncak tinggi yang Anda lihat kemungkinan adalah ledakan aktivitas, bukan level baru. Misalnya, pada saat start up, banyak proses dimulai dan kemudian aktivitas berhenti. Jika puncak tinggi terlihat dalam rata-rata beban 5 dan 15 menit, itu mungkin akan memprihatinkan.

Ely
sumber
Akan berguna untuk menambahkan tautan ke referensi Anda.
Pierz
Itu sulit. Ini kursus online dari Linux Foundation untuk mempersiapkan ujian LFCS.
Ely