Il sistema si blocca / non risponde / inutilizzabile quando si copiano file di grandi dimensioni su USB


51

Ieri stavo copiando un singolo file da 8 GB su USB con una velocità di scrittura lenta di 7 MB / s, mentre la mia RAM è di 3 GB. Durante la copia del sistema si è bloccato, al punto da non riuscire nemmeno a spostare il cursore.

Sono riuscito ad accedere alla console di testo, ed eseguito iotop, ha dimostrato che un processo chiamato kswapd0stava prendendo il 99,99% di IO.

Esistono soluzioni alternative, quindi la copia di un file di grandi dimensioni non rende il mio sistema inutilizzabile?


14
Questo bug è così ridicolo ...
king_julien,

Sì, succede non solo con Ubuntu ma anche con altri gusti Debian. Ho visto anche lo stesso problema in Kali Linux e Parrot OS. Kali ha lo scenario peggiore, mentre il pappagallo lo rende liscio ma anche se si blocca per dimensioni molto grandi. Penso che sia il problema nel kernel Linux e come è scritto. Questo è e rimarrà l'incubo peggiore di Linux di tutti i tempi.
Mohith7548,

Risposte:


34

Secondo questo bug report l' ho risolto aggiungendo le seguenti righe

vm.dirty_background_ratio = 5
vm.dirty_ratio = 10

in /etc/sysctl.conf

e in esecuzione

sudo sysctl -p

12
Vuoi spiegare cosa fanno le righe sopra?
nsane,

3
@ nisargshah95 scusa, ma non ne ho idea,
cercati

4
@ nisargshah95 I dettagli del problema sono spiegati nei due articoli LWN collegati in unix.stackexchange.com/a/107722/52205
Rmano,

1
Grazie, ho appena scoperto che il mio Ubuntu 16.04 non può scrivere due file da 1,4 GB su USB senza queste due righe, mi sono congelato per ore, questo problema risolto, a chi importa cosa fa, a volte vuoi solo copiare i file e spostare sopra.
Mike,

1
Ho avuto valori 5 e 60. Questi controllo la percentuale di memoria utilizzata per le operazioni, mentre dirty_background_bytese dirty_bytesutilizzare assoluti valori byte. Ho risolto questo problema con la seconda risposta, ma per renderlo persistente aggiungilo a sysctl.conf, vedi questa risposta . Quindi, quando si utilizzano valori percentuali, modificarli durante l'aggiornamento della memoria.
PeterM,

20

Ho riscontrato un problema simile. Il mio è Ubuntu 14.04 a 64 bit. Quindi dopo una lunga lotta ho trovato una risposta che risolve il mio problema. Per un facile utilizzo ho aggiunto i seguenti comandi utilizzati nella risposta sopra menzionata . Controlla la risposta per una spiegazione dettagliata.

echo $((16*1024*1024)) > /proc/sys/vm/dirty_background_bytes
echo $((48*1024*1024)) > /proc/sys/vm/dirty_bytes

Dopo aver utilizzato il sistema di comando sopra ha iniziato a lavorare normalmente sulla copia dei file.

Grazie a @Rmano .


2
Le impostazioni del rapporto non sono state utili sul mio sistema 12.04 con una condivisione NAS lenta. Ma dopo aver impostato i byte direttamente come suggerito qui, il mio sistema è nuovamente utilizzabile durante la copia sul NAS.
lunedì

6
Questa domanda ha 3 anni e questo è ancora necessario per evitare di ottenere un sistema inutilizzabile durante la copia su pendrive. Alcune informazioni: se il pendrive è formattato usando un file fs Linux come ext4, ciò non accade. Quando ho detto "sistema inutilizzabile" intendo sul serio, il puntatore del mouse non risponde e devi insistere per spostarlo sullo schermo, guardare il monitor di sistema e non vi è alcun uso anomalo delle risorse. Le persone del kernel usano tutte CPU e unità SSD Intel di sesta generazione? Come mai non se ne accorgono durante i test.
Hatoru Hansou,

3
@HatoruHansou Mi sento lo stesso, ho appena installato Debian Stretch fresco e questo errore è presente anche qui. So che non dipende dalla distribuzione, ma dai sorgenti del kernel, ma dagli uomini, come mai questo non è ancora stato risolto?
Marecky,

1
@Marecky Dopo alcune letture sembra che i dirty_bytes non siano solo una cosa USB. Influiscono su tutti gli I / O, quindi dopo aver fatto l'eco si sta cambiando il sistema globale, non solo per i pendrive. Solo per la sessione attuale, penso. Sembra che i valori attuali del kernel siano ottimizzati pensando ai dispositivi di archiviazione più recenti. I pendrive lenti soffrono come effetto collaterale. Siamo spiacenti, nessun collegamento, ma questo deve essere facile da trovare cercandolo su Google.
Hatoru Hansou,

3
Vedi questa risposta per renderla persistente
PeterM

5

Riscontro un problema simile con il blocco del sistema durante la copia su un'unità flash. Ho inviato una segnalazione di bug al riguardo: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1267648

Come soluzione alternativa ho scoperto che disabilitare lo swap elimina completamente il problema.


1
Sfortunatamente questo non ha funzionato per me su Ubuntu 16.04.
Programster,

Non ha funzionato neanche per me su Ubuntu 16.04.3 LTS - questo su un laptop Alienware 17 R2.
AnthonyK,

4

Sì, ci sono impostazioni del kernel che puoi modificare specificando quanti dati devono essere contrassegnati come scritti prima che vengano effettivamente scritti su disco. Guarda qui per una descrizione abbastanza completa di loro. In particolare, vorrai trovare un valore di dirty_ratio che funzioni bene per te (è generalmente troppo alto per desktop / laptop per impostazione predefinita, ma non esiste un numero magico che funzioni per tutti).


2
Ehi, potresti suggerirmi quali numeri devo impostare in base alle specifiche del mio laptop? fare riferimento a askubuntu.com/questions/713723/…

2

Ho avuto esattamente lo stesso problema (nel 2019), su Ubuntu 19.10, durante la copia di un gran numero di file dal disco USB al disco SATA. Entrambi i filesystem sono ext4. Quando ho disattivato lo scambio, il problema è scomparso. Sembra un bug nell'allocazione della memoria per i buffer del disco - apparentemente, il kernel cerca di allocare quanta più memoria per i buffer del disco, in tale situazione, il che non ha senso (rendendo i buffer del disco in scambio ...), oppure calcola erroneamente la dimensione della memoria che può essere utilizzata per la memorizzazione nella cache ...


Qualcuno delle soluzioni qui ha funzionato per te? Ho iniziato a soffrire di questo problema anche dopo l'aggiornamento a 19.10 e nel processo anche l'aggiornamento del kernel. Nel mio caso, questo accade quando copio un file di grandi dimensioni dalla partizione A alla B dello stesso SSD. La disabilitazione di SWAP "risolve" il problema.
pileofrocks

1

Ho avuto problemi simili durante la copia di file su exfatun'unità. Ho avuto meno problemi nell'usare un ext4filesystem sul mio disco rigido USB.


1
Aveva questo problema anche su ext4
PeterM,

Fedora 27 (kernel 4.17.5-100) copia da ruggine rotante collegata a USB a chiavetta USB collegata. Questo sembra arrivare fino al congelamento dello screenlocker a metà dissolvenza. :-( ~~~
David Tonhofer,
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.