В настоящее время у меня проблема с небольшим сервером Linux, который предоставляет службы обмена файлами для четырех 32-разрядных клиентов Windows 7. Сервер представляет собой AMD PhenomX3 с двумя дисками Western Digital 10EADS (1 ТБ), подключенный к материнской плате Gigabyte GA-MA770T-UD3 и работающий под управлением Ubuntu Server 10.04.1 LTS.
Клиентским машинам требуется очень много времени для доступа / передачи данных на файловом сервере. Приложения часто перестают отвечать при попытке открыть файлы, расположенные удаленно, или одна программа, пытающаяся открыть файл, но вынужденная ждать, вообще не позволит другому программному обеспечению получить доступ к сетевым ресурсам. Другие примеры включают одно изображение, для открытия которого требуется 20 секунд или более, и в одном случае пользователь ждал 110 секунд, пока Microsoft Word 2007 сохранит документ.
Сначала я думал, что проблема связана с сетью, но, похоже, это не так. Все кабели и переключатели были протестированы (был заменен один кабель) для проверки. Это было дополнительно подтверждено при закрытии всех клиентских машин и перезагрузке сервера, в результате чего индикатор жесткого диска постоянно светился во время процесса запуска. В течение первых 15 минут во время загрузки, входа в систему и после входа в систему (без подключенных клиентских машин) система показывала среднюю загрузку 4 или выше. Симптомы включали ожидание в течение нескольких минут появления запроса на вход в систему, а затем несколько минут ожидания запроса пароля после ввода имени пользователя. После входа в систему также потребовалось более 45 секунд, чтобы страница руководства «smartctl» появилась после того, как была введена команда «man smartctl». После 15 минут такого поведения средняя нагрузка упала до 0,02, и машина вела себя нормально.
Я также считал, что проблема связана с жестким диском, однако диагностические программы не обнаруживают проблем с диском. Western Digital DLG, Spinrite и SMARTUDM не демонстрируют никаких отклонений от нормы - диски в исправном состоянии с точки зрения оборудования.
До сих пор мне не удалось найти причину этой проблемы, поэтому я очень благодарен за любую помощь.
Запрошенная информация:
Вывод "бесплатно"
hxxp: //pastebin.com/mfsJS8HS (тупой спам-фильтр)
Команда 'hdparm -d / dev / sda1' сообщает: Ошибка HDIO_GET_DMA: неподходящий ioctl для устройства (в BIOS установлено значение AHCI - я, вероятно, должен был упомянуть об этом).
Отвечая на мой собственный вопрос, выясняется, что один из жестких дисков в системе действительно неисправен, но, как я первоначально указал, ни одна из обычных диагностических программ не обнаружит неисправность. В конце концов, разочаровавшись, я скопировал все критически важные данные с сервера и поместил два диска в две идентичные настольные системы, над которыми я работал и пытался установить Linux. Один работал нормально, но другой почти всегда зависал во время форматирования диска. Замена диска, заблокированного во время форматирования, решила проблему, но мне все еще не удалось определить конкретную ошибку. Western Digital все равно заменила привод.
Похоже, вы убедились, что физическая сетевая инфраструктура работает нормально. Вы исключили проблему конфигурации? Некоторые вещи, которые я бы попробовал в вашей ситуации:
Если бы это не была «современная» Ubuntu, я бы сказал, что на вашем жестком диске отключен DMA; проверить с hdparm
. Если память мне не изменяет, должно быть hdparm -d1
но вы можете сначала проверить страницу руководства.
Возможно, у контроллера, который вы используете для диска, по умолчанию не включен DMA, и он полагается на ЦП для ввода-вывода?
Другое дело, что на жестком диске может быть некоторый параллелизм; или больше нет места подкачки.