如果一台机器上防止多个redis实例,为了防止上下文切换导致的开销,可以采用taskset。taskset是linux提供的一个命令(ubuntu系统可能需要自行安装,schedutils package)。他可以让某个程序运行在某个(或)某些cpu上。
1)显示进程运行的cpu (6137为redis-server的进程号)
显示结果的f实际上是二进制4个低位均为1的bitmask,每一个1对应于1个cpu,表示该进程在4个cpu上运行
2)指定进程运行在某个特定的cpu上
注:3表示cpu将只会运行在第4个cpu上(从0开始计数)。
3)进程启动时指定cpu
参数:options -p, --pid operate on an existing pid and not launch a new task
-c, --cpu-list specify a numerical list of processors instead of a bitmask. the list may contain multiple items, separated by comma, and ranges. for example, 0,5,7,9-11.
<b>redis开发运维实践指南</b>
<b>本文为《redis开发运维实践指南》内容,该书作者为黄鹏程,已授权云栖社区转载。</b>