LINUX.ORG.RU
ФорумAdmin

tar без кэша

 , , fadvise,


0

3

Имеется скрипт (не мой), который ежедневно бэкапит несколько терабайт данных. Объёмы данных потихоньку росли, и выяснилось, что сейчас этот скрипт полностью выкидывает из дискового кэша сотню гигов кэша приложения и приложение начинает нещадно тормозить.

Попробовал запустить программку nocache. Но у неё на здешнем сервере даже тесты не проходят. Сервер - RHEL 5.

Почитал я интернеты и офигел: In kernels before 2.6.18, POSIX_FADV_NOREUSE had the same semantics as POSIX_FADV_WILLNEED. This was probably a bug; since kernel 2.6.18, this flag is a no-op.

Можно ли в RHEL 5 как-то организовать бэкап данных без смс и регистрации загаживания кэша?

Рамы до терабайта клиент добить пока что не может.

★★★★★

только dump

Любой архиватор файлового уровня (tar, ...) будет читать файлы и они попадут в кеш.

anonymous
()

kernels before 2.6.18

bug

ну и что, зато стабильно и интерпрайзно

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

В более новых линуксах файлы необязательно попадают в кэш. Вроде как в rsync эту проблему решили. Опять же, в новых ядрах работает FADV_DONTNEED.

А где гарантия что dump не загадит кэш? Ядро же и чтение из /dev/sda кэширует.

alt-x ★★★★★
() автор топика
Ответ на: комментарий от tailgunner

Это, конечно, мысль. Но, может, можно без рута обойтись? Необходимость root'ового доступа добавляет мне на два порядка больше бюрократии.

alt-x ★★★★★
() автор топика
Ответ на: комментарий от alt-x

Зачем пустые измышления? Ты же мне здесь выдержки исходников из ядра не приводишь.

попробуй dump -0 -f /dev/null /dev/sda...

и посмотри watch -n1 'free -m'

anonymous
()
Ответ на: комментарий от tailgunner

Ну, можно написать LD_PRELOAD, который будет выполнять read в режиме direct IO :)

Думал об этом. Но, во первых это ж оно и readahead выключит. А во вторых, поди написал уже кто-нибудь?

alt-x ★★★★★
() автор топика
Ответ на: комментарий от anonymous

Да, ты прав. dump не кэширует. Но a) - ему нужен рут и б) чтобы его задействовать вместо tar, это ж мне придётся разбираться в стакилобайтном скрипте, который тут когда-то наваяли для бэкапа...

alt-x ★★★★★
() автор топика
Ответ на: комментарий от alt-x

оно и readahead выключит

Я думаю, что readahead втупую реализовать несложно.

А во вторых, поди написал уже кто-нибудь?

Наверное, но я не встречал. Гугл по-быстрому находит модуль, который оборачивает open, но мне кажется, что этого недостаточно - при direct IO у read и write есть требования по выравниванию.

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