Apa satuan waktu yang digunakan "atas"?

59

Jika saya mengeluarkan perintah "atas" dan menerima hasil seperti:

PID   USER  PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND   
00001 bob   25   0 77380 1212 1200 R 95.8  0.0  89122:13 fee         
00002 bob   25   0 77380 1196 1184 R 95.4  0.0  88954:14 fi         
00003 sam   18   0  427m  16m 6308 R 30.0  0.1  54:46.43 fo         
00004 sam   18   0  427m  16m 6308 R 26.5  0.1  52:55.33 fum         

Pertanyaan: Apa saja unit di kolom "TIME +"?

Apa yang saya coba: (tolong sarankan strategi yang lebih baik untuk mencari dokumentasi ...)

  • man top | grep -C 4 time atau
  • man top | grep <X>ketika saya mengganti minute, hour, day, atau HHuntuk X...
Abe
sumber

Jawaban:

47

menit: detik. ratusan

Mencari "WAKTU +" atau "detik" memberikan jawaban, agak (saya tidak akan menyebut halaman manual jelas).

Format ini diwarisi dari BSD, Anda juga mendapatkannya dengan ps uatau ps ldi Linux.

Gilles 'SANGAT berhenti menjadi jahat'
sumber
terima kasih ... (saya menemukan TIME + dari pencarian pertama, tetapi merasa takut); dapatkah saya berasumsi bahwa 89122: 13 dalam satuan MM: SS, (89122 menit dan 13 detik = 60 hari)?
Abe
1
@ Ya Ya, 89122: 13 = 5347333 detik ≈ 62 hari.
Gilles 'SO- stop being evil'
1
@Aku kurasa kita bisa membagi waktu yang diberikan untuk jumlah core dan mendapatkan waktu sejak itu dimulai ...
PJunior
@Gilles Saya baru mengenal Linux. Jam berapa TIME + menandakan? Untuk berapa lama pekerjaan berjalan?
mithusengupta123
@ mithusengupta123 Itulah jumlah waktu CPU yang digunakan oleh proses. Mungkin jauh lebih sedikit daripada berapa lama proses telah berjalan jika proses tidak terikat CPU, misalnya proses yang menghabiskan sebagian besar waktunya menunggu untuk melayani permintaan.
Gilles 'SO- berhenti menjadi jahat'
57

psdan toptampilkan waktu CPU yang digunakan, bukan waktu jam sejak proses dimulai. Salah satu cara untuk memeriksa kapan proses dimulai adalah menggunakan perintah berikut. Tanggal pembuatan file PID adalah ketika proses dimulai:

ls -ld /proc/pid

Jadi untuk proses 2303 akan menjadi:

ls -ld /proc/2303
Paul Heimiller
sumber
2
Saya tidak melihat di mana pun Gilles mengatakan bahwa nilainya menunjukkan waktu jam ...
Chris Down
Ya, itu membuat 'siapa pun' salah, menurut saya.
PJunior
15
Jawaban Anda bermanfaat, tetapi menyatakan 'jawaban lain benar-benar salah', (menurut saya) tidak akurat. Pertanyaan aslinya adalah unit apa yang digunakan. 'Jawaban lain' menjawab itu. Itu hanya tidak menentukan bahwa ini adalah pengukuran waktu CPU, bukan waktu jam. Jawaban Anda mengklarifikasi itu dan karena itu berguna (tetapi tidak menjawab pertanyaan awal). Saya akan memilih jawaban Anda jika Anda menghapus dari jawaban Anda bahwa jawaban yang lain adalah 'benar-benar salah'.
Jason S
2
Ini sepertinya tidak bekerja untuk proses jangka panjang (mungkin itu tidak bekerja untuk pekerjaan pendek juga). Saya melihat file ini diperbarui karena alasan lain juga. Ada cara lain untuk menghitung ketika proses dibuat ( stackoverflow.com/questions/5731234/… )
Ganesh
Tidak berfungsi untuk saya, setelah proses berjalan selama 2 hari file ini melaporkan waktu modifikasi yang sangat baru. Juga, OP adalah "unit apa", sementara ini menarik ... di luar topik.
Wilbur Whateley