LINUX.ORG.RU

Разархивировать файл


0

0

У меня есть дамп базы данных MySQL в gzip-архиве, занимающий 1.4 Гигабайта, архив занимает 450 Мегабайт.

Хочу это все залить на виртуальный хостинг. Залил архив, но не могу разархивировать (пытаюсь через SSH gunzip-ом), где-то в районе 600 Мегабайт процесс постоянно кем-то убивается... Скорее всего каким-то роботом...

Предложите варианты, как можно залить этот дамп в БД, чтобы не сильно загружать процессор сервера, чтобы ни у одного guard-а не было мыслей о том, что мой процесс нужно убить.

Спасибо.

anonymous

попробуй выставить приоритет пониже.

man nice

stray
()

cat dump.sql.gz | ssh user@server "gunzip -c | mysql ..."

sdio ★★★★★
()

Попробуйте так:

cat <файл>.gz | { A=0; I=0; while (( ! $A )); do dd bs=4096 count=1 2>/tmp/res; cat /tmp/res | grep -q 1; A=$?; usleep 5000; done } | gzip -dc > <в файл>

Чем больше значение usleep -- тем меньше нагрузка на процессор.

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

Да и Marmirus, правильно говорит:
Посмотрите
$ ulimit -a
Может там вообще время выполнения ограничено?
Хотя с другой стороны при любом таком ограничении должно быть сообщение о превышении на консоль.. Он у ва с там вообще ничего не говорит? Безмолвно завершается? Или "killed"?

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

говорит Killed.

ulimit -a
core file size          (blocks, -c) 200000
data seg size           (kbytes, -d) 200000
file size               (blocks, -f) unlimited
pending signals                 (-i) 16383
max locked memory       (kbytes, -l) 32
max memory size         (kbytes, -m) 200000
open files                      (-n) 100
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 20
virtual memory          (kbytes, -v) 200000
file locks                      (-x) unlimited

пока ничего понять не могу... Пробую по разному...

anonymous
()

ну, лимиты есть, но, вроде как не должны они в данном случае тебе жизнь портить. но, как видим, портят. Killed. мое предположение - либо gunzip начинает жрать память больше разрешенных ~200мегабайт. data seg size, max memory size (это врядли). либо файлов слишком много одновременно открывается (только 100 разрешено одновременно открыть). больше ничего особо криминального не вижу в лимитах. можешь попробвать как-то выяснить, какой лимит превышается, допустим, банально запустить top в процессе распаковки, попробвать посмотреть логи (если есть доступ) /var/log/messages, например. dmesg, lsof -uTVOJ_USER_NAME | wc -l может еще кто что-то подскажет.

P.S. а что за ОС выдает такой ответ на ulimit -a?

Marmirus ★★
()

скорее всего, мешает тебе именно лимит на количество открытых файлов, ибо просто заходя по ssh на машину с FreeBSD, набираю lsof -umarmirus | wc -l получаю 59

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