我的 Linux 服务器有 4 个 CPU。我安装了 mysql,并且有 CPU 密集型任务在后台全天候 24/7 运行。对每个进程使用 CPU 亲和性有什么好处吗?例如:
1 CPU = background task/daemon
2 CPU = background task/daemon
3 CPU = background task/daemon
4 CPU = mysql
每个后台任务在任何给定时间占用高达 80% 的 CPU。
更新: 我的任务是 lxml 解析器 (python)。
最佳答案
我会看看您的流程在做什么。如果调度程序不断将任务切换到不同的核心/CPU,那么您可以通过将它们锁定到特定的核心/CPU 来获得性能提升。好处在于不必每次都在两个内核/CPU 之间进行昂贵的上下文切换。
如果您没有看到这种情况发生,那么我认为当调度程序可能发现需要将它们随机排列时,没有必要将它们锁定到特定的核心。
如果您正在寻找更具体的答案,您应该研究一下您的 Linux 内核使用的调度程序以及它如何调度进程。一旦您了解了它是如何安排它们的,那么使用配置/标志可能会有所帮助,这样它就可以很好地处理您所有的后台繁重任务。但请记住,如果您做的事情过于极端,您将面临进程/线程不足、运行时间极长或总体性能不佳的巨大风险。
关于python - mysql服务器的CPU亲和性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12149570/