Làm thế nào cao tải hệ thống có thể đi?


12

Mỗi lần tôi đăng nhập vào máy chủ của mình thông qua SSH, nó sẽ cho tôi biết một chút thông tin về máy chủ. Địa chỉ IP IE, Sử dụng hoán đổi, Sử dụng bộ nhớ, v.v. Một trong những thứ khác mà nó nhấp nháy cho tôi là Tải hệ thống. Bây giờ hầu hết thời gian số tải hệ thống là <0,10 nhưng lần khác tôi đã thấy nó tăng lên 0,89 (thường là xung quanh khởi động).

Điều này đặt ra câu hỏi, hệ thống có thể tải cao đến mức nào? Chẳng hạn, nó có thể tăng đến 2,00 thậm chí 100,00 không?


Phần phân số cho biết mức độ sử dụng CPU, phần thập phân số lượng quy trình chờ. Một cái gì đó giống như 100.89sẽ có nhiều khả năng hơn100.00
Lekensteyn


@Caleb, tôi không đồng ý rằng đó là một bản sao. Có thể OP dự định hỏi điều gì đó tương tự, như "tải hệ thống có thể tăng cao đến mức nào (và vẫn chạy được chấp nhận được)?". Nhưng như phrased, nó không phải là câu hỏi tương tự.
Cyclops

@Cyclops: Nếu OP không có ý định hỏi về mức độ chấp nhận được trên máy chủ và đang hỏi một câu hỏi lý thuyết thuần túy về cách các hệ thống * nix hoạt động thì sẽ không lạc đề ở đây và một ứng cử viên để chuyển sang unix.SE?
Caleb

Câu trả lời:


17

Điều này đặt ra câu hỏi, hệ thống có thể tải cao đến mức nào? Chẳng hạn, nó có thể tăng đến 2,00 thậm chí 100,00 không?

Chắc chắn rồi. Nhìn vào uptimetrang người đàn ông:

   System load averages is the average number of processes that are either
   in a runnable or uninterruptable state.  A process in a runnable  state
   is  either  using the CPU or waiting to use the CPU. A process in unin‐
   terruptable state is waiting for some I/O access, eg waiting for  disk.
   The  averages  are  taken over the three time intervals.  Load averages
   are not normalized for the number of CPUs in a system, so a load  aver‐
   age  of 1 means a single CPU system is loaded all the time while on a 4
   CPU system it means it was idle 75% of the time.

Vì vậy, nếu bạn có nhiều quy trình đang chờ để chạy (hoặc rất nhiều quy trình bị chặn chờ I / O), bạn sẽ có mức trung bình tải cao. Bài viết này nói về nó chi tiết hơn và có các liên kết hữu ích đến các tài nguyên khác.

Trên một hệ thống không tải, trung bình tải thường sẽ nằm trong phạm vi 0 <= load_alusive <= n , trong đó n là số lõi trên hệ thống của bạn.


1
Đúng, Chờ I / O là một cách dễ dàng để tạo ra nhiều tải: Gắn kết chia sẻ nfs, bật máy chủ nfs, khởi động 10.000 quy trình cố gắng chạm vào thứ gì đó trên chia sẻ nfs: boom, tải 10.000
Jens Timmerman

5

Tôi đã thấy các hệ thống còn sống đạt hàng ngàn. Tải Trung bình một thước đo tương đối dựa trên các quy trình chờ đợi về mức độ cạnh tranh để có được sự chú ý của hạt nhân và được cấp một số thời gian trên CPU. Nếu máy bị ngập trong công việc hoặc gặp sự cố, điều đó có thể mất nhiều thời gian.

Mức độ nào được chấp nhận tùy thuộc vào máy, số lượng lõi, loại lịch trình công việc hạt nhân đang sử dụng và các công việc bạn mong đợi nó sẽ làm. Tôi có một số máy khá hạnh phúc trong phạm vi ~ 10 nhưng không hoạt động nếu chúng đạt ~ 40-50. Những người khác trở nên chậm trễ đáng chú ý ở mức 2 và sẽ không thể sử dụng được ở mức 10.

Không có gì lạ khi tải có khả năng khởi động cao vì nhiều việc đang được thực hiện cùng một lúc và máy đang hoạt động. Tôi sẽ xem xét ~ 1 khá tải bình thường để nhấn boot khởi động cho Linux máy tính để bàn, sau đó giải quyết xuống ~ 0,1 trong khi không làm gì cả.


3
Hiệu chỉnh nhỏ: Tải trung bình không phải là thước đo thời gian. Đó là số lượng quá trình trung bình đang chờ. Không có cách nào để phân biệt sự khác biệt giữa 1) một quy trình ăn cắp CPU và một quy trình khác không bao giờ có được nó và 2) hai quy trình liên tục giao dịch. Cả hai đều là tải 1.0.
Plutor

1
Tôi đã thấy hơn 1500 trên một hộp linux được yêu thích nghiêm túc. Rồi nó chết.
Tom O'Connor

3

Trên Linux, các giá trị trung bình tải hệ thống bao gồm các quy trình ở một trong ba trạng thái khác nhau. Nói chung, người ta có thể nói rằng trung bình tải là lượng quá trình chờ thời gian CPU hoặc tiêu tốn thời gian của CPU. Ba giá trị trong tổng quan về trung bình tải là trung bình tải trong một phút qua, 5 phút cuối và 15 phút cuối.

Ba trạng thái khác nhau của các quy trình được tính vào mức trung bình tải là: (1) các quy trình đang chạy trên CPU, (2) các quy trình chờ thời gian của CPU và (3) các quy trình trong chế độ ngủ không bị gián đoạn. Danh mục cuối cùng, trong khi không tạo ra tải CPU, có thể tăng trung bình tải hệ thống đáng kể.

Ví dụ, một tá các quá trình chờ đọc từ một đĩa rất bận hoặc không có sẵn sẽ tạo ra trung bình tải là 12 khi các tiến trình trong giấc ngủ không bị gián đoạn, nhưng trong thời gian đó, CPU của bạn có thể không hoạt động.

Vì vậy, có, tải trung bình có thể dễ dàng tăng đến hai chữ số. Làm thế nào xấu đó là phụ thuộc vào phần cứng của bạn. Nếu bạn có 16 lõi, có 16 tiến trình chờ thời gian CPU không phải là quá tệ. Trên một máy lõi đơn, việc có 3 tiến trình chờ thời gian CPU có thể rất tệ.


Tôi nghĩ rằng nó chỉ xấu nếu chúng là các quá trình liên kết với CPU, điều này rất hiếm. Hầu hết các quy trình lớn đều bị ràng buộc IO hoặc / và ràng buộc RAM.
peterh - Tái lập Monica

3

Tạo một quy trình C đơn giản chạy các vòng lặp vô hạn trong 10000 luồng. Ưu tiên rất thấp (+20). Tải của bạn sẽ là 10000, trong khi hệ thống của bạn vẫn có thể sử dụng được. Nó sẽ chỉ sử dụng một ít RAM (nhiều nhất là vài megabyte).

Mặc dù nó là một cấu hình khá phổ biến, nhưng trong các hệ thống thực, bạn sẽ không tìm thấy điều này.

Tải hệ thống chỉ có nghĩa là số lượng quá trình trung bình đang chờ cho khe thời gian cpu, không ít hơn và không nhiều hơn. Đây là một câu trả lời khác về cách thích hợp để giải thích tải hệ thống .

Theo kinh nghiệm hàng ngày, tải trên 30+ có nghĩa là chủ yếu là một số vấn đề.


2

Một vài giây sau khi giết một quá trình đang ăn một cpu 450Mhz cũ:

nhập mô tả hình ảnh ở đây


1

Khi bạn liên tục bắt đầu các quy trình chặn ngay lập tức, tải sẽ cao bằng số lượng quy trình bạn quản lý để bắt đầu. Giả sử bạn có đủ RAM mà hệ thống không bị tráo đổi, hệ thống thậm chí sẽ vẫn phản hồi vì tải do quá trình chặn không thực sự có hại.


1

Tôi đã thấy một máy chủ chạy ở mức> 200 tải.

Tôi sẽ nhấn mạnh kiểm tra và xem.

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.