У нас есть веб-сайт, который в настоящее время обслуживает 3-5 миллионов просмотров страниц. Наш сайт является сайтом для обмена файлами, поэтому он содержит 250 000 файлов и несколько тысяч символических ссылок.
Жесткий диск - это диск SATA емкостью 1500 ГБ.
С помощью hdparm
мы узнали, что скорость нашего жесткого диска была снижена до 15-20 МБ / с, что было 80 МБ / с.
Итак, теперь мы хотим бежать fsck
чтобы исправить проблему с диском.
fsck
решит этот вопрос?fsck
принять до завершения (просто мы хотим рассчитать время простоя, которое у нас будет)?Снижение скорости следует ожидать по мере увеличения количества файлов, к которым осуществляется одновременный доступ. Жесткие диски не любят параллельный доступ: каждый раз, когда головка чтения / записи должна переключать цилиндры, вы теряете несколько миллисекунд. Даже если два файла находятся на одном цилиндре или даже на одной дорожке, вам все равно может потребоваться дождаться поворота, чтобы перейти от одного к другому. Если вы измеряете производительность диска в мегабитах в секунду, ожидайте, что она будет падать экспоненциально по мере увеличения параллельного доступа.
fsck
в этом не поможет: он только исправляет повреждение структуры каталогов, он не выполняет никакой оптимизации.
Идеальным решением было бы перейти на твердотельное хранилище, поскольку оно не имеет физических ограничений, связанных с вращающимися пластинами. Но это, вероятно, непомерно дорого.
Следующим лучшим вариантом будет использование RAID, оптимизированного для параллельного доступа. Имейте в виду, что RAID-массивы можно настроить для различных профилей производительности, поэтому вам потребуется некоторое время, чтобы изучить настройки любого оборудования и драйверов RAID.
Вы можете уменьшить проблему, используя агрессивное кэширование файловой системы. Если в вашей системе достаточно ОЗУ, Linux уже неплохо справляется с этим. Запустите программу вроде top
чтобы узнать, сколько там свободной оперативной памяти. Но если наиболее часто используемые файлы не помещаются в ОЗУ (или любой другой ОЗУ, которую вы, вероятно, приобретете), это не поможет.
Обход бедняка - разделить ваши файлы на несколько разных физических жестких дисков (а не только на разные разделы на одном диске). Это не совсем долгосрочное масштабируемое решение, и в конечном итоге оно обойдется вам дороже, чем приличный RAID. Но это может быть быстрое решение, если у вас есть диски.
Для любого решения, связанного с жесткими дисками, убедитесь, что они имеют высокую скорость вращения и низкую задержку поиска.
Я написал статью с некоторыми общими сведениями о производительности жестких дисков здесь:
Я ожидаю 5 часов для завершения fsck.
Вместо этого я бы рассмотрел (что означает: тестирование, тестирование и тестирование) переход на reiserfs.
hdparm выполняет последовательное чтение. Как говорили другие парни, ваш диск файлового сервера должен много искать.
Если вы получаете ошибки HD, они должны появиться где-нибудь в вашем / var / log /.
Почему бы вам не попробовать «smartctl -t short / dev / sda», а затем «smartctl -t long / dev / sda» ?? ... На большинстве новых жестких дисков вы можете выполнить эту команду даже при использовании HD . Смарт даст вам результат. Вы можете узнать о состоянии жесткого диска с помощью "smartctl --all / dev / sda" ..
Если вы отправляете hdparm на жесткий диск, который смонтирован с одновременным доступом, это может быть ответом, почему ваши результаты намного меньше, чем раньше.
Мне нужно как можно скорее переместить ваши данные в RAID-массив.