( +17.90 14,7 -3.20 )

jbd2/md2-8, дисковая активность debian, высокий Wa, как удалить много файлов

Автор: south_park
Категория: Разное
jbd2/md2-8, дисковая активность debian, высокий Wa, как удалить много файлов

Данная статья никак не относится к Minecraft.
Сразу хочу сказать, что я нуб в администрировании серверов, но как следует из этой долгой истории данную проблему много кто не знает и не может быстро детектировать.

Уже оказывается долгое время наш сайт, а точнее сервер на котором он стоит преследует одна мелкая но пакостная проблема.

Все было давно, более года назад, этот сайт жил на vds (сервер с соседями) сервере колобриджа, система была дебиан или центос не помню точно.
Спустя какое то время сайт стал тормозить, просмотр top обнаружил высокий процент wa, (дисковая активность). (тогда я был совсем нуб нубом ololosha )
Простым языком все было нормально, но сервер не успевал читать и писать на диск информацию, отсюда шли тормоза.
Обвинив хостера и не добившись ничего от техподдержки(не детектировали проблему) я принял решение переезжать в хетзнер на свой сервер.

После переезда все было отлично, La - 0.2-0.5 и это при 40-60 тыс человек в день, я привык к дебиану и решил его использовать, ставил систему не сам, воспользовался ispmanager, панель сама все настроила, да и сама панель удобная. Все было в ажуре 4-5 месяцев, потом я заметил la 1-3 и временами 5, я не придал сильного значения, сайт не тормозил, спустя 1-2 недели la был уже 5-10 и временами 20, начались тормоза.

Изучение top опять детектировало высокую дисковую активность, вверху списка прыгал mysql, валил на него, крутил конфиги, безуспешно.

Тогда, я создал тему на форуме, и мне к сожалению не помогли, вызвался помочь человек с темой о администрировании серверов и многими отзывами.
Крутил сервер около 2 часов, настроил mysql, поставил прочую фигню и без которой все отлично работало.
Снизив на тот момент La с 15 до 7 (хотя он и так постоянно прыгал туда сюда).
При этом заметные тормоза сайта остались, этот недоадмин сказал что сервер слабый, винтам хана, давай мне мои заработанные 100$ Da-nu-nafig

Переехал на другую машину, аналогичную, проблема ушла, подумав на неисправность дисков (ведь хетзнер это лоухост) я забыл о сервере на 3 месяца...

И вот, настал тот миг, новый сервер, и снова проблема точь в точь. OhGod

Теперь я решил разбираться в сути проблемы, новая тема на форуме, и ура на форуме помогли, но еще раньше я сам случайно нашел проблему.


Долго курив интернет, поставив iotop я увидел злосчастный процесс jbd2/md2-8 который жрет всю дисковую активность(занимает диск).
Гуглив дальше узнал, что это журналирование файловой системы, и да оно бывает нагружает диск.
Начал курить как выключить жуналирование на debian, не нашел.
Обратился к системному администратору знакомого человека.
Он попытался ограничить данный журнал покрутив файл etc\fstab, проблема не ушла, человек сказал что винтам хана, переезжай скорее, хоть денег не взял. okey

Я уже был морально готов к очередной смене машины, но случайно зашел в заветную папку и понеслось...
Нашел ее случайно, ползал по папкам, заметил подозрительно много файлов и решил проверить.
Хотя ребята на форуме попросили вывод одной команды и когда я ее выполнил я бы тоже погуглив понял и нашел бы этот же источник гадости.

И так, проблема jbd2/md2-8 или дисковой активности, низкой производительности диска на debian является Directory index full.

Эта ошибка вызывается огромным количеством файлов в какой то директории, настолько огромным, что просто убивает диск нафиг, индексы кончаются журнал пишет о ошибках забивая дисковую активность.
Данная папка расположена в папке вашего пользователя и называется она mod-tmp, в ней хранятся временные файлы сессий(когда человек заходит на сайт, создается файл сессии), да да, "временные файлы" которые не хотят сами удаляться.
Это проблема Debian(возможно и других систем) установленного ispmanager, и она у многих, просто не у всех сайты с такой посещаемостью и чтоб накопить такое количество сессий необходимо 2-3 или более лет.

В моем случае в папке за 3 с небольшим месяца накопилось аж 19.4 миллиона файлов. с 6 утра и до 15.00 накопилось более 100 000 файлов, масштаб огромен.

Собственно необходимо удалить все файлы к чертям, но тут еще одна проблема, так просто не удалить, стандартные решения плохо работают и сильно нагружают диск, сайт лежит.

Теперь рекомендации как удалить много файлов из директории Debian не нагружая сервер

Все операции лучше проводить ночью, когда людей на ваших сайтах нет.

Начнем с подсчета количества файлов:
ls -R /var/www/ваш пользователь/data/mod-tmp | wc -l


Данная операция может затянуться на 10-15 минут и положить сайты.

Как удалить относительно небольшое количество файлов:

 find /var/www/ваш пользователь/data/mod-tmp/ -delete

Скорость удаления у меня, примерно 0.8-1 миллион файлов в час, при этом сайт сильно виснет, делал это ночью.
Удалить папку командой:
rm -r /var/www/ваш пользователь/data/mod-tmp2/

Лично у меня производительность была выше, удаляет примерно 2.5 млн за 1 час. Удаляет папку, по этому надо переименовать текущую, а на ее место создать новую.

Если вы запустили удаление, сайт повис, а вам надо отменить удаление, включить top, дождитесь процесса find и посмотрите его pid, после чего введите kill и его pid.

Если у вас уже как у меня LA под 10 или 20, чтоб снять нагрузку, переименуйте папку, а на ее место создайте другую такую же, с такими же правами, мне помогло, нагрузка тут же упала.

Способ по удалению файлов который предложил человек с форума: Ссылка на его тему

Команда:
cd /dir; ls -f /dir | perl -pe 'select(undef,undef,undef,0.5)' | xargs -n 100 rm


Где /dir адрес директории (полный), а 0.5 длинна задержки, чем меньше тем быстрее идет удаление.
Что бы посмотреть работает ли команда и узнать Pid процесса для остановки вводим команду:
ps aux |grep perl

Вы увидите часть вашей команды.
Если ввести команду в putty она перестанет выполняться после закрытия соединения, я добавил команду в крон(планировщик задач), не знаю почему но когда запустил и проверил выполнение, там оказалось два процесса, я завершил один и оставил так на несколько дней. Крон поставил на выполнение раз в год, если я остановил процесс, то просто запускаю в ручную.
После ручного завершения процесса удаления(оценить сколько файлов удалило) через 2-3 дня, у меня несколько минут грузил сервер процесс ls, видимо обновлял список файлов, не знаю, но всегда лучше делать это ночью когда сервер не нагружен.
Мой сервер нормально работал с La 1-3, без видимых тормозов с задержкой 0.1, ночью иногда включал с задержкой 0.03, удаляет быстро, но днем не потянет.

Скорость удаления с задержкой 0.1 примерно 1 миллион файлов в сутки.


Теперь как предотвратить накопление файлов:
Главное, вам надо удалить все текущие файлы сессий перед данной процедурой, а иначе он начнет чистить и положит вам сервер, например у меня он положил бы часов на 10 не меньше.

Необходимо создать файл /etc/php5/conf.d/session-gc.ini с содержимым:

session.gc_probability = 1
session.gc_divisor = 1000
session.gc_maxlifetime = 1440

Перезагрузить apache.
Все, проблема решена, более сессии копиться не будут. nerd

  1. Goldфаги

    11 октября 2013 07:45

    +14

    Очень много букаф ololosha
  2. Олдфаги

    11 октября 2013 07:50

    +2

    Сауз, у меня вопрос. В этот раздел можно пихать абсолютно все, что захочешь?
  3. Посетители

    11 октября 2013 09:16

    0

    cereal-guy-spitting Фигасе буковок
    За старания 5 мем! rainbow-face
  4. Картоделы

    11 октября 2013 09:20

    0

    fray очень полезная статья, раньше сталкивался с md2-8 но не так обширно
  5. Олдфаги

    11 октября 2013 09:27

    0

    Очень много текста ololosha Но 5 мем за старания и полезную информацию!
  6. HENTAI BOY

    11 октября 2013 10:06

    0

    Я конечно ничего из этого не понял,но у меня есть вопрос к Саузу,а его лс переполнено megafffuuu .
    Может здесь он меня увидит.
    Привет.У меня небольшая проблемка.Мне дали бесплатный VPS.Я закконектился к нему с помощью Putty.Устанавливаю обновления ОС...Норм.Джава... и в это время коннект обрывается.Я думал дело в Джаве,но нет.Коннект стабильно прерывается каждые 5 мин после использования.Потом законнектиться к серверу нельзя минимум 10 мин.А дальше всё заново.Подскажи пожалуйста в чём проблема?Потому что бесплатный VPS?Или у меня хреновый интернет?VPS дали на Host1Free.Помоги пожалуйста.
  7. Администраторы

    11 октября 2013 14:31

    +5

    Stairdeck А зачем ставить обновления? Я этого никогда не делал, это не винда чтоб нажать кнопку и все поставилось, есть несовместимости и прочая лажа.
    По всей видимости ssh отваливается так как сервер виснет, уходит в своп, а подключиться ты можешь только когда его проглючит.
    Включай top и смотри что происходит перед зависанием LA, что нагружено, какие команды выполняются и сколько ресурсов потребляют.

    Yarrow1107 В пределах разумного и полезного.
  8. XXXL ПХЛ

    11 октября 2013 14:38

    -5

    как много букафок ololosha
  9. HENTAI BOY

    11 октября 2013 15:00

    0

    Цитата: south_park
    Stairdeck А зачем ставить обновления? Я этого никогда не делал, это не винда чтоб нажать кнопку и все поставилось, есть несовместимости и прочая лажа.
    По всей видимости ssh отваливается так как сервер виснет, уходит в своп, а подключиться ты можешь только когда его проглючит.
    Включай top и смотри что происходит перед зависанием LA, что нагружено, какие команды выполняются и сколько ресурсов потребляют.

    pacan

    Цитата: south_park
    Включай top и смотри что происходит перед зависанием LA, что нагружено, какие команды выполняются и сколько ресурсов потребляют.

    Я ничего на него не вешал,он должен быть тупо ничем не нагружен
  10. Просто хорошие люди

    11 октября 2013 17:13

    -4

    Война и мир и то меньше чем эта статья...А хотя nravitsa
  11. Олдфаги

    12 октября 2013 19:55

    -1

    south_park,
    Можете удалите не сколько ваших ПС? (ЛС)
  12. Администраторы

    25 октября 2013 21:14

    +1

    Vaha9 пиши в ВК
  13. HENTAI BOY

    10 января 2015 18:50

    0

    Спустя некоторое время набрался опыта и понял, что ты написал. Спасибо, думаю инфа ещё пригодится.
  14. ТруЪ Олдфаги-с

    7 марта 2016 06:57

    0

    Слооожно
Для написания комментария зарегистрируйся на сайте, это займет всего пару минут, голосуй за новости, зарабатывай репутацию.

Последние сообщения с форума

Название темы
Статистика
Последнее сообщение

Просмотров: 61

Ответов: 5

Просмотров: 136

Ответов: 2

Просмотров: 154

Ответов: 1

Просмотров: 140573

Ответов: 674

Просмотров: 384

Ответов: 5

  • Ru-minecraft.ru
  • »
  • Разное
  • »
  • jbd2/md2-8, дисковая активность debian, высокий Wa, как удалить много файлов