Dites à 'nice' d'arrêter +19 processus si la charge est> = 1

3

J'ai remarqué que mon ordinateur ralentissait lorsque la charge augmentait au-delà de 1 (c'est-à-dire, le premier nombre après "load average:" dans la commande "uptime").

Les processus lourds (tels que rsync) font souvent monter la charge au-dessus de 1, même si je leur refuse la priorité la plus basse (+19). Les renommer aide un peu, mais pas beaucoup.

Puis-je dire à nice (ou à un autre programme) d'arrêter complètement (kill -STOP) tous les processus +19 lorsque la charge augmente au-dessus de 1 (et de reprendre lorsque la charge diminue à 0,75 ou quelque chose du genre)?

barrycarter
la source
charge moyenne ne signifie pas particulièrement grand chose… c'est juste le nombre de processus en cours d'exécution dans des intervalles de temps spécifiques. Une charge de 1,0 ne signifie pas que le système est complètement occupé, mais au moins un processus en cours d'exécution à tout moment. Il pourrait s'agir de 20 processus exécutés chacun pendant 5% du temps.
Oh, je sais. J'ai vu la charge moyenne atteindre 120 fois (le système ne répondait plus du tout). Quelqu'un m'a dit un jour que ce nombre indiquait le pourcentage de CPU utilisé (avec 120% possible parce qu'Unix foutait cela de la même façon qu'ils fouillaient en "df"), mais je pense maintenant que ce n'est pas vrai. Je viens de constater personnellement que mon système devient lent lorsque la charge moyenne passe à 1,50, par exemple.
barrycarter

Réponses:

1

FreeBSD a une classe de processus IDLE - voir la page de manuel rtprio (1) - vous pouvez donc attribuer une priorité IDLE à rsync pour qu’il n’obtienne pas de tranches de temps lorsqu’un processus normal est actif.

http://www.freebsd.org/cgi/man.cgi?query=rtprio&apropos=0&sektion=0&manpath=FreeBSD+8.2-RELEASE&arch=default&format=html

Linux a ionice (1) pour le planificateur CFQ io: http://linux.die.net/man/1/ionice Concept très similaire, mais pour les E / S.

Mikhail Kupchik
la source