我的Linux服务器有 4个CPU 。我安装了 mysql ,并且我在后台运行24/7的CPU重任务。我有什么优势可以为每个进程使用CPU亲和力?例如:
1 CPU = background task/daemon
2 CPU = background task/daemon
3 CPU = background task/daemon
4 CPU = mysql
每个后台任务在任何给定时间都占用高达80%的CPU。
更新: 我的任务是lxml解析器(python)。
答案 0 :(得分:1)
我会看看你的流程在做什么。如果调度程序不断将任务切换到不同的内核/ CPU上,那么您可以通过将它们锁定到特定的内核/ CPU来查看性能增益。这样做的好处是不必每次都在两个内核/ CPU之间进行昂贵的上下文切换。
如果您没有看到这种情况发生,那么当调度程序可能需要将它们随机播放时,我认为不需要将它们锁定到特定的核心。
如果您正在寻找更具体的答案,那么您应该研究Linux内核使用的调度程序以及调度进程的方式。一旦你了解它如何安排它们,使用配置/标志可能是有益的,这样它可以很好地适应所有背景繁重的任务。但请记住,如果你做任何过于极端的事情,你就会面临过程/线程匮乏,极长运行时间或一般性能不佳的巨大风险。