Rsync nicht genügend Speicherplatz

2072
Niclas Nilsson

Ich verwende ein VPS (mit Debian) mit 512 MB RAM. Ich versuche, einige Dateien lokal auf dem Server mit rsync zu kopieren, aber diese Meldung schlägt schnell fehl:

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] 

Es sind nur 113 MB Dateien (10.000 davon). Es scheitert jedoch lange vor dem Erreichen all dieser Dateien.

Ich glaube, das liegt am begrenzten Speicherplatz, aber es scheint, als sollte ich genug sein? Gibt es einen Weg, um das zu umgehen? Könnte ich rsync eine Datei als Speicherstapel verwenden lassen?

Update auf Anfrage

Rsync-Befehl

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 

kostenlos

nine@www:~$ free total used free shared buffers cached Mem: 524288 231104 293184 0 0 0 -/+ buffers/cache: 231104 293184 Swap: 0 0 0 

Swap würde wahrscheinlich helfen. Das Problem ist, dass ich glaube, mein VPS unterstützt das Hinzufügen nicht.

Versuchen Sie, einen Umtausch durchzuführen

nine@www:~$ sudo swapon /home/nine/swap.file  swapon: /home/nine/swap.file: swapon failed: Operation not allowed 

Warum ich denke, es ist ein Gedächtnisproblem

Ich habe die Frage, warum ich denke, dass es ein Gedächtnisproblem ist. Es liegt daran, was mir die Systemsteuerung für meine VPS sagt. Es gibt eine Tabelle, in der Fehler für die Maschine angezeigt werden. Sie sieht folgendermaßen aus:

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 

Sehen Sie sich die Anzahl der Fehler für Privilegien an, die meines Erachtens zeigen, wenn der Speicher über den Burst-Grenzwerten liegt. Das zählt, wenn ich Rsync laufe.

3
Könnten Sie den `rsync`-Befehl, den Sie verwenden, die Ausgabe von` ulimit -a` hinzufügen und haben Sie ein Swap-Setup (`free`)? Paul vor 11 Jahren 1
@ Paul: Ja, fertig :) Niclas Nilsson vor 11 Jahren 0
Warum brauchen Sie Unterstützung, um Swap hinzuzufügen (was wahrscheinlich helfen wird)? Obwohl ich es nicht langfristig tun würde, könnten Sie eine Auslagerungsdatei mit der Zeile "dd if = / dev / zero von = / path / to / swap.file bs = 1M count = 512; mkswap / path / to erstellen und aktivieren /swap.file; swapon /path/to/swap.file "von einem Shellprompt. (Dadurch wird eine 512-Megabyte-Auslagerungsdatei erstellt. Der Parameter count erhöht oder verringert diese Zahl.) davidgo vor 11 Jahren 0
Hmm. Sieht mit Grenzwerten recht normal aus, und 10.000 Dateien sollten nur etwa 1 MB groß sein, daher ist Speicher vorhanden. Sind beide Verzeichnisse auf dem lokalen Computer? Wie @davidgo sagt, können Sie den Swap mit einer Swap-Datei ziemlich einfach einrichten, es ist also einen Versuch wert. Paul vor 11 Jahren 0
Warum glauben Sie eigentlich, dass das Problem die Erinnerung ist? (Obwohl es die beste Methode ist, etwas zu tauschen, impliziert nichts in Ihrem Beitrag ein Speicherproblem.) davidgo vor 11 Jahren 0
@davidgo: Ich habe meine Frage überarbeitet, um zu zeigen, warum es meiner Meinung nach ein Speicherproblem ist und warum Swap nicht funktioniert. Niclas Nilsson vor 11 Jahren 0
OK. Es tut mir leid, ich kann nicht mit virtualisierten Maschinen von opvnVZ / Virtuozzo helfen - ich habe nur Erfahrung mit vollständiger Virtualisierung. Von Googling aus scheint es eine Einschränkung Ihrer Virtualisierungsumgebung zu sein - um ehrlich zu sein, was ich erstaunlich fand. (Wenn ich eine virtuelle Maschine kaufe, erwarte ich damit, was ich will.) Ich frage Ihren Host nach dem Grund, warum Ihr System freien Speicher meldet, Sie können jedoch nichts relativ einfaches tun - und auf einen VM-Anbieter umsteigen, der Sie nicht daran hindert, Swap zu verwenden. davidgo vor 11 Jahren 0
OK. Wenn ich einen Anbieter in meinem eigenen Land haben möchte (was natürlich nicht notwendig sein sollte), hat dieser einen guten Ruf und ist für unsere nicht kommerzielle Organisation ziemlich billig. Aber ich denke, ich muss das vielleicht überdenken. Niclas Nilsson vor 11 Jahren 0

1 Antwort auf die Frage

2
Mukunth

rsync benötigt mehr Speicher, wenn mehr Dateien vorhanden sind.

Teilen Sie die Dateien entweder in separate Ordner auf und rsync sie oder tAR alle 10.000 Dateien am Quellspeicherort und rsync die 10000.tar mit Ihren vps und entpacken Sie sie dann.

Ich weiß nicht, ob dieses Problem in der neuesten Version (3.1) behoben wurde, aber es war ein Problem mit früheren Versionen.