การทำความเข้าใจรูปแบบเวลาที่ผ่านไปของ ps สำหรับกระบวนการที่ใช้เวลานาน


10

ฉันใช้psคำสั่งเป็นส่วนหนึ่งของแบบฝึกหัดเพื่อระบุกระบวนการที่ทำงานนานกว่าขีด จำกัด ที่กำหนด

ฉันใช้แม่แบบต่อไปนี้เพื่อให้ได้เวลาที่ผ่านไปสำหรับคำสั่งกระบวนการทราบ:

ps -eo etime,command | grep <something to identify a process> | grep -v grep | awk '{print $1}'

ฉันสังเกตเห็นว่ากระบวนการทำงานสั้นค่า etime (เวลาที่ผ่านไป) ใช้รูปแบบminutes:secondsและจากนี้ฉันสามารถกำหนดระยะเวลาที่กระบวนการทำงานได้อย่างง่ายดาย

สำหรับกระบวนการที่ใช้เวลานานมาก (วันยาว) ฉันไม่เข้าใจรูปแบบ

ฉันมีกระบวนการเซิร์ฟเวอร์ MySQL ที่htopแสดงว่าทำงานเป็นเวลา 126 ชั่วโมง

การดำเนินการให้ฉันมีค่าps -eo etime,command | grep mysql | grep -v grep | awk '{print $1}'9-03:35:32

ฉันเดาได้ดีที่สุดว่านี่หมายถึงบางสิ่ง 9 อย่าง 3 ชั่วโมง 35 นาที 32 วินาที ฉันไม่สามารถทราบได้ว่าหน่วยสำหรับ 9 คืออะไร

กระบวนการที่เป็นปัญหากำลังทำงาน 126 ชั่วโมงประมาณ 5.25 วัน สิ่งนี้ชี้ให้เห็นว่า 9 ในผลลัพธ์ข้างต้นไม่ได้เป็นตัวแทนของวัน พวกเขาไม่สามารถครึ่งวันเช่นเดียวกับ (9 * 12) ชั่วโมง + 3 ชั่วโมง + 35 นาที + 32 วินาทีน้อยกว่า 5 วัน

ฉันจะตีความค่าเวลาที่ผ่านไปที่ฉันเห็นสำหรับกระบวนการที่ใช้เวลานานได้อย่างไร หน่วยใดที่ประกอบไปด้วย 9 ในผลลัพธ์ข้างต้น


ที่นี่คุณจะเห็นรูปแบบเวลา POSIX นาที: วินาทีเป็นรูปแบบเวลา BSD Linux psแสดงหนึ่งหรืออีกอันขึ้นอยู่กับตัวเลือกที่คุณผ่าน
Gilles 'หยุดความชั่วร้าย'

หากต้องการตรวจสอบอีกครั้งลองetimesแทนetimeและเปรียบเทียบผลลัพธ์
Ruslan

คำตอบ:


16

ตามมาตรฐาน :

ในโลแคล POSIX เวลาที่ผ่านไปตั้งแต่กระบวนการเริ่มต้นในรูปแบบ:

[[dd-]hh:]mm:ss

โดยที่ dd จะแสดงจำนวนวัน hh จำนวนชั่วโมง mm จำนวนนาทีและ ss จำนวนวินาที ฟิลด์ dd จะต้องเป็นจำนวนเต็มทศนิยม เขตข้อมูล hh, mm และ ss จะต้องเป็นจำนวนเต็มทศนิยมสองหลักที่อยู่ด้านซ้ายด้วยศูนย์

ดังนั้น 9 หมายถึงวันไม่ว่าคุณจะเชื่อหรือไม่ คุณสามารถตีความตีความผิดพลาดจาก htop ได้หรือไม่? อะไรคือสิ่งที่ดีที่สุด (ซึ่งมีรูปแบบเวลาminutes:seconds) พูด? คุณแน่ใจหรือไม่ว่าฟิลด์ที่คุณกำลังดูอยู่ในฮ็อพมีค่าเทียบเท่ากับเวลา (ตัวอย่างเช่นมันอาจหมายถึง 126 นาทีของCPUเวลา?)


ขอบคุณสำหรับการยืนยัน htop แสดง 126 ชั่วโมงอย่างแน่นอน แต่ฉันคิดว่านี่อาจไม่ใช่เวลาที่กำหนด แต่บางเวลา (อาจเป็นเวลา CPU) สนามในฮ็อพ htop ไม่เท่ากับ etime ฉันคิดว่าผิดที่นี่
Jon Cram

1
@JonCram คุณแน่ใจหรือว่ามันเป็นชั่วโมง ด้านบนดั้งเดิมจะแสดงเพียงไม่กี่นาที (เช่นจะไปถึงนาทีที่สูงกว่า 60 แทนที่จะทำลายเป็นชั่วโมง) จำนวนเช่น 126: 37 หมายถึง 126 นาทีและ 37 วินาที ฉันคิดว่า htop อาจเหมือนกัน เวลาซีพียู 126 ชั่วโมงใน 9 วันดูเหมือนจะมาก
Random832
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.