Назад | Перейти на главную страницу

Смущает значения CPU в команде Unix 'top'

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

верхний скриншот http://img.skitch.com/20090620-cih33piwnnrke6aw41y9p1phwr.jpg

ОБНОВИТЬ: Комментатор ниже попросил, чтобы я нажал клавишу «1» и опубликовал результаты: ключ 1 http://img.skitch.com/20090620-gayja43s44qtw2wkw4aq642e8c.jpg

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

РЕДАКТИРОВАТЬ: на основе вашего обновления похоже, что у вас 16 ядер.

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

Вот откуда ваши 3%.

Если сложить все проценты простоя и вычесть из 1600%, то получится около 57,5%.

Можете ли вы попробовать нажать цифру 1, когда работает верх, и посмотреть, что произойдет.

Редактировать:

Мистер Неизвестный хорошо об этом говорит.

top говорит: «Если бы у вас было одно ядро ​​процессора, оно было бы занято на 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% ...

Кто-нибудь рекомендовал htop? Не то чтобы это помогло бы с этим конкретным вопросом больше, чем предыдущие ответы, но я считаю своим долгом упомянуть htop каждый раз, когда я вижу, что кто-то все еще использует top!

Я не могу сказать, объединяет ли ваша вершина какие-либо несколько процессоров, которые у вас есть, но это все равно не имеет большого смысла.

Что может случиться, так это то, что top не получает значения для каждого процесса и общего использования ЦП одновременно. Есть небольшой промежуток времени, в течение которого mysql мог остановиться или начать использовать много ресурсов ЦП между моментом чтения информации о процессе и считыванием глобального файла. Это могло быть просто условием гонки.

Конечно, это должно было произойти достаточно долго, чтобы вы заметили, поэтому я предполагаю, что это может быть просто странная ошибка где-то в верхней части или в учете ядра.

us: userspace - что вы запускаете над ядром sy: системные вызовы - что работает внутри ядра ni: reniced process id: idle wa: ожидание ввода-вывода hi: аппаратные прерывания - сколько времени тратится на работу с оборудованием si: программные прерывания - сколько времени тратится на обработку программных прерываний (системные вызовы и т. д.)