Как исправить очень высокое значение w_await на рабочем столе Linux?
Мой рабочий стол Linux (Debian sid) стал вялым в последние несколько недель. Когда я исследовал, я обнаружил, что:
- Нет недостатка в оперативной памяти - система регулярно использует только половину своего 4G, более 1G свободного даже при подсчете кешей и буферов;
- Вялость связана с доступом к файлам; например, открытие папки в KMail вызывает мини-замораживание;
- Когда он становится вялым, процессор тратит много времени в iowait.
Когда я копал дальше, я нашел такие вещи:
$ iostat -x -d /dev/sda
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
sda 0.05 7.90 3.14 2.41 23.27 40.94 23.11 12.02 2163.14 57.59 4906.16 31.58 17.55
Если я правильно понимаю, значение w_await (почти 5000) невероятно высоко, значение await (среднее значение r_await и w_await?) В результате очень велико, а в остальном все нормально.
Когда я смотрю на iotop во времена чрезмерной медлительности, я обычно вижу все нули, с морганиями в 99,9% iowait для kjournald, flush и иногда с ожидаемыми процессами (например, KMail).
Система использовалась в качестве "скользящего дистрибутива" в течение нескольких лет, все файловые системы - ext3.
Да, и, конечно: Хотя swap определен (на этом диске, который является единственным постоянно установленным в системе), он почти никогда не используется (как я уже говорил, 4G далеко не исчерпан).
Единственные ошибки, которые я видел в dmesg, - это крики процессов, которые были заблокированы (в момент возникновения проблем - в первые несколько минут после перезагрузки) более 120 секунд. В основном системный журнал. Кажется, что нет никаких других признаков неисправности диска (smartctl говорит, что все всегда было хорошо, за исключением времени, когда воздух на диске нагревался).
Я использую Linux 3.2; Я пытался вернуться обратно к 2.6.38, но безрезультатно.
Это диск? Файловые системы сошли с ума? Что еще я могу проверить?
2 ответа
В вашем случае вы говорите, что замена жесткого диска это исправило. Это хорошо. Однако, по моему опыту, хотя в последнее время я видел это только на ноутбуках, это чаще всего проблема аппаратного обеспечения sata на уровне материнской платы, а в случае с ноутбуками я никогда не был в состоянии исправить это. Смена диска не дала никакого эффекта, и, поскольку я видел только похожие симптомы на ноутбуках, я могу только предложить вам попробовать заменить диск, и если это не сработает, возможно, это материнская плата.
Между прочим, я несколько раз переустанавливал ОС и думал, что работал с глюками (которые случаются как в Windows, так и в каждой версии Linux, которую я использовал), но они, похоже, вернулись после нескольких периодов интенсивного использования, что заставило меня думать, что был тепловой компонент к аппаратному / чипсету-глюку.
(Это все при условии, что вы не просто переключали ядра, и поэтому в драйверах ядра есть некоторые проблемы, но, поскольку вы пробовали разные уровни ядра, это довольно четко соответствует моим недавним проблемам.)
Для чего это стоит, для того, кто найдет это, я хочу подвести итог.
Итог: это был, кажется, действительно был диск. Я заменил его, и все кажется нормальным.
По пути я нашел два интересных (и дешевых) чека:
1) Чтобы убедиться, что проблема не в моей собственной настройке ОС, я попытался сгенерировать некоторую активность на диске с live CD. Как и предполагалось, ввод-вывод был ужасным.
2) Чтобы убедиться, что проблема не только в файловой системе, я использовал свободное место на диске и попытался создать новую файловую систему. Это пошло ужасно медленно, и, кроме того, после того, как это закончилось, ОС даже не могла прочитать исполняемый файл "halt" с диска.
Третий тест, действительно более дорогой, который предложил Уоррен, - замена диска. Новый диск вроде бы в порядке.