[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Scrittura e smontaggio USB



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.


Reply to: