Nei file di servizio di systemd, è possibile impostare le seguenti opzioni relative alla pianificazione (dalla systemd.exec
pagina man , correggimi se sbaglio):
Nice Imposta il livello di default predefinito (priorità di pianificazione) per i processi eseguiti. Prende un numero intero compreso tra -20 (priorità più alta) e 19 (priorità più bassa). Vedi setpriority (2) per i dettagli.
Qual è il bel livello familiare. Sembra che il suo effetto sia "sovvertito" in qualche modo a causa della funzione "autogruppo" dei kernel Linux recenti. Quindi le opzioni di seguito potrebbero essere ciò che vorrei davvero impostare per mantenere i processi comportarsi bene per la mia esperienza desktop.
CPUSchedulingPolicy Imposta il criterio di pianificazione della CPU per i processi eseguiti. Ne prende uno, batch, inattivo, fifo o rr. Vedi sched_setscheduler (2) per i dettagli.
CPUSchedulingPriority Imposta la priorità di pianificazione della CPU per i processi eseguiti. L'intervallo di priorità disponibile dipende dal criterio di pianificazione della CPU selezionato (vedere sopra). Per le politiche di pianificazione in tempo reale è possibile utilizzare un numero intero compreso tra 1 (priorità più bassa) e 99 (priorità più alta). Vedi sched_setscheduler (2) per i dettagli.
CPUSchedulingResetOnFork Accetta un argomento booleano. Se è vero, le priorità e i criteri di pianificazione della CPU elevati verranno reimpostati quando i processi eseguiti si biforcano e non possono quindi passare nei processi figlio. Vedi sched_setscheduler (2) per i dettagli. Il valore predefinito è false.
Capisco l'ultima opzione. Dalla spiegazione dei primi due desidero che posso scegliere una politica di pianificazione e quindi, data tale politica, una priorità. Non mi è del tutto chiaro cosa dovrei scegliere per quale tipo di attività. Ad esempio, è sicuro scegliere "inattivo" per le attività di backup (relativamente intensivo per la CPU, perché deduplicato), oppure è un altro più adatto?
In generale, ottenere una panoramica comprensibile di ciascuna politica, con ciascuna delle sue priorità e l'idoneità per scopi specifici è quello che sto cercando. Anche l'interazione con il bel livello è interessante.
Accanto alla programmazione della CPU, c'è la programmazione IO. Immagino che ciò corrisponda a ionice
(correggimi se sbaglio).
IOSchedulingClass Imposta la classe di pianificazione I / O per i processi eseguiti. Prende un numero intero compreso tra 0 e 3 o una delle stringhe none, realtime, best-effort o inattivo. Vedere ioprio_set (2) per i dettagli.
IOSchedulingPriority Imposta la priorità di pianificazione I / O per i processi eseguiti. Accetta un numero intero compreso tra 0 (priorità più alta) e 7 (priorità più bassa). Le priorità disponibili dipendono dalla classe di pianificazione I / O selezionata (vedere sopra). Vedere ioprio_set (2) per i dettagli.
Qui vediamo la stessa struttura della programmazione della CPU. Sto cercando anche lo stesso tipo di informazioni.
Per tutte le opzioni di "Pianificazione", le pagine man di riferimento non sono abbastanza chiare per me, soprattutto nel tradurre le cose in un punto di vista dell'utente desktop un po 'incline tecnicamente.
nice
applica il valore).