Будет ли процесс, заблокированный IO, показывать 100% загрузку ЦП в «верхнем» выводе? - PullRequest
4 голосов
/ 29 декабря 2010

У меня есть анализ, который можно распараллелить по разному количеству процессов.Ожидается, что процесс будет интенсивным как для ввода-вывода, так и для процессора (очень скоростное выравнивание ДНК с коротким чтением, если кому-то интересно).

Система, в которой работает этот сервер, - это 48-ядерный сервер Linux.Вопрос в том, как определить оптимальное количество процессов, чтобы общая пропускная способность была максимальной.В какой-то момент процессы предположительно станут связанными с вводом-выводом, так что добавление большего количества процессов не принесет никакой пользы и, возможно, пагубно.

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

Ответы [ 3 ]

6 голосов
/ 29 декабря 2010

Когда процесс заблокирован на IO, он не работает, поэтому время не учитывается. Если есть другой процесс, который может быть запущен, то он будет работать вместо этого; в противном случае время считается как «ожидание ввода-вывода», которое учитывается как глобальная статистика.

Ожидание ввода-вывода было бы полезно для мониторинга. Он отображается в заголовке top как что-то вроде% iw. Вы можете отслеживать это более подробно с помощью таких инструментов, как iostat и vmstat. Возможно, лучше спросить об ошибке на сервере.

1 голос
/ 29 декабря 2010

Даже один процесс, связанный с вводом-выводом, редко демонстрирует высокую загрузку ЦП, поскольку операционная система запланировала свой ввод-вывод и обычно просто ожидает его завершения.Поэтому top не может точно различить процесс, связанный с вводом-выводом, и процесс, не связанный с вводом-выводом, который просто периодически использует процессор.Фактически, система, ужасно перегруженная всеми процессами, связанными с вводом-выводом, едва способная выполнить что-либо, может демонстрировать очень низкую загрузку ЦП.

Используя в качестве первого прохода только top, вы действительно можете просто добавлять потоки / процессыдо тех пор, пока загрузка ЦП не отключится, чтобы определить приблизительную конфигурацию для данного компьютера.

1 голос
/ 29 декабря 2010

Вы можете использовать такие инструменты, как iostat и vmstat, чтобы показать, сколько времени процессы тратят на блокировку ввода-вывода.Обычно добавление большего количества процессов, чем нужно, не приносит вреда, но выгода уменьшается.Вы должны измерять пропускную способность и процессы как измерение общей эффективности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...