Mengapa waktu "nyata" jauh lebih tinggi daripada waktu "pengguna" dan "sistem"?

19

Saya menjalankan dan timebanyak perintah (yaitu nslookup) melalui SSHdan saya mengumpulkan total waktu yang dibutuhkan untuk menyelesaikan layanan tersirat (yaitu DNS ). Jadi saya mengumpulkan userdan syswaktu karena realwaktu menghitung waktu ketika proses saya memblokir yang saya tidak perlu ... saya kira.

Tetapi beberapa tes saya memiliki hasil seperti itu:

real 3m22.033s
user 0m0.009s
sys 0m0.014s

Saya melakukan tes ini pada kotak sumber daya linux terbatas tetapi masih, realwaktu sangat tinggi. Apakah ini hanya menunjukkan bahwa kotak SANGAT sibuk menjalankan proses yang berbeda? Apakah benar menambahkan waktu userdan sysuntuk mengetahui seberapa banyak layanan yang digunakan?

Muhammad Gelbana
sumber

Jawaban:

22

Real adalah total waktu yang diperlukan untuk proses penghentian (yaitu perbedaan antara waktu mulai dan waktu berhenti):

$ time sleep 3

real    0m3.002s
user    0m0.000s
sys     0m0.000s

Dalam daftar ini, pengguna dan sistem merujuk ke waktu yang dihabiskan masing-masing dalam mode pengguna dan mode kernel. Ini tidak termasuk waktu yang dihabiskan saat tidak aktif, dalam kondisi tidur . Suatu proses tertidur ketika diminta secara sengaja, atau ketika menunggu IO (jaringan / akses disk / interaksi pengguna) tersedia, atau menunggu proses lain berakhir, karena kekurangan CPU yang tersedia ketika sistem berada di bawah beban yang sangat tinggi , dll.

Biasanya, jika Anda memanggil timepada wget, nyata akan sesuai dengan waktu download mengambil, pengguna harus diabaikan (kecuali wgetdiminta untuk melakukan pengolahan data yang intensif), sys harus kecil (beberapa waktu mungkin dihabiskan untuk menangani buffer, memindahkan data kembali dan sebagainya dari ruang kernel ke ruang pengguna.)

Stéphane Gimenez
sumber
Maaf saya menambahkan wgetpertanyaan, sebenarnya saya tidak melakukannya timetetapi terima kasih atas penjelasannya. Mengatakan itu realtermasuk memblokir waktu seperti menunggu IO jaringan membuat saya berpikir untuk memasukkan waktu itu juga karena saya benar-benar menguji jaringan. Terima kasih.
Muhammad Gelbana
Bisakah Anda mengkonfirmasi yang berikut ini, untuk menguji kinerja jaringan dan responsif dari mesin yang ditanyai apakah itu DNSserver atau mesin ping, apakah cukup untuk hanya mengukur realwaktu?
Muhammad Gelbana
@MuhammadGelbana: Real time ini hanya stopwatch, tidak lebih. Jika Anda membiarkan pinglari selama 3 menit 22, itu akan kembali 3 menit 22. Hanya tidak berguna dalam kasus ini (dan sebenarnya itu tidak berguna sebagai patokan sebagian besar waktu, hasilnya tergantung pada faktor-faktor eksternal).
Stéphane Gimenez
Terima kasih. Tapi tahukah Anda mengapa tidak habis? Saya membaca bahwa batas waktu default nslookupadalah 5 detik!
Muhammad Gelbana