Không chắc chắn, nhưng chủ yếu là trên 1.00*n_cpu
.
Tải có nghĩa như sau: nếu có nhiều quy trình trên một hệ thống cpu đơn, chúng đang chạy dường như song song. Nhưng nó không phải là sự thật. Điều gì thực tế xảy ra: hạt nhân cho 1/100 giây cho một quá trình, và sau đó phá vỡ hoạt động của nó bằng một ngắt. Và đưa ra 1/100 giây tiếp theo cho một quá trình khác.
Thực tế câu hỏi, "quá trình nào sẽ có khoảng thời gian 1/100 giây tiếp theo của chúng tôi?", Sẽ được quyết định bởi một phương pháp phỏng đoán phức tạp. Nó được đặt tên là lập kế hoạch nhiệm vụ .
Tất nhiên, các quy trình bị chặn, ví dụ như họ đang chờ dữ liệu của họ những gì họ đang đọc từ đĩa, được miễn lập lịch tác vụ này.
Tải trọng nói gì: có bao nhiêu quá trình hiện đang chờ khung thời gian 1/100 giây tiếp theo của chúng. Tất nhiên, nó là một giá trị trung bình. Điều này là do bạn có thể thấy nhiều số trong a cat /proc/loadavg
.
Tình hình trong một hệ thống đa cpu phức tạp hơn một chút. Có nhiều cpus, có khung thời gian có thể được cung cấp cho nhiều quy trình. Điều đó làm cho nhiệm vụ lên lịch một chút - nhưng không quá nhiều - phức tạp hơn. Nhưng tình hình là như vậy.
Hạt nhân rất thông minh, nó cố gắng chia sẻ tài nguyên hệ thống để đạt hiệu quả tối ưu và nó ở gần đó (có những điều tối ưu hóa nhỏ, ví dụ như sẽ tốt hơn nếu một quá trình sẽ được chạy trong thời gian dài nhất có thể trên cùng cpu vì cân nhắc bộ nhớ đệm, nhưng chúng không quan trọng ở đó). Điều này là do nếu chúng ta có tải 8, điều đó có nghĩa là: thực sự có 8 quy trình đang chờ cho lát cắt thời gian tiếp theo của chúng. Nếu chúng ta có 8 cpus, chúng ta có thể cung cấp các lát cắt thời gian này cho từng cpus một, và do đó hệ thống của chúng ta sẽ sử dụng tối ưu.
Nếu bạn thấy a top
, bạn có thể thấy rằng số lượng các quy trình đang chạy thực tế thấp đến mức đáng ngạc nhiên: chúng là các quy trình được đánh dấu R
ở đó. Ngay cả trên một hệ thống không thực sự khó, nó thường ở dưới 5. Điều này một phần là do các quá trình chờ dữ liệu của chúng từ các đĩa hoặc từ mạng cũng bị treo (được đánh dấu S
ở trên cùng). Tải chỉ hiển thị việc sử dụng cpu.
Cũng có các công cụ để đo tải đĩa, imho chúng ít nhất cũng quan trọng như giám sát sử dụng cpu, nhưng bằng cách nào đó nó không được biết đến nhiều ở đây trong thế giới sysadmin chuyên nghiệp của chúng tôi.
Các công cụ Windows thường phân chia tải với số lượng thực tế của cpus. Điều này khiến một số quản trị viên hệ thống windows chuyên nghiệp sử dụng tải hệ thống theo nghĩa chia này. Họ không đúng và có lẽ sẽ hạnh phúc hơn sau khi bạn giải thích điều này với họ.
CPU đa lõi thực tế là nhiều CPU trên cùng một chip silicon. Không có sự khác biệt.
Trong trường hợp CPU siêu phân luồng có một tác dụng phụ thú vị: tải một cpu làm cho các cặp siêu phân luồng của nó chậm hơn. Nhưng điều này xảy ra ở một lớp sâu hơn những gì mà lập lịch tác vụ thông thường xử lý, mặc dù nó có thể (và nên) ảnh hưởng đến các quyết định di chuyển quy trình của bộ lập lịch.
Nhưng theo quan điểm hiện tại của chúng tôi - điều quyết định tải hệ thống - điều đó cũng không quan trọng.