Limiter le CPU / RAM dans tous les processus pour debian

0

Chaque fois que j'exécute des tâches intensives en CPU / RAM, je ne peux pas utiliser mon ordinateur, il se fige jusqu'à ce que la tâche soit terminée. Je cherchais un moyen de limiter les ressources par processus pour tous les processus.

c’est-à-dire qu’aucun des processus ne dépasse les 25% d’UC ou 3 Go de RAM.

Merci

heailraiser
la source
Je suppose que vous êtes sur un processeur monocœur?
Frank Thomas
quad core i3 cpu
heailraiser
Dans ce cas, une seule tâche occupée ne devrait pas verrouiller les autres threads / processus, et même si la tâche était massivement multi-threadée, les tranches de temps Linux entre les processus actifs (à l'aide d'un planificateur) afin que tout le monde ait son tour, pour ainsi dire. Les priorités pour les processus sont définies par ce qu'on appelle la gentillesse, qui peut constituer la meilleure solution à votre problème. Je vous recommande de regarder belle et renice'ing. Cela dit, le comportement que vous décrivez me préoccupe car je ne suis pas certain que le problème réside dans l'utilisation du processeur en soi. Si vous souhaitez limiter les processus arbitraires, consultez cyberciti.biz/faq/cpu-usage-limiter-for-linux
Frank Thomas

Réponses:

1

Limiter tous les processus à une limite arbitraire pourrait ne pas être aussi bénéfique que vous pourriez le penser initialement.

Comme l'a souligné un commentaire, vous pouvez limiter le processeur , mais en fonction du processus, il peut être préférable de définir simplement le niceparamètre du processus (également appelé priorité du processus). Cela permettra au processus de fonctionner à plein régime lorsque vous lisez un site et n’utilisez aucun processeur, mais cédez le passage à votre navigateur dès qu’il doit commencer à utiliser le (s) processeur (s) pour tout JavaScript (en tant que exemple).

Une autre option consiste à définir l' affinité CPU du processus. Cela permet au système d'exploitation d'exécuter le processus uniquement sur un cœur de processeur spécifique, laissant les 3 autres (dans votre cas) libres pour tout ce qui pourrait en avoir besoin. C'est bien lorsque votre processus est un processus à un seul thread (comme un processus de codage vidéo ou un processus de construction de source, par exemple); vous pouvez définir l'affinité avec le 1er cœur de processeur et vous en avez 3 autres au repos (jusqu'à leur utilisation).

Et il y a aussi ulimit, que vous pouvez utiliser pour définir des limites strictes et strictes ou RAM / CPU (bien que cela soit à l'échelle du système et pas par processus).

Il convient de noter que la limitation de votre RAM peut avoir des conséquences inattendues (comme l'utilisation de swap) et que vous devez plutôt essayer la nicevaleur, l'affinité du processeur ou le ulimittemps processeur avant de limiter la RAM. La RAM n’est pas comme le processeur, car plus son utilisation dégraderait les performances globales du système; au contraire, les performances du système ont tendance à augmenter lorsque davantage de RAM peut être utilisée et vous ne devriez remarquer une baisse de performance que si la zone de swap doit être utilisée sur la RAM (car le swap est généralement basé sur un disque et les ordres de grandeur sont plus lents que la RAM), et si vous remarquez que beaucoup de zones d'échange sont utilisées avec un tas de RAM libre, puis il se passe quelque chose d'autre qui doit être résolu (comme un paramètre de noyau).

J'espère que cela peut aider.

txtechhelp
la source