Quando scarico un database MySQL di grandi dimensioni (il suo dump pesa circa 10 GB)
– appare sul disco quasi immediatamente, ma poi, in seguito, quando il kernel
decide di scaricarlo sul disco, il server quasi stalls e altre richieste di IO
richiedono molto più tempo per essere completati anche se mysqldump viene eseguito con ionice -c3,
quindi l'uso di ionice non ha effetti reali.
Artem
Quando scrivi i dati nella cache della pagina, non c'è nessun campo per memorizzare la priorità IO. Quindi ionice
non avrà alcun effetto. Ho ragione?
La mia ultima versione del kernel è 4.18.16-200.fc28.x86_64
.
Risposta accettata:
Sì.
In teoria, ionice ti consente di dare la priorità all'IO di un comando nel modo in cui nice(1) dà la priorità teorica all'utilizzo della CPU. Questo sarebbe un modo pratico per consentire, ad esempio, a una compilazione grande ma relativamente importante di macinare in background senza intralciare il tuo uso interattivo della macchina.
(Perché sì, ogni tanto ricompilo Firefox dal sorgente.)
[…]
Il problema successivo è che anche quando viene eseguito direttamente su un disco, ionice
non fa nulla per de-priorizzare l'IO di scrittura asincrono. Questa è, beh, la maggior parte dell'IO di scrittura che la maggior parte dei programmi eseguirà. Ionice può rallentare le scritture sincrone (non ho un programma di test) e funziona sicuramente per le letture, ma questo è tutto.
https://utcc.utoronto.ca/~cks/space/blog/linux/IoniceNotes