Я использую 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
свободно
nine@www:~$ free
total used free shared buffers cached
Mem: 524288 231104 293184 0 0 0
-/+ buffers/cache: 231104 293184
Swap: 0 0 0
Своп, вероятно, поможет. Проблема в том, что я не думаю, что мой VPS поддерживает добавление этого.
Попробуй сделать своп
nine@www:~$ sudo swapon /home/nine/swap.file
swapon: /home/nine/swap.file: swapon failed: Operation not allowed
Почему я думаю, что это проблема с памятью
У меня возник вопрос, почему я думаю, что это проблема с памятью. Это из-за того, что говорит мне панель управления для моего VPS. Существует таблица, которая показывает ошибки для машины, выглядит так:
resourcetype held maxheld limit failcnt
numiptent 24 24 800 0
numfile 1612 2324 4200 0
dcachesize 440391 547046 20480000 0
numothersock 104 139 6000 0
dgramrcvbuf 0 17224 262144000 0
othersockbuf 172272 442048 262144000 0
tcprcvbuf 114688 4962176 262144000 0
tcpsndbuf 122528 2177672 262144000 0
numsiginfo 0 3 256 0
numpty 1 3 32 0
numflock 6 13 4120 0
numtcpsock 7 34 6000 0
oomguarpages 14029 23497 131072 0
vmguarpages 0 0 131072 0
physpages 14029 23497 9223372036854776000 0
numproc 102 142 4000 0
shmpages 697 1993 512000 0
privvmpages 57818 131075 131072 51
lockedpages 0 0 8192 0
kmemsize 5566036 7796832 117760000 0
Следите за подсчетом сбоев для privvmages, которые, как я полагаю, показывают, когда память разрывается выше предела. Это подсчитывается всякий раз, когда я запускаю rsync.