Dans les fichiers de service systemd, on peut définir les options liées à la planification suivantes (à partir de la systemd.exec
page de manuel , corrigez-moi si je me trompe):
Nice Définit le niveau de nice par défaut (priorité de planification) pour les processus exécutés. Prend un entier entre -20 (priorité la plus élevée) et 19 (priorité la plus faible). Voir setpriority (2) pour plus de détails.
Quel est le niveau agréable familier. Il semble que son effet soit quelque peu «subverti» en raison de la fonction «autogroupe» des noyaux Linux récents. Donc, les options ci-dessous peuvent être ce que je voudrais vraiment définir pour que les processus se comportent bien pour mon expérience de bureau.
CPUSchedulingPolicy Définit la politique de planification du processeur pour les processus exécutés. Prend l'un des autres, batch, inactif, fifo ou rr. Voir sched_setscheduler (2) pour plus de détails.
CPUSchedulingPriority Définit la priorité de planification du processeur pour les processus exécutés. La plage de priorité disponible dépend de la politique de planification du processeur sélectionnée (voir ci-dessus). Pour les politiques de planification en temps réel, un entier compris entre 1 (priorité la plus basse) et 99 (priorité la plus élevée) peut être utilisé. Voir sched_setscheduler (2) pour plus de détails.
CPUSchedulingResetOnFork Prend un argument booléen. Si la valeur est vraie, les priorités et politiques de planification du processeur élevées seront réinitialisées lorsque les processus exécutés se bifurquent et ne peuvent donc pas s'infiltrer dans les processus enfants. Voir sched_setscheduler (2) pour plus de détails. La valeur par défaut est false.
Je comprends la dernière option. Je comprends de l'explication des deux premiers que je peux choisir une politique de planification puis, étant donné cette politique, une priorité. Je ne sais pas très bien ce que je devrais choisir pour quel type de tâches. Par exemple, est-il sûr de choisir «inactif» pour les tâches de sauvegarde (relativement gourmand en CPU, car dédupliqué), ou un autre est-il mieux adapté?
En général, je recherche un aperçu compréhensible de chaque politique, de chacune de ses priorités et de son adéquation à des fins spécifiques. L'interaction avec le niveau agréable est également intéressante.
À côté de la planification du processeur, il y a la planification des E / S. Je suppose que cela correspond à ionice
(corrigez-moi si je me trompe).
IOSchedulingClass Définit la classe de planification d'E / S pour les processus exécutés. Prend un entier entre 0 et 3 ou l'une des chaînes aucune, en temps réel, au mieux ou au repos. Voir ioprio_set (2) pour plus de détails.
IOSchedulingPriority Définit la priorité de planification des E / S pour les processus exécutés. Prend un entier entre 0 (priorité la plus élevée) et 7 (priorité la plus basse). Les priorités disponibles dépendent de la classe de planification d'E / S sélectionnée (voir ci-dessus). Voir ioprio_set (2) pour plus de détails.
Nous voyons ici la même structure qu'avec la programmation CPU. Je recherche également le même type d'informations.
Pour toutes les options de «planification», les pages de manuel auxquelles je me réfère ne sont pas assez claires pour moi, principalement dans la traduction des choses au point de vue d'un utilisateur de bureau quelque peu technique.
nice
valeur s'applique).