Hiểu định dạng thời gian trôi qua ps cho các quy trình chạy dài


10

Tôi đang sử dụng một pslệnh như một phần của bài tập để xác định các quá trình chạy dài hơn một ngưỡng nhất định.

Tôi đang sử dụng mẫu sau để có thời gian trôi qua cho lệnh process process:

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

Tôi nhận thấy với các quy trình chạy ngắn, giá trị etime (thời gian trôi qua) có định dạng minutes:secondsvà từ đó tôi có thể dễ dàng xác định thời gian một quy trình đã chạy.

Đối với các quy trình chạy rất dài (ngày dài), tôi không hiểu định dạng.

Tôi có một quy trình máy chủ MySQL htophiển thị như đang chạy trong 126 giờ.

Thi công ps -eo etime,command | grep mysql | grep -v grep | awk '{print $1}'cho tôi một giá trị 9-03:35:32.

Dự đoán tốt nhất của tôi là điều này có nghĩa là 9 cái gì đó, 3 giờ, 35 phút, 32 giây. Tôi không thể tìm ra những gì các đơn vị cho 9.

Quá trình trong câu hỏi đã được chạy 126 giờ, khoảng 5,25 ngày. Điều này cho thấy rằng 9 trong sản lượng trên không đại diện cho ngày. Họ không thể là nửa ngày hoặc (9 * 12) giờ + 3 giờ + 35 phút + 32 giây là ít hơn 5 ngày.

Làm cách nào để diễn giải giá trị thời gian đã trôi qua mà tôi đang thấy đối với các quy trình chạy dài? Những đơn vị đi kèm với 9 trong đầu ra trên?


Ở đây, bạn đang thấy định dạng thời gian POSIX. Phút: giây là định dạng thời gian BSD. Linux pshiển thị cái này hay cái khác tùy thuộc vào các tùy chọn bạn vượt qua.
Gilles 'SO- ngừng trở nên xấu xa'

Để kiểm tra lại, hãy thử etimesthay vì etimevà so sánh kết quả.
Ruslan

Câu trả lời:


16

Theo tiêu chuẩn :

Trong miền địa phương POSIX, thời gian trôi qua kể từ khi quá trình được bắt đầu, dưới dạng:

[[dd-]hh:]mm:ss

trong đó dd sẽ biểu thị số ngày, hh số giờ, mm số phút và ss số giây. Trường dd sẽ là một số nguyên thập phân. Các trường hh, mm và ss sẽ là các số nguyên thập phân có hai chữ số được đệm bên trái bằng các số không.

Vì vậy, 9 có nghĩa là ngày, cho dù bạn có tin hay không. Bạn có thể hiểu sai đầu ra từ htop? Top (có định dạng thời gian minutes:seconds) nói gì? Bạn có chắc chắn rằng lĩnh vực bạn đang xem trong htop tương đương với etime? (ví dụ, nó có thể có nghĩa là 126 phút của CPU thời gian?)


Cám ơn vì đã xác nhận. Htop chắc chắn hiển thị 126 giờ, nhưng tôi nghĩ rằng đây có thể không phải là thời gian treo tường mà là một thời gian khác (có lẽ là thời gian CPU). Trường trong htop không tương đương với etime, tôi đã giả định sai ở đây.
Jon Cram

1
@JonCram Bạn có chắc là giờ không? Đầu trang gốc chỉ hiển thị phút (tức là nó sẽ chuyển đến phút trên 60 thay vì ngắt đến giờ), một số như 126: 37 có nghĩa là 126 phút và 37 giây. Tôi đã nghĩ rằng htop có thể giống nhau. Thời gian CPU 126 giờ trong 9 ngày có vẻ như rất nhiều.
Random832
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.