Ar trebui să folosesc compresia rsync pe o rețea LAN gigabit? (Administrarea sistemului, Rețea, Rsync, Rețea Locală, Transfer De Fișiere, Compresie)

Corey Goldberg a intrebat.

În mod normal, folosesc opțiunea -z din rsync pentru a activa compresia atunci când transfer fișiere pe internet. Cu toate acestea, dacă mă aflu pe propria mea rețea LAN gigabit (inactivă), mai doresc compresie? Sau va fi mai rapid fără ea? De ce factori depinde acest lucru? (Nu am făcut încă niciun benchmark).

Deci, practic, este mai rapid să: comprimăm + transferăm + decomprimăm, sau doar să transferăm necomprimat?

Dacă conexiunea de rețea este lentă, este evident că este mai bine să comprimi… dar cum rămâne dacă totul funcționează pe o rețea gigabit ethernet?

4 răspunsuri
Zoredache

În timpul unui transfer rsync ești legat de CPU sau legătura este saturată.

  • Dacă link-ul este saturat, dar CPU-ul este inactiv, atunci comprimați.
  • Dacă CPU-ul tău este la maxim, iar legătura ta nu este, atunci nu comprimați.

Comentarii

  • pot accesa utilizarea CPU doar la un capăt al rsync, dar asta ar trebui să fie suficient. pot măsura traficul de încărcare de la un capăt și pot vedea și traficul general de la routerul meu. asta ar trebui să mă ajute să ajung undeva. mulțumesc mult! –  > Por Corey Goldberg.
  • Oh, și este foarte posibil să nu fie nici CPU, nici legat de REȚEA. Ați putea fi limitat de performanța subsistemului de stocare. În acest caz, compresia sau nu va face cu adevărat nici o diferență. Singura modalitate de a remedia acest lucru este să cumpărați un disc mai rapid. –  > Por Zoredache.
  • Acest lucru ar putea fi prea evident, dar voi sublinia faptul că ar trebui să luați în considerare ce tip de date trimiteți și dacă are sens să comprimați. Dacă trimiteți o grămadă de fișiere de jurnal, la naiba, da, întotdeauna comprimați. Trimiteți formate de fișiere deja comprimate, cum ar fi JPEG, MP3, MKV sau chiar ZIP? Compresia în timpul transferului este probabil inutilă. –  > Por pzkpfw.
ewwhite

Lucrez destul de des cu acest lucru, migrând date între servere și în timpul unor transferuri de date imposibil de lungi…

Răspunsul scurt este să testați cu specificul date specifice… Acest lucru este foarte ușor de făcut. Încercați un transfer LAN cu compresia dezactivată, apoi încercați cu compresia activată…

Din experiența mea cu seturi de date de producție în câteva medii, pe o conexiune GigE sau mai mare, activarea compresiei rsync a limitat transferurile la ~40 Megabytes/secundă (sau 33% din viteza maximă teoretică a unei legături Gigabit).).

Această rată a variat în funcție de dimensiunea și numărul de fișiere transferate, de asemenea (o mulțime de fișiere mici, de exemplu, a scăzut rata de transfer rsync globală). Subsistemele de stocare ale expeditorului și ale destinatarilor au contat, de asemenea,.

Recent, am folosit un rsync modificat pentru transferuri LAN. Prin utilizarea biblioteca UDR cu rsync (permite transferul UDP) și dezactivând compresia și criptarea, pot obține transferuri rsync la viteza firului cu tipuri de fișiere mixte, indiferent de numărul de fișiere.

Comentarii

  • Presupun că acest lucru ar putea fi îmbunătățit prin reducerea nivelului de compresie la 1, sau poate puțin mai mare. Încă nu am găsit teste care să discute această opțiune. –  > Por William T Froggard.
pokemaster

Așa cum a spus Zoredache, dacă linkul tău nu este saturat nu există -z. De asemenea, un alt lucru pe care îl puteți lua în considerare pentru a ajuta la gestionarea transferurilor lungi este steagul bwlimit.

Comentarii

  • Conform manualului, bwlimit flag allows you to specify the maximum transfer rate for the data sent over the socket. Ați putea explica de ce această funcționalitate ajută la gestionarea transferurilor lungi? –  > Por Samuel Li.
mivk

Câteva detalii pentru a completa răspunsul de la Zoredache:

  • Utilizați top pe mașini pentru a verifica utilizarea CPU. În special pe mașina de trimitere. Utilizați ssh pentru a ajunge la expeditor dacă acesta este la distanță.

  • Folosiți rsync cu opțiunea --progress dacă aveți fișiere suficient de mari pentru a arăta viteze semnificative. Dacă fișierele sunt în mare parte mici, este posibil să nu vă spună prea multe despre viteza rețelei. În acest caz …

  • Utilizați nload pe una dintre mașini pentru a vedea viteza rețelei

Și dacă aveți dubii, nu comprimați.

Majoritatea fișierelor mari sunt de obicei deja comprimate (filme, imagini, programe de instalare, …), așa că încercarea de a le comprima mai mult este o pierdere de timp.