Perché le operazioni di copia dei file in Linux diventano più lente nel tempo?


22

Ho 12 ~ 200 MB di file. La copia di uno di essi su un'altra unità richiede 20 secondi. Quando provo a copiarli tutti in una volta, dice prima che ci vorranno 5 minuti, poi continua a rallentare nelle ore e nei giorni.

Sto copiando i file tramite Thunar in XFCE, ma ricordo di aver avuto problemi simili usando la riga di comando. Perché ciò si verifica e cosa posso fare per rimediare, oltre a copiare i file uno per uno?


Hai controllato l'unità per errori? Questi file si trovano in sottocartelle?
tubaguy50035,

@ tubaguy50035 I file non si trovano in sottocartelle. Detto questo, è probabile che l'unità di origine possa avere errori. Controllerò.
Utente non trovato

@CodeGnome Ho fatto un cp -v sourcedir / * destdir di base.
Utente non trovato

Risposte:


25

Questo è un problema noto con il kernel Linux stesso che è noto da secoli, nessuno è stato ancora affrontato.

attualmente non esiste alcuna correzione o soluzione alternativa, oltre all'utilizzo di Windows che aumenta di velocità e quindi si normalizza. Trovo che questo bug sia un problema con priorità molto alta, ma i programmatori non si sentono allo stesso modo. È solo questo bug che sta iniziando a scacciarmi da Linux.

refs:


6
Citazione richiesta! Potrebbe esserci di aiuto una nostra risposta se potessi fornire della documentazione che punti a questo bug
Journeyman Geek


6
e qui, che può essere trovato come collegamento nella citazione originale. bugzilla.kernel.org/show_bug.cgi?id=12309
Dave,

Ti allontani da Linux solo per questo motivo ???
Kyrol,

1
@Kyrol questa è una ragione molto grande!
puk,

10

Dovresti provare rsync per monitorare la tua velocità di trasferimento. Per esempio:

rsync -PSauv sourcedir/* destdir/

Se vedi effettivamente un calo della velocità di trasferimento, a differenza dei file che sono solo grandi, allora devi guardare alcune altre cose.

  1. Se il disco è associato a I / O, si verificheranno problemi. Lo si vede spesso quando si scrive pesantemente su un'unità flash o un dispositivo USB esterno.

  2. Metti alla prova entrambi i tuoi dischi hdparm -Tt <device>per vedere se uno è notevolmente più lento di quanto dovrebbe essere, o drammaticamente più lento dell'altro dispositivo che può causare problemi di I / O.

  3. Controlla l' output di dmesg e lo stato SMART per assicurarti di non avere errori evidenti sul disco. È inoltre possibile considerare badblocks -nse si sospettano errori del disco su un'unità non SMART.

Esistono molti motivi per cui un disco può bloccarsi o funzionare in modo subottimale, ma fino a quando non puoi misurare il problema, non saprai quale sia il problema. :)


2

Ricorda che anche il processo di copia dei file è in qualche modo memorizzato nella cache di Linux. Se prendi un singolo file (anche se 200 MB) e inizi a copiarlo in un altro posto, Linux memorizza nella cache, con grande probabilità, l'intero file in memoria e lo scrive nella sua nuova posizione. Quindi, se si sceglie di copiare nuovamente quel file e con esso un mucchio di altri file, il primo file è già memorizzato nella cache e quindi probabilmente salta l'intera "parte di lettura", mentre gli altri vengono prima letti e poi scritti nelle loro fonti destinazioni /. Questa funzione può anche portare a velocità di trasferimento infinite e stranezze simili, quindi non fidarti di alcuna misurazione che potrebbe essere invalidata dai precedenti meccanismi di sfregamento.


-3

Masterizza una copia di SliTaz su un CD / USB.

È progettato per l'uso su macchine molto antiche e funziona molto velocemente poiché è nella RAM. Non è necessario eseguire un'installazione, basta eseguirla dal vivo. Se hai un USB montato, sarai in grado di vederlo e quindi copiare ciò che ti serve sul tuo computer. Le velocità di trasferimento che ho trovato stabili e veloci.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.