On 13/03/2020 08:10, Matteo Bini wrote: > Su Unix & Linux Stack Exchange ho trovato questa soluzione [1], > eseguire come root i seguenti comandi: > echo $((16*1024*1024)) > /proc/sys/vm/dirty_background_bytes > echo $((48*1024*1024)) > /proc/sys/vm/dirty_bytes
> Nonostante abbia letto attentamente la risposta dell'utente non ho capito > cosa dovrebbero fare, però ho deciso di provarli lo stesso. Sono, in parole povere, le dimensioni dei buffer di scrittura usati dal kernel. Il primo è praticamente (usando i parametri che hai settato tu) "se il computer è scarico, tieni una cache in scrittura di 16 MB, poi scrivi su disco". Il secondo è "se il computer è impegnato, tieni una cache di 48 MB, poi scrivi su disco". Il risultato è che ogni 16 MB (nel tuo esempio), il kernel sospende l'applicazione che sta cercando di fare la copia, riversa il buffer sulla chiavetta, e poi la lascia continuare. Per questo la copia "sembra" più lenta ma, alla fine, hai poca roba da scrivere. Se la tua chiavetta scrive a 2 MB/sec, con 16 MB di buffer la puoi espellere dopo 8 secondi al massimo. Di default i buffer sono infiniti, quindi il kernel ottimizza al massimo: copi un file di 2 GB e il kernel non fa niente, perché il file è ancora lì e la chiavetta ha un buffer infinito, quindi aspetta finché non lo obblighi a fare qualcosa. Per esempio, cancellare il file originale costringe il kernel a leggerlo e copiarlo nel buffer, e lanciare un "sync" (o smontare la chiavetta) costringe a svuotare il buffer (e quindi a leggere il file originale). Se lavori spesso con dispositivi esterni non è male come soluzione, e personalmente non ci vedo problemi a renderla permanente.