J'essaie d'exécuter une série de scripts liés à un serveur de jeu dans Terminator. Le seul problème est que lorsque je le fais, Terminator détecte tous les cœurs de mon processeur et les retards du PC. Y a-t-il un moyen de le démarrer mais je le fais croire que je n'ai qu'un seul cœur de processeur?
Ce n'est pas terminator
qui effectue la "propagation" sur tous les processeurs d'un processus donné. Linux lui-même (le noyau) le fait. Une tâche (processus) est planifiée comme disponible pour être exécutée par défaut sur tous les processeurs; s'il utilise des threads, il peut utiliser plus d'un processeur à la fois.
Pour limiter un processus à une CPU spécifique, utilisez la commande taskset
.
taskset --cpu-list 1,2 my_command
Cette commande force my_command à s'exécuter uniquement sur les CPU n ° 1 ou n ° 2.
Pour en savoir plus, tapez man taskset
ou recherchez "affinité du processeur linux" (premier résultat ici ).
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 (par exemple des scripts non interactifs) à l'aide de la commande Nice
.
Pour ce faire, il suffit de préfixer la commande que vous souhaitez exécuter avec Nice, par exemple: Nice command_to_run
Ceci entraînera une dé-hiérarchisation du programme par rapport aux autres tâches et ne ralentira pas votre ordinateur. J'utilise souvent cette technique lors d'une compilation longue qui autrement ralentirait mon PC, cela a l'avantage de permettre au programme d'utiliser tous les cœurs lorsque la machine n'est pas occupée, mais l'arrêtera rapidement de les utiliser lorsque vous exécutez quelque chose. autre.