2009-03-20 24 views

Trả lời

34

iotoplatencytop có thể hữu ích. Không cung cấp chính xác "thời gian chờ CPU gây ra bởi một quá trình" - Tôi không chắc chắn nó thậm chí có ý nghĩa, bởi vì CPU có thể và không đi để phục vụ các quá trình khác trong khi chờ IO - nhưng hai công cụ này cung cấp tổng quan về (tương ứng) hệ thống I/O giao thông và lên lịch sự chậm trễ.

+0

cả hai công cụ đều đẹp, nhưng máy chủ tôi không thể dễ dàng được vá hoặc nâng cấp lên> 2.6.20, vì vậy chúng không hoạt động đối với tôi. nhưng tôi sẽ giữ chúng để tham khảo trong tương lai :) –

+0

Liên kết tới LatencyTOP.org đã chết - không có bản ghi DNS gốc. Dự án dường như đã chết, không có cam kết nào kể từ năm 2009. –

54

Các quá trình bị chặn trên IO là các quy trình được đánh dấu là D trong cột trạng thái (S cột ở trên cùng).

+0

Điều này có lẽ là câu trả lời được chấp nhận ở đây vì nó dễ dàng đạt được như là một trợ giúp để tìm ra thủ tục thủ phạm. –

35

Để được chính xác hơn, sử dụng lệnh này có thể dễ dàng tìm ra các quy trình đang "ăn" chu kỳ CPU của bạn:

while true; do date; ps auxf | awk '{if($8=="D") print $0;}'; sleep 1; done

url Điều này có thể hữu ích: Linux Wait IO Problem

+1

D: ngủ liên tục (thường IO) –

+4

watch -n 1 "(ps aux | awk '\ $ 8 ~/D/{in \ $ 0}')" – abkrim

+1

@abkrim: tốt đẹp! Tôi thích tùy chọn '-d' cho đồng hồ, làm cho giải pháp của bạn: xem -d -n 1 "(ps aux | awk '\ $ 8 ~/D/{print \ $ 0}')" – mormegil

2

Làm một đầu, sau đó thay đổi F, sau đó chọn m hoặc n, sẽ sắp xếp danh sách các quá trình theo thời gian CPU được sử dụng.

Các vấn đề liên quan