J'essaie d'exécuter un tas de scripts liés à un serveur de jeux dans Terminator. Le seul problème est que lorsque je fais cela, Terminator détecte tous mes cœurs de processeur et les retards du PC. Y a-t-il un moyen de le démarrer mais de le faire croire que je n'ai qu'un seul cœur de processeur?
28
Réponses:
Ce n'est pas
terminator
que l'on fait le "spreading" sur tout le CPU d'un processus donné. Linux lui-même (le noyau) fait cela. Une tâche (processus) est planifiée comme disponible pour s'exécuter sur tous les processeurs par défaut; s'il utilise des threads, il peut utiliser plus d'un processeur à la fois.Pour restreindre un processus à un processeur spécifique, vous utilisez la commande
taskset
.Cette commande force my_command à s'exécuter uniquement sur les CPU # 1 ou # 2.
Pour en savoir plus, tapez
man taskset
ou recherchez «affinité CPU Linux» ( cliquez d' abord ici ).la source
kernel.sched_autogroup_enabled = 0
à/etc/sysctl.conf
pour le faire fonctionner. Cependant, j'ai également constaté que 13.10 paniquait fréquemment le noyau lors du démarrage, si l'autogroupe était désactivé.Bien qu'une autre réponse ait déjà donné la réponse littérale, j'explorerais la possibilité que cela ne soit pas fait de la bonne façon. Au lieu de cela, vous devez exécuter un script que vous ne souhaitez pas ralentir l'ordinateur (tels que des scripts non interactifs) à l'aide de la
nice
commande.Pour ce faire, il suffit de préfixer la commande que vous souhaitez exécuter avec nice, par exemple:
nice command_to_run
Cela entraînera la priorité du programme par rapport aux autres tâches et ne ralentira pas votre machine. J'utilise souvent cette technique lors d'une longue compilation qui autrement ralentirait mon PC à une analyse, cela a l'avantage de permettre au programme d'utiliser tous les cœurs lorsque la machine n'est pas occupée mais arrêtera rapidement de les utiliser lorsque vous exécutez quelque chose autre.la source
taskset nice open terminator
pour utiliser les deux. Cependant, cela sera exagéré car vous utiliserez deux programmes différents pour obtenir l'un et l'autre l'effet de réduire l'utilisation des ressources du programme.