Saya menggunakan ps
perintah sebagai bagian dari latihan untuk mengidentifikasi proses yang berjalan lebih lama dari batas yang diberikan.
Saya menggunakan templat berikut untuk mendapatkan waktu yang telah berlalu untuk perintah know process:
ps -eo etime,command | grep <something to identify a process> | grep -v grep | awk '{print $1}'
Saya perhatikan dengan proses yang berjalan singkat, nilai etime (waktu yang berlalu) mengambil format minutes:seconds
dan dari sini saya dapat dengan mudah menentukan berapa lama suatu proses telah berjalan.
Untuk proses yang berjalan sangat lama (berhari-hari panjang), saya tidak mengerti formatnya.
Saya memiliki proses server MySQL yang htop
berjalan selama 126 jam.
Eksekusi ps -eo etime,command | grep mysql | grep -v grep | awk '{print $1}'
memberi saya nilai 9-03:35:32
.
Tebakan terbaik saya adalah ini berarti 9 sesuatu, 3 jam, 35 menit, 32 detik. Saya tidak tahu apa unit untuk 9.
Proses yang dimaksud telah berjalan 126 jam, sekitar 5,25 hari. Ini menunjukkan bahwa angka 9 pada output di atas tidak mewakili hari. Mereka tidak bisa setengah hari karena (9 * 12) jam + 3 jam + 35 menit + 32 detik kurang dari 5 hari.
Bagaimana cara menafsirkan nilai waktu yang telah berlalu yang saya lihat untuk proses yang berjalan lama? Unit apa yang menyertai angka 9 pada output di atas?
ps
menampilkan satu atau yang lain tergantung pada opsi yang Anda lewati.etimes
alih-alihetime
dan bandingkan hasilnya.Jawaban:
Menurut standar :
Jadi, 9 artinya berhari-hari, baik Anda percaya atau tidak. Bisakah Anda salah mengartikan output dari htop? Apa kata top (yang memiliki format waktu
minutes:seconds
)? Apakah Anda yakin bahwa bidang yang Anda lihat di htop setara dengan etime? (misalnya, bisa berarti 126 menit dari CPU waktu?)sumber