Effektiv Kopiering af 5 Millioner Små Filer på Gigabit-Netværk: Bedste Metoder og Tips

Hvordan kopieres cirka 5 millioner små filer (5-30k) i en enkelt mappe til en anden maskine på samme gigabit-netværk uden at opleve betydelig nedgang i hastighed, som det sker med rsync?

At kopiere cirka 5 millioner små filer effektivt på et gigabit-netværk uden betydelig nedgang i hastighed kan opnås ved at bruge metoder som tar og netcat, parallel rsync, scp med tar, rsync med --whole-file flaget, eller asynkron filoverførsel med lsyncd.

Hvordan kopieres cirka 5 millioner små filer (5-30k) i en enkelt mappe til en anden maskine på samme gigabit-netværk uden at opleve betydelig nedgang i hastighed, som det sker med rsync?

At kopiere et stort antal små filer effektivt kan være udfordrende, især når man bruger værktøjer som rsync, der kan opleve betydelig nedgang i hastighed. Her er nogle alternative metoder og tips til at kopiere cirka 5 millioner små filer på et gigabit-netværk uden at opleve betydelig nedgang i hastighed:

1. Brug af Tar og Netcat

En effektiv metode er at kombinere tar og netcat (nc) for at streame filerne over netværket:


# På kilde maskinen
tar cf - /path/to/source | nc -l -p 12345

# På destination maskinen
nc source_machine_ip 12345 | tar xf - -C /path/to/destination

Denne metode pakker filerne i en enkelt strøm, hvilket reducerer overhead og forbedrer hastigheden.

2. Brug af Rsync med Parallelisme

Hvis du foretrækker at bruge rsync, kan du øge hastigheden ved at køre flere rsync-processer parallelt:


# Eksempel på et bash script til parallel rsync
for i in {1..10}; do
  rsync -avz --ignore-existing /path/to/source/ user@destination:/path/to/destination/ &
done
wait

Dette script starter 10 parallelle rsync-processer, hvilket kan forbedre hastigheden betydeligt.

3. Brug af SCP med Tar

En anden metode er at bruge scp sammen med tar for at kopiere filerne:


# På kilde maskinen
tar czf - /path/to/source | ssh user@destination "tar xzf - -C /path/to/destination"

Denne metode komprimerer filerne, hvilket kan reducere den samlede overførselstid.

4. Brug af Rsync med --whole-file Flag

Rsync's standardindstilling er at bruge delta-overførsel, hvilket kan være ineffektivt for mange små filer. Brug --whole-file flaget for at kopiere hele filer:


rsync -avz --whole-file /path/to/source/ user@destination:/path/to/destination/

Dette kan forbedre hastigheden ved at undgå delta-beregninger.

5. Brug af Asynkron Filoverførsel

Overvej at bruge asynkron filoverførsel med værktøjer som lsyncd, der kan overvåge filsystemet og synkronisere ændringer i realtid:


# Installer lsyncd og konfigurer det til at overvåge og synkronisere mappen
lsyncd -rsyncssh /path/to/source/ user@destination:/path/to/destination/

Denne metode kan reducere belastningen ved at synkronisere ændringer løbende.

Ved at anvende en af disse metoder kan du effektivt kopiere et stort antal små filer over et gigabit-netværk uden at opleve betydelig nedgang i hastighed.

Opret din første opgave på få minutter

Spar dig selv for besvær og kom igennem din to-do liste i dag

1

Beskriv din opgave

2

Modtag bud

3

Få løst din opgave

opgaver platform services

Møbelsamling

Hjælp med at samle Ikea klædeskab

opgaver platform services

Maler

Klargøring af lejlighed til flyttesyn

opgaver platform services

Flyttehjælp

Flytning af 150 kvm hus til Roskilde fra København

opgaver platform services

Havearbejde

Beskæring af 4 større træer

opgaver platform services

IT support

Geninstallering af windows + programmer

opgaver platform services

Elektriker

Installation af Sonos musikanlæg i hus

opgaver platform services

Rengøring

Ugentlig rengøring af lejlighed (114kvm)

opgaver platform services

Flyttehjælp

Flytning af 150 kvm hus til Roskilde fra København

opgaver platform services

Elektriker

Opsætning af lamper i stue og soveværelse

opgaver platform services

Catering

3-retters menu til 14 mennesker