IO-интенсивный процесс зависает с Iowait, но никакой активности не происходит
У меня есть куча задач с интенсивным вводом-выводом, и для повышения производительности я только что установил два SSD на вычислительном сервере, один как чистую файловую систему, другой как своп. После запуска в течение некоторого времени все мои процессы зависают в состоянии "D", не потребляют ЦП, и система сообщает об отсутствии активности на 67% и ожидании на 33%. Iostat показывает отсутствие активности диска, и система реагирует на другие действия, включая соответствующие файловые системы. Прикрепление 'strace' к процессам не дает результата.
Просматривая в /proc/(pid)/fd, я обнаружил, что все процессы используют (читают) один общий файл. Я не вижу причин, по которым это должно вызывать проблемы, но я заменил файл, убил процессы и позволил всему продолжиться (то есть будут запущены новые процессы). Посмотрим, не застрянет ли что-то в новом файле, в другом файле или, в идеале, совсем нет:-)
Я также нашел пару таких в kern.log:
BUG: unable to handle kernel paging request at ffffeb8800096e5c
Много другой информации, но я не знаю, как ее расшифровать, за исключением того, что она ссылается на PID и имя одного из моих процессов.
Есть идеи, что здесь происходит, или как это исправить? Это на Ubuntu 12.04 LTS, Dell-что-то с контроллером диска RocketRaid и файловой системой btrfs.
1 ответ
Кажется, это может быть проблема с памятью. Загрузите memtest и проверьте свой оперативной памяти.