2010-11-08

pozitronik: (Default)
2010-11-08 04:43 pm
Entry tags:

Ещё один день, ещё одна победа

Маленькая рабочая зарисовочка.
На вверенный мне в подчинение сервачок (виртуальный сервер, под win2003) сливаются по FTP кой-какие логи, примерно по 12-15 гигов за сутки. Файлики разбиты по восемь мегабайт, итого по полторы-две тысячи файлов в сутки. Всё пишется в один каталог.
Кроме этого на серваке крутится апач, база данных и несколько самодельных серверов, в общем, без нагрузки он не простаивает.
Ну работает он и работает, всё ОК.
Но логи, о которых я в начале сказал, просто так хранить неудобно. И весят они много, и с кучей файлов неудобно работать. Что нужно сделать? Пожать, благо голый текст же.
Ок, пишу небольшой скриптик, который берёт все файлы за день, скармливает их в rar, а после архивации удаляет. Тестирую, всё отлично работает.
Запускаю на рабочем серваке в тест - всё отлично, первый архив выпекается за полчаса.
Запускаю снова - всё тормозит ппц как, ожидаемое время создания одного архива - три часа... пять часов... Загрузка CPU и памяти - в пределах нормы, загрузка диска - тоже.
Но тормозит всё капец как, даже листинг каталогов в файловом менеджере минуту читается. После ребута снова так - первый прогон начинается нормально, но потом вдруг всё опять начинает тормозить, иногда даже до завершения архивации. Копирование или даже перемещение файла - считанные байты в секунду, независимо от способа копирования.
Запускаю менеджер производительности, тыкаюсь в статистику загрузки дисков - огромные задержки при записи. Но при этом в менеджере процессов у всех задач нагрузка на диск не больше и не меньше, чем обычно, и даже суммарно не должна представлять никаких проблем.

Подумать над тем, что послужило причиной тормозов, и как это обнаружить, я предоставляю вам. Всю необходимую информацию я в посте дал. Комменты скринятся, правильный ответ опубликую завтра.
UPD: Упустил из вида немаловажную деталь - тормоза начинаются после перезагрузки вне зависимости от того, запускается ли архивация, или нет. Т.е. чуть-чуть поработает, а потом бдыщ - и тормозит.

Ответ под катом )