LINUX.ORG.RU
решено ФорумAdmin

Архивирование больших дирикторий (миллионы файлов) на продакшн сервере

 , , ,


2

3

В какой-то момент появилась необходимость заархивировать дириктории гигантских размеров на работающем сервере. При попытке простого использования архиватора tar выявилась проблема: безбожно грузился жёсткий диск, не давая работать важным процессам. Поэтому было принято решение написать скрипт по архивации.

Написав такой скрипт, появилось желание поделиться (чего добру пропадать). Вот ссылка на сабж:

https://gist.github.com/taroved/11269983

(Тестировалось на ubuntu 11.04 и 12.04)

Важные особенности:

1. В нем используется Pipe Viewer, который выполняет основную работу. Он ограничивает скорость чтения с диска и отображает прогресс бар, что является неоценимой пользой, поскольку процесс архивации может занимать несколько дней.

2. Скрипт кладет запакованные архивы в поддиректории вида «год» либо «год/месяц» (в зависимости от параметров скрипта).

PS: Это уже вторая версия. Предыдущая версия была освещена здесь: http://habrahabr.ru/sandbox/81541/

PPS: Если кто скажет, на каком ресурсе еще можно засветить подобный стаф, буду премного благодарен. Ну и здорово вообще услышать какой-нибудь отзыв от знающих людей



Последнее исправление: taronto (всего исправлений: 1)
Ответ на: комментарий от Dron

Спасибо, пригодится.

Для того и делаем

taronto
() автор топика
Ответ на: комментарий от ei-grad

чувак просто уперся в /dev/urandom...

Напиши свой тест :)
Я ссылочку выше на лекцию яндекса давал, там тоже утверждают, что ionice не работает

xorik ★★★★★
()
Ответ на: комментарий от xorik

ionice не работает. Совсем.

ну у кого-то может не работает, но в моем случае позволяет несколько ограничить нагрузку от скрипта бэкапа. без него система входит в стопор из-за io, запросы к апачу отваливаются по таймауту, la доходит до 20-30; а с ним la до 8, апач отвечает медленно, но довольно стабильно в пределах 10 секунд, что всяко лучше таймаутов. но в целом правда в том что медленный диск, кучу файлов и линукс ничем особо не победить, хотя немного помогает хороший запас оперативки.

тут еще говорили про ls и find, из личной практики: видел такое что ls -l бежит около часа, просто ls минут 10, а find - секунд 10. с тех пор ls стараюсь не использовать без нужды. равно как и nfs.

prizident ★★★★★
()
Ответ на: комментарий от prizident

в моем случае ionice позволяет несколько ограничить нагрузку от скрипта бэкапа

походу ionice помогает, но пока не ясно как и когда

видел такое что ls -l бежит около часа, просто ls минут 10, а find - секунд 10. с тех пор ls стараюсь не использовать без нужды

ls -l выдает больше информации чем find, да еще и сортирует, поэтому и дольше. По моим тестам ls -U1 (это вывод чисто названия) и find не отличаются по скорости, но возможно я заменю ls на find для простоты. Но надо проверить вначале, ведь этот скрипт и для старых фрагментирванных файлов предназначен, а там могут быть нюансы

taronto
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.