Если система действительно занята IO, просто посмотрите на top
, и вы увидите, что связанный с IO процесс обычно застревает в D-состоянии.
strace -c myprog
- мой лучший друг с первой попытки ответить на общие вопросы «что делает мое приложение / где он проводит больше всего времени».Strace также может подключаться к запущенным процессам, поэтому вы можете наблюдать за программой во время ее работы.
Еще одна хорошая хитрость - вывести ее (с strace -o myprogrun.log
) в файл журнала, а затем просмотреть ее с современным vim
какэто делает очень хороший синтаксис работы, подсвечивающий журнал.Так проще найти вещи, так как вывод strace по умолчанию не очень удобен для восприятия человеком.
Важно помнить, что нужно регистрироваться на другом разделе / наборе дисков, чем там, где проблема ввода-вывода!Не вызывайте дополнительных проблем с вводом-выводом, так как strace может генерировать много выходных данных.Для таких случаев я люблю использовать RAM-диски TmpFS или ZRAM.