Вычищаем mod-tmp
Запись от RinatV размещена 07.01.2013 в 04:01
Под новый год купили новый сервер, т.к. за месяц до этого случился непонятный обвал более слабого сервера, удачно переехали, вроде работает норм. Решил удалить на старом сервере замести все следы, последовательно удаляя программы, пользователей. Только вот при удалении пользователей случился какой то завис, гугл показал что в директории mod-tmp пользователей оказывается скапливается большое количество сессионных файлов php. Их нужно переодически чистить, что и видимо явилось причиной больших нагрузок на сервер. В принципе с удалением файлов в Linux проблем нет, стоит только перешагнуть через rf -rf mod-tmp/, но эта команда не неинтерактивная, она молча удалит все файлы. Однако при удалении 5 милионов мелких файлов это молчание выглядит как зависание, есть конечно и другие рецепты команд, но все они расчитаны а запуск по расписанию в cron без эха. Мне было интересней увидеть как все это происходит, в этом мне помог ruby, по скорости конечно не очень, зная особенности системы можно наверняка и побыстрей это делать, допустим запуском нескольких потоков, собственно вот код:
Код:
105000 +26.415262997 mod-tmp/sess_3121561d6d09c577e39ca46ccdfc3a66 106000 +5.780714248 mod-tmp/sess_9d2088fbfad3dab0ef69073fcab876b7 107000 +5.846447822 mod-tmp/sess_6e8328858731d3ef86bbe81e603384f8 108000 +5.794790207 mod-tmp/sess_33cd1a077b222a3dbf0a9b7ade8ea431 109000 +5.269644683 mod-tmp/sess_e909798c803cd2ab03e68659b06fb6dc |
Всего комментариев 2
Комментарии
-
Запись от turbanoff размещена 09.01.2013 в 14:46 -
php долго не выдерживаю.
В bash не нашел интерактивного варианта для копипаста, сам эффективные варианты пока сочинять не умею. ls сперва создаст список, который недождаться, find видимо делает тоже самое, т.к. эффекта после запуска с опциями -delete не видно по отчету df -i. Передачу по xargs или же просто rm не испытывал, пока эти возможности для меня неочевидны.
Приведенный способ интерактивен, эффект сразу есть, правда скорость не такой высокий к сожалению 5000 файлов в минуту, что сравнимо с Midnight Commander, хоть и происходит некое ускорение со временем, но со временем 26 секундные интервалы увеличиваются и начинают следовать друг за другом, видимо сказывается или журналирование или обнадеживание RAID, но в этих вопросах разбираться уйдет времени более 10 часов, такое время проработал скрипт, хотя должно было проработать больше.
А с ruby получил желаемый результат за 3 минуты, отчет написал через 21 минуту
С пулом потоков тоже испытывал, правда ускорения никакого нет видимоRuby 1 2 3 4 5
Welcome to IRB. You are using ruby 1.9.3p362 (2012-12-25) [i386-mingw32]. Have f un ;) >> 109000 / 5000 #=> 21 >> 5*10**6 / 5000 / 60 #=> 16 >>
Запись от RinatV размещена 14.01.2013 в 14:15
Обновил(-а) RinatV 14.01.2013 в 14:18