GNU/Linux >> Linux Esercitazione >  >> Linux

Linux – Ionice non ha alcun effetto sulle scritture non sincronizzate (ovvero le scritture normali)?

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


Linux
  1. Come fa un programma a decidere se avere o meno stampe a colori?

  2. Linux Setuid non funziona?

  3. In `mentre Ifs=Leggi..`, perché Ifs non ha alcun effetto?

  4. Linux – Udev non rinomina il dispositivo USB Ethernet?

  5. Linux:in che modo Linux assegna numeri di inode a filesystem non basati su inode?

Linux:perché Locale Es_mx funziona ma non Es?

Linux – Il dispositivo Eth0 non sembra essere presente, ritardando l'inizializzazione?

Linux:perché Rsync su Linux non conserva tutti i timestamp (ora di creazione)?

Linux – Ldd non trova il percorso, come aggiungere?

Perché pr_debug del kernel Linux non fornisce alcun output?

Perché questa espressione regolare non funziona su Linux?