Chúng tôi đang chạy vào một hành vi kỳ lạ, nơi chúng tôi thấy việc sử dụng CPU cao nhưng tải trung bình khá thấp.
Hành vi được minh họa tốt nhất bằng các biểu đồ sau từ hệ thống giám sát của chúng tôi.
Vào khoảng 11:57, việc sử dụng CPU tăng từ 25% đến 75%. Trung bình tải không thay đổi đáng kể.
Chúng tôi chạy các máy chủ với 12 lõi với 2 luồng siêu tốc. HĐH coi đây là 24 CPU.
Dữ liệu sử dụng CPU được thu thập bằng cách chạy /usr/bin/mpstat 60 1
mỗi phút. Dữ liệu cho all
hàng và %usr
cột được hiển thị trong biểu đồ trên. Tôi chắc chắn điều này không hiển thị mức trung bình trên mỗi dữ liệu CPU, chứ không phải việc sử dụng "xếp chồng". Mặc dù chúng tôi thấy mức sử dụng 75% trong biểu đồ, chúng tôi thấy một quá trình hiển thị để sử dụng khoảng 2000% CPU "xếp chồng" vào top
.
Con số trung bình tải được lấy từ /proc/loadavg
mỗi phút.
uname -a
cho:
Linux ab04 2.6.32-279.el6.x86_64 #1 SMP Wed Jun 13 18:24:36 EDT 2012 x86_64 x86_64 x86_64 GNU/Linux
Linux là Red Hat Enterprise Linux Server release 6.3 (Santiago)
Chúng tôi chạy một vài ứng dụng web Java dưới tải khá nặng trên các máy, nghĩ 100 yêu cầu / s trên mỗi máy.
Nếu tôi diễn giải chính xác dữ liệu sử dụng CPU, thì khi chúng ta sử dụng 75% CPU, điều đó có nghĩa là CPU của chúng ta đang thực hiện một quá trình trung bình 75% thời gian. Tuy nhiên, nếu CPU của chúng tôi bận rộn 75% thời gian, chúng ta có nên thấy tải trung bình cao hơn không? Làm thế nào các CPU có thể bận rộn 75% trong khi chúng ta chỉ có 2-4 công việc trong hàng đợi chạy?
Chúng tôi đang giải thích dữ liệu của chúng tôi chính xác? Điều gì có thể gây ra hành vi này?