Như ghi nhận ở proc(5), trong file /proc/(pid)/stat
bạn có các lĩnh vực:
utime %lu
Lượng thời gian đó quá trình này đã được lên kế hoạch trong chế độ người dùng , đo bằng đồng hồ ve (chia cho sysconf (_SC_CLK_TCK) này bao gồm thời gian khách, guest_time (thời gian dành một CPU ảo, xem bên dưới), để các ứng dụng là không nhận thức được trường thời gian của khách làm không mất thời gian đó từ các tính toán của chúng.
stime %lu
Lượng thời gian đó quá trình này đã được lên kế hoạch trong kernel mode , đo bằng đồng hồ bọ ve (chia bởi sysconf (_SC_CLK_TCK).
Để có được sử dụng CPU cho một quá trình cụ thể, sử dụng các trường đó, quá trình làm phong phú sẽ tổng hợp việc sử dụng CPU trên tất cả các chủ đề, cho một phân tích theo chủ đề, bạn có thể tìm thấy các chủ đề khác trong /proc/(pid)/task
.
Nếu bạn muốn được thông báo khi C Thời gian PU vượt quá ngưỡng nào đó, bạn có thể sử dụng clock_getcpuclockid để xử lý đồng hồ thời gian cpu của nó, sau đó timer_create hoặc timerfd để được thông báo khi nó đạt đến một mức được chỉ định. Tuy nhiên, lưu ý rằng các bộ đếm thời gian cputime xử lý chéo là một tính năng tùy chọn trong đặc tả POSIX và có thể không được hỗ trợ (tôi chưa thử nghiệm).
Tải là chỉ số trên toàn hệ thống, không phải là số liệu quy trình. Bạn có nghĩa là quá trình sử dụng CPU? –
bạn có chắc chắn thông tin không có ở đó không? 'find/proc/1' chẳng hạn, có rất nhiều thứ, bạn đã trải qua tất cả? –
Tôi đã đi qua tất cả :) – Mark