Là một điểm làm rõ, tải không được gắn trực tiếp vào CPU. Đây là một trong những quan niệm sai lầm phổ biến nhất về tải. Thực tế là bạn đề cập đến đĩa dường như thừa nhận rằng bạn biết điều này, nhưng tôi chỉ muốn đề cập đến nó khi tôi thấy các bình luận cho thấy một số người khác tin.
Tải được định nghĩa là số lượng quá trình chờ trên tài nguyên hệ thống. Đây thường là CPU, đĩa hoặc mạng, nhưng có thể là bất cứ thứ gì phần cứng thực sự.
Một "quy trình" cũng không nhất thiết là một quá trình đầy đủ. Một luồng được định nghĩa là một "quy trình nhẹ" và mỗi luồng đang chờ sẽ tăng số lượng tải.
Để tìm ra quá trình nào là một vấn đề:
Chạy top -H
( -H
cho phép hiển thị chủ đề)
Các phím tắt khác nhau tùy theo phiên bản.
Với đầu mới hơn (3,3 và sau):
Nhấn fđể hiển thị các tùy chọn trường.
Sử dụng các phím mũi tên để đi đến S = Process Status
và nhấn s.
Nhấn qđể quay lại trang chính.
Nhấn Shift+ Rđể đảo ngược việc sắp xếp.
Với đầu cũ hơn (trước 3,3):
Nhấn Shift+ ođể hiển thị các tùy chọn sắp xếp.
Sau đó wđể sắp xếp theo trạng thái quá trình.
Sau đó Enterđể quay lại trang chính.
Sau đó Shift+ Rđể đảo ngược việc sắp xếp.
Sau đó, trong S
cột, tìm kiếm các quy trình có D
hoặc R
(bây giờ chúng phải ở trên cùng). Đây sẽ là các quá trình đóng góp vào tải hệ thống.
Nếu quá trình hiển thị D
, điều đó có nghĩa là "giấc ngủ không bị gián đoạn". Thông thường, điều này được gây ra khi quá trình đang chờ trên I / O (đĩa, mạng, v.v.).
Nếu quá trình hiển thị a R
, điều đó có nghĩa là nó chỉ thực hiện tính toán bình thường.
Để tìm hiểu thêm về những gì các quá trình đang làm:
Với đầu mới hơn (3,3 và sau):
Nhấn fđể hiển thị các tùy chọn trường.
Sử dụng các phím mũi tên để đi đến WCHAN = Sleeping in Function
và nhấn dđể kích hoạt nó.
Sau đó qđể quay lại trang chính.
Với đầu cũ hơn (trước 3,3):
Nhấn fsau đó yđể kích hoạt WCHAN
trường.
Nếu hệ thống của bạn có các tùy chọn kernel cần thiết và tệp wchan có trong hệ thống của bạn (tôi quên nó ở đâu và nó được gọi là gì) , WCHAN
trường sẽ hiển thị cho bạn chức năng kernel nào mà quá trình hiện đang chạy (nếu trường chỉ hiển thị -
hoặc ?
trên tất cả mọi thứ, bạn không có hỗ trợ).
Một chút google ở đây và bạn nên theo cách của bạn.
Nếu bạn không có hỗ trợ của wchan, bạn luôn có thể thử strace
các quy trình để tìm hiểu xem họ đang làm gì, nhưng đó là cách khó khăn.