我有一个有 32 个逻辑核心(16 个物理核心和启用超线程)的服务器,上面有 8 个 redis 实例。似乎只有16个核心,id从0到7和16到23被使用,其他16个核心闲置。它显示任何 redis 进程的 cpu 亲和掩码是 FFFFFFFF(来自 taskset -p pid)。
所以我想知道redis中已经自动设置了cpu affinity?
谢谢
狮子座
最佳答案
不,Redis 不设置 CPU 亲和性。我认为您误解了 taskset 的输出命令。
您获得的关联掩码,即 FFFFFFFF
,意味着该进程可能正在任何处理器上运行。这是默认行为。您可以通过启动一个不设置 CPU 亲和性的进程来测试它,例如vim xxx.conf
,并使用taskset
检查掩码。它还应返回 FFFFFFFF
。
为了让进程运行在特定的CPU上,可以运行如下命令:taskset -pc 0 process_id
,即运行在0th
处理器上。
关于redis - redis 会自动绑定(bind)到 CPU 内核吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39639696/