Я использую VPS (запущенный Debian) с 512 Мб оперативной памяти. Я пытаюсь скопировать некоторый файл локально на сервере с помощью rsync, но это быстро не удается с этим сообщением:
rsync: writefd_unbuffered failed to write 5 bytes to socket [sender]: Broken pipe (32) rsync: connection unexpectedly closed (13505 bytes received so far) [sender] rsync error: error in rsync protocol data stream (code 12) at io.c(601) [sender=3.0.7]
Это всего 113 МБ файлов (из них 10.000). Но он терпит неудачу задолго до достижения всех этих файлов.
Я полагаю, что это из-за ограниченной доступной памяти, но кажется, что мне должно быть достаточно? Есть ли способ обойти это? Могу ли я заставить rsync использовать файл в качестве стека памяти?
Обновление по запросу
команда rsync
rsync -av /srv .
ulimit -a
nine@www:~$ ulimit -a core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited scheduling priority (-e) 0 file size (blocks, -f) unlimited pending signals (-i) 16382 max locked memory (kbytes, -l) 64 max memory size (kbytes, -m) unlimited open files (-n) 1024 pipe size (512 bytes, -p) 8 POSIX message queues (bytes, -q) 819200 real-time priority (-r) 0 stack size (kbytes, -s) 8192 cpu time (seconds, -t) unlimited max user processes (-u) unlimited virtual memory (kbytes, -v) unlimited file locks (-x) unlimited
У меня возник вопрос, почему я думаю, что это проблема с памятью. Это из-за того, что говорит мне панель управления для моего VPS. Существует таблица, которая показывает ошибки для машины, выглядит так:
Следите за подсчетом сбоев для privvmages, которые, как я полагаю, показывают, когда память разрывается выше предела. Это подсчитывается всякий раз, когда я запускаю rsync.
Не могли бы вы добавить команду `rsync`, которую вы используете, вывод` ulimit -a` и есть ли у вас какие-либо настройки подкачки (`free`)
Paul 11 лет назад
1
@Paul: Да, готово :)
Niclas Nilsson 11 лет назад
0
Зачем вам нужна поддержка для добавления свопа (что, вероятно, поможет)? Хотя я не буду делать это в долгосрочной перспективе, вы можете создать и включить файл подкачки со строкой "dd if = / dev / zero of = / path / to / swap.file bs = 1M count = 512; mkswap / path / to /swap.file; swapon /path/to/swap.file "из shellprompt. (это сделает файл подкачки в 512 мегабайт, параметр count увеличит или уменьшит этот показатель)
davidgo 11 лет назад
0
Хм. Выглядит довольно стандартно с ограничениями, и 10000 файлов должны быть только около 1 МБ, поэтому есть память. Оба каталога находятся на локальной машине? Как говорит @davidgo, вы можете довольно легко настроить своп с помощью файла подкачки, так что стоит попробовать.
Paul 11 лет назад
0
На самом деле, почему вы думаете, что проблема в памяти? (Хотя лучше всего поменять местами, ничто в вашем посте не подразумевает проблемы с памятью)
davidgo 11 лет назад
0
@davidgo: я обновил свой вопрос, чтобы показать, почему я думаю, что это проблема с памятью и почему своп не работает.
Niclas Nilsson 11 лет назад
0
Хорошо. Извините, я не могу помочь с виртуальными машинами opvnVZ / Virtuozzo - у меня есть только опыт полной виртуализации. С точки зрения Google это, по-видимому, является ограничением вашей среды виртуализации - если честно, я нашел ее поразительной. (Если я куплю виртуальную машину, я ожидаю, что смогу делать с ней то, что хочу). Я бы задал вопрос вашему хосту о том, почему ваша система сообщает о свободной памяти, но вы не можете сделать что-то относительно простое - и посмотрите на переход к поставщику виртуальных машин, который не мешает вам использовать своп.
davidgo 11 лет назад
0
Хорошо. Если я хочу поставщика в своей стране (что, конечно, не нужно), у него хорошая репутация, и он довольно дешев для нашей некоммерческой организации. Но, наверное, мне придется переосмыслить это.
Niclas Nilsson 11 лет назад
0
1 ответ на вопрос
2
Mukunth
rsync takes more memory when there are more files.
Either split the files in separate folders and rsync them, or TAR all the 10,000 files at source location and rsync the 10000.tar to your vps and then untar it.
I don't know whether this problem is addressed in the latest version (3.1), but it was an issue with earlier versions.