Плутати значення CPU в команді Unix 'top'


11

На скріншоті нижче загальний процесор повідомляється як 3%, але про mysqld процес повідомляється як про використання 57%. Це 57% від загальних 3% і, таким чином, mysqld використовує лише близько 1,5% ЦП?

головний знімок http://img.skitch.com/20090620-cih33piwnnrke6aw41y9p1phwr.jpg

ОНОВЛЕННЯ : Запрошений коментатор нижче натискаю клавішу "1" і публікую результати: клавіша 1 http://img.skitch.com/20090620-gayja43s44qtw2wkw4aq642e8c.jpg

Відповіді:


11

57,6% означає, що mysqld використовує .576 одного процесора. Невідповідність, ймовірно, є умовою перегонів між збиранням даних для системи в цілому та збиранням даних за кожен процес.

EDIT: На основі оновлення виглядає, що у вас 16 ядер.

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

Тож звідси беруть свої 3%.

Якщо підсумовувати всі відсотки простою і віднімати 1600%, це також виходить приблизно до 57,5%.


3

Чи можете ви спробувати натиснути цифру 1, коли верхній біг працює, і подивіться, що відбувається.

Редагувати:

Містер Невідомий це добре говорить.

вгорі кажуть: "Якби у вас було одне ядро ​​процесора, воно було б зайнято 57,5%".

Але у вас 16 ядер. Таким чином, це 57 число розкидане по всьому місцю, при цьому mysqld є багатопоточним і все ...

Вигляд заплутаний. Але я думаю, що це тому, що зверху важче буде відображати інформацію для кожного ядра ... уявіть верхню інформаційну лінію з 16 і більше ядрами!

Також якщо ви додасте весь час процесора "% us"

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

Ось звідки походить 3% -ве число ...


зроблено; див. оновлене запитання.
Тефлоновий Тед

1

Хтось рекомендував htop? Не те, що це допоможе в цьому конкретному питанні більше, ніж попередні відповіді, але я відчуваю, що я зобов’язаний зазначити, htopколи я бачу когось, хто все ще використовує top!


0

Я не можу сказати, чи є ваша вершина об'єднання декількох процесорів, які у вас є, але це все-таки не має великого сенсу.

Що може статися, це те, що верх не отримує значення для кожного процесу та загального використання процесора одночасно. Існує невеликий проміжок часу, коли mysql, можливо, зупинився або почав використовувати багато процесора між часом, коли читається інформація про процес і читається глобальна. Це цілком може бути простою умовою гонки.

Звичайно, це мало б трапитися досить довго, щоб ви це помітили, тому я здогадуюсь, що це може бути просто дивна помилка десь у верхній частині чи облік ядра.


0

us: користувальницький простір - що ви працюєте над ядром sy: системні виклики - що працює всередині ядра ni: відмовлені процеси id: idle wa: очікування i / o привіт: апаратні переривання - скільки часу витрачається на роботу з обладнанням si: переривання програмного забезпечення - скільки часу витрачається на перерви, створені програмним забезпеченням (системні дзвінки тощо)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.