Как диагностировать пики процессора Ubuntu / ожидание ввода-вывода?


19

Я использую Ubuntu, и каждые пару минут он перестает отвечать на запросы от полсекунды до полной секунды, что, как правило, не проблема, но делает попытки кода крайне разочаровывающими, когда вы пытаетесь нажать клавишу Backspace или перемещаться по коду, и ничего не происходит. Проблема в том, что зависания настолько короткие, что top не успевает показать мне, что вызывает скачки в процессоре (если предположить, что что-то происходит, но я не знаю, что еще может вызвать это).

Кто-нибудь знает, как устранить эту проблему производительности?

Изменить: Я попытался войти в систему с Gnome Classic (без эффектов) вместо Unity, но он все еще зависает время от времени.

Изменить: Кажется, что график CPU показывает не реальных скачков, так что кажется, что вы были правы, и мой первоначальный диагноз проблем с CPU был неверным, теперь я подозреваю, что IO ждать. Я не помню, чтобы это происходило в течение тех коротких нескольких недель, когда у меня был запущен Windows 7 Starter, что заставляет меня поверить, что это не (просто?) Аппаратное обеспечение ... Есть ли что-то, что я могу настроить, чтобы улучшить это? Я использую Acer Aspire One D257 с Ubuntu 11.10.

Изменить: выход dmesgнаходится на http://paste.ubuntu.com/1060054/ и kern.log на http://paste.ubuntu.com/1060055/


Этот вопрос интересен как в общем случае , так и в вашем конкретном.
Rafał Cieślak

1
Включив график ЦП, вы можете точно знать, является ли это всплеском ЦП, который вызывает замедление. В некоторых случаях ввод-вывод может быть другим виновником или сетевым лагом. Это происходит независимо от того, какую программу вы активно используете в данный момент?
Дэвид Онеилл

Отличная мысль, Дэвид, я сделаю это. Я использую только Vim и Firefox на этой машине, они всегда открыты, и это происходит независимо от того, что находится на переднем плане. Сначала я подумал, что это автоматическая генерация ctag из Vim, но после закомментирования этого раздела и удаления всего моего файла vimrc проблема все еще возникает. Я попробую график, чтобы увидеть, действительно ли это всплеск процессора или ожидание ввода-вывода.
Джефф Веллинг

Насколько он не отвечает? Ваш указатель мыши перестает обновляться?
AdamKG

Извините за задержку ответа, я думаю, что он также замораживает указатель, но это прекратилось, или я не заметил этого в последнее время. Интересно, что в последнее время у меня также был подключен и подключен мой зашифрованный USB-накопитель, который также часто задавался вопросом, может ли это быть связано. Я пытаюсь провести еще какое-то тестирование с подключенным накопителем и без него, чтобы определить, связано ли A) с ним и B) перестает ли реагировать указатель во время этих зависаний.
Джефф Веллинг

Ответы:


12

Есть два дополнительных инструмента, которые вы можете попробовать:

Если вы не получаете того, что хотите от этих двух инструментов, вам может понадобиться использовать инструменты разработчика, такие как OProfile или Sysprof .

Все перечисленные инструменты доступны в репозиториях Ubuntu.

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


Хм, я, конечно, посмотрю на штормы прерываний, но проблема продолжала возникать даже после того, как я так часто перестал использовать USB-устройства в этой системе. Большую часть времени я буду программировать по дороге на работу (транзит), и тогда я это заметю.
Джефф Веллинг

5

Я использовал htop в течение многих лет, и я наконец нашел, как получить Утилизацию ЦП по цифрам и процентам, я удивлен, что пропустил это.

htop iowait image

Нажмите F2

Стрелка "Доступные метры"

Выделите средний процессор

F5 или F6, чтобы добавить к столбцу

Стрелка к элементу «CPU [Bar]»

Нажимайте F4, пока не получите «CPU [Text]»

Вы также можете получить IORates

F2-> Columns-> Доступные

Добавить IO_RATE, IO_READ_RATE, IO_WRITE_RATE


2

Лучший способ убедиться в этом - использовать приложение командной строки, подобное topили htop Установить htop .

верх
верх

HTOP
HTOP

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


1
Я знаком с top, но не с htop, htop указывает на ожидание ввода-вывода / как мне интерпретировать эту часть его вывода? Я проверил часто задаваемые вопросы на веб-сайте htop, но там не упоминалось ожидание ввода-вывода.
Джефф Веллинг

@JefWelling: это не афаик. Оба покажут это как использование процессора однако.
RolandiXor

Есть дополнительный монитор для операций ввода-вывода. Это называется iotop (см. Ответ danjo133s).
FuzzyQ

2

Новый и очень полезный инструмент - это cpustat. Он имеет графический интерфейс, который позволяет вам отслеживать несколько пидов с течением времени.

введите описание изображения здесь

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.