Ho una situazione davvero strana qui. Il mio PC funziona bene, almeno nella maggior parte dei casi, ma c'è una cosa che non riesco a gestire. Quando provo a copiare un file dalla mia pendrive, va tutto bene:ho 16-19M/s, funziona abbastanza bene. Ma quando provo a copiare qualcosa sulla stessa pendrive, il mio PC si blocca. Il puntatore del mouse smette di muoversi per un secondo o due, poi si sposta un po' e si ferma di nuovo. Quando qualcosa sta suonando, ad esempio, in Amarok, il suono si comporta come una mitragliatrice. La velocità salta da 500K/s a 15M/s, una media di 8M/s. Ciò si verifica solo quando sto copiando qualcosa su una pendrive. Al termine del processo di copia, tutto torna alla normalità.
Ho provato di tutto:altra pendrive, una porta USB diversa sul pannello frontale o quelle porte dal retro, ho persino cambiato i pin USB sulla scheda madre (pannello frontale), ma non importa dove metto la mia chiavetta USB, è sempre la stessa. Ho provato diversi filesystem:fat32
, ext4
. Non ho problemi con il dispositivo su Windows, sul mio laptop. Deve essere il mio PC o qualcosa nel mio sistema. Non ho idea di cosa cercare. Sto usando Debian testing con Openbox standalone. Il mio PC è un po' vecchio:Pentium D 3GHz, 1GiB di RAM, disco WD Green da 1,5TB. Se hai qualcosa che potrebbe aiutarmi a risolvere questo problema, sarei felice di saperlo.
Non so quali altre informazioni dovrei fornire, ma se hai bisogno di qualcosa, chiedi pure, aggiornerò questo post il prima possibile.
Ho provato a riprodurre questo problema su Ubuntu 13.04 live cd. Ho montato la mia partizione crittografata + swap crittografato e ho collegato la mia pendrive a una porta USB. Successivamente ho provato ad avviare alcune app e ora ho circa 820 MiB di RAM e circa 400 MiB in SWAP. Non ci sono problemi con la copia, nessun congelamento, tutto è come dovrebbe essere. Quindi, sembra che sia un errore del sistema, ma dove esattamente? Cosa causerebbe un comportamento così strano?
Risposta accettata:
Stai usando una versione a 64 bit di Linux con molta memoria? In tal caso il problema potrebbe essere che Linux può bloccare per minuti grandi scritture su dispositivi lenti come per
esempio schede SD o chiavette USB. È un bug noto che dovrebbe essere corretto nei kernel più recenti.
Vedi http://lwn.net/Articles/572911/
Soluzione alternativa:come problema principale:
echo $((16*1024*1024)) > /proc/sys/vm/dirty_background_bytes
echo $((48*1024*1024)) > /proc/sys/vm/dirty_bytes
L'ho aggiunto al mio /etc/rc.local
file nelle mie macchine a 64 bit.
TANSTAAFL; questa modifica può (e probabilmente ridurrà) il throughput a questi dispositivi:è un compromesso tra latenza e velocità. Per tornare al comportamento precedente puoi
echo 0 > /proc/sys/vm/dirty_background_bytes
echo 0 > /proc/sys/vm/dirty_bytes
…quali sono i valori di default, il che significa che il comportamento di writeback sarà controllato dai parametri dirty_ratio
e dirty_background_ratio
.
Nota per le persone non così esperte con Linux:i file in /proc
sono pseudofile — solo canali di comunicazione tra il kernel e lo spazio utente. Non usare mai un editor per cambiarli o guardarli; ottieni invece un prompt della shell, ad esempio con sudo -i
(sapori Ubuntu) o su root
e usa echo
e cat
).
Aggiornamento 18/04/2016 sembra che, in fondo, il problema sia ancora qui. Puoi guardarlo su LWN.net, in questo articolo sulle code di writeback.