Огромное, непредсказуемое падение производительности ввода-вывода в Linux

11

Я использую тестирование Debian без проблем в течение ~ 6 лет (я просто регулярно его обновляю), но недавно он начал демонстрировать случайное поведение, которое можно обобщить как «Низкая производительность ввода-вывода, которая сохраняется до перезагрузки».

Проблема в том, что внезапно все операции чтения и записи на диске замедляются до ~ 5 МБ / с, что приводит к непрерывному чтению и записи. Поскольку скорость очень низкая, диски не подвергаются механическим нагрузкам или нагрузкам, но все замедляется, пока я не перезагружаюсь.

Подсистема ввода / вывода компьютера состоит из одного OCZ Vertex 3 SSD и двух жестких дисков WD Caviar Black. SSD содержит тяжелую для чтения часть ОС, а раздел на жестком диске - все остальное.

Для диагностики проблемы я попытался безуспешно:

  • top не показывает беглую активность ни в процессоре, ни в использовании ввода-вывода.
  • hdparmвозвращает нормальные оценки производительности дисков ( -tхотя я только проверил ).
  • smartctlне показывает никаких проблем с производительностью на дисках. Долгие тесты показали, что диски как новые.

Система имеет набор микросхем Z77, 16 ГБ ОЗУ и процессор Intel i7 3770K, и статистика не показывает признаков насыщения в ОЗУ, вводе / выводе или ЦП, но у меня нет опыта в устранении подобных проблем (особенно в пространстве ядра). Любая помощь будет оценена.

Обновление 1:

  • Я запустил (принудительно) fsck на каждом разделе в качестве меры предосторожности. Все ПС чистые.
  • Кстати, я нашел обновление BIOS, которое вышло месяц назад, и применил его.
  • Ни один раздел не заполнен более чем на 50%.

Обновление 2:

Проблема не всплывает в течение двух дней. Либо, fsckлибо обновление BIOS убрало некоторые засоры в системе. Я все еще отслеживаю проблему и закрою вопрос посмертным ответом.

Обновление 3:

Проблема всплыла на поверхность, и я начал копать. Пожалуйста, посмотрите ответ.

bayindirh
источник
1
может быть проблема фрагментации atopскажет вам, насколько заняты диски (например, при поиске все время).
Стефан Шазелас
1
Просто чтобы исключить некоторые причуды, отключите NCQ и установите планировщик ввода-вывода в noop.
frostschutz
1
«Низкая производительность ввода-вывода, которая сохраняется до перезагрузки», может быть неисправным / неисправным устройством, которое слишком часто захватывает шину слишком долго, что невероятно сложно диагностировать, если не заменить аппаратное обеспечение.
2013 г.
1
Затем следующее, что я должен проверить в lsit, это проверить журналы на наличие ошибок и проверить, достаточно ли памяти выделено для буферов / кеша (см. Вывод free)
symcbean
1
Вы могли бы видеть и iowaitт.д., если вы собираете данные SAR. Я бы включил, sysstatесли он еще не запущен. Вы можете проверить на sar -Aбольшинстве платформ интервалы выборки по десять минут.
Братчли

Ответы:

12

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

Удаление дискового кэша с echo 3 > /proc/sys/vm/drop_cachesправами root устраняет проблему. В настоящее время я не знаю, почему большие дисковые кэши приводят к такому снижению производительности ввода-вывода

Последнее обновление: после дополнительных исследований я обнаружил, что количество файлов в кеше вызывало проблему. Он ломал диски, пытаясь зафиксировать множество маленьких файлов обратно на диск. Так как я использовал систему в течение десяти лет, я сделал решающий шаг и переустановил 64-битный Debian. Теперь все работает без сбоев. Вероятно, это был побочный эффект десятилетнего обновления с нахождением ограничений 32-битной операционной системы.

bayindirh
источник
2

Есть ли подозрительные сообщения в dmesg?

Еще несколько инструментов, которые вы можете попытаться получить, чтобы понять узкие места вашей системы:

  • dstat
  • latencytop
  • sysprof
Элиас Пробст
источник
Ничего подозрительного ни в каких логах. TBH нет записей в журнале, связанных с этой проблемой. Я все же попробую инструменты. У высокопроизводительного ПК не должно быть узкого места, когда он сидит в режиме ожидания, и на нем ничего не работает. Я думаю, что кеш или что-то, связанное с подсистемой ввода / вывода, идет не так, как надо.
Bayindirh
.... и iotop, fio
symcbean