Nhầm lẫn bởi các giá trị CPU trong lệnh 'top' Unix


11

Trong ảnh chụp màn hình bên dưới, tổng thể CPU đang được báo cáo là 3% nhưng quá trình mysqld được báo cáo là sử dụng 57%. Đây có phải là 57% của 3% tổng thể và do đó mysqld chỉ sử dụng khoảng 1,5% CPU?

ảnh chụp màn hình hàng đầu http://img.skitch.com/20090620-cih33piwnnrke6aw41y9p1phwr.jpg

CẬP NHẬT : Một người bình luận bên dưới đã yêu cầu tôi nhấn phím '1' và đăng kết quả: phím 1 http://img.skitch.com/20090620-gayja43s44qtw2wkw4aq642e8c.jpg

Câu trả lời:


11

57,6% có nghĩa là mysqld đang sử dụng 0,55 của một cpu. Sự khác biệt có thể là một điều kiện chạy đua giữa việc thu thập dữ liệu cho toàn bộ hệ thống và thu thập dữ liệu trên mỗi quy trình.

EDIT: Dựa trên bản cập nhật của bạn có vẻ như bạn có 16 lõi.

57.5% => .575/16 = .036 = 3.6%.

Vì vậy, đó là nơi 3% của bạn đến từ.

Nếu bạn tính tổng tất cả các tỷ lệ phần trăm nhàn rỗi và trừ đi từ 1600%, thì đó cũng là khoảng 57,5%.


3

Bạn có thể thử nhấn số 1 khi top đang chạy và xem điều gì xảy ra.

Biên tập:

Mr Unknown nói điều đó tốt.

top đang nói "Nếu bạn có một lõi CPU, nó sẽ bận 57,5%."

Nhưng bạn có 16 lõi. Vì vậy, con số 57 này được trải rộng khắp mọi nơi, với mysqld là đa luồng và mọi thứ ...

Loại khó hiểu. Nhưng tôi nghĩ điều này là do top sẽ khó hiển thị thông tin cho từng lõi hơn ... hãy tưởng tượng một dòng thông tin hàng đầu với 16 lõi trở lên!

Ngoài ra nếu bạn cộng tất cả thời gian CPU "% us"

1.7+1.0+2.3+1.0+7.4+11.1+15.1+8.7 = 48.3
48.3/16 = 3.01875

Đây là nơi con số 3% đến từ ...


làm xong; xem câu hỏi cập nhật.
Teflon Ted

1

Có ai đề nghị htopchưa? Không phải là nó sẽ giúp với câu hỏi đặc biệt này nhiều hơn những câu trả lời trước đây, nhưng tôi cảm thấy bắt buộc phải đề cập htopbất cứ lúc nào tôi thấy ai đó vẫn đang sử dụng top!


0

Tôi không thể biết liệu đầu của bạn có hợp nhất bất kỳ CPU nào mà bạn có hay không, nhưng điều đó vẫn không có ý nghĩa lớn.

Điều có thể xảy ra là top không nhận được các giá trị cho mọi quy trình và tổng mức sử dụng CPU cùng một lúc. Có một khoảng thời gian nhỏ mà mysql có thể đã dừng hoặc bắt đầu sử dụng nhiều CPU trong khoảng thời gian thông tin quy trình được đọc và toàn cầu được đọc. Nó cũng có thể chỉ là một điều kiện cuộc đua đơn giản.

Tất nhiên, điều này sẽ phải xảy ra đủ lâu để bạn có thể nhận thấy, vì vậy tôi đoán đây có thể chỉ là một lỗi kỳ lạ ở đâu đó trong đầu hoặc kế toán của hạt nhân.


0

chúng tôi: không gian người dùng - những gì bạn đang chạy trên kernel sy: hệ thống gọi - những gì đang chạy bên trong kernel ni: đã đổi tên process id: idle wa: chờ đợi i / o hi: ngắt phần cứng - mất bao nhiêu thời gian để xử lý phần cứng si: ngắt phần mềm - mất bao nhiêu thời gian để xử lý các ngắt do phần mềm tạo ra (các cuộc gọi hệ thống, v.v.)

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.