Linux Redis Server之CPU充分利用
不知道大家有没有注意到你们公司的集群配置是否是有一种配置是这样的:
多个Redis Server分布在同一个节点,只是端口不同,如果有的话,应该是有很大几率是做过优化。只是猜测,请自行验证。:]
Redis处理指令的时候是单线程的,可以为Redis的进程与指定CPU核绑定,这样就避免了CPU时间片切换带来的损耗。
每个服务器至少有一个CPU,每个CPU最少有多个核。所以为了更充分的利用CPU,启动对应总核数的Redis实例并都绑定一个核上即可。
如何绑定?
我们知道,每个进程都会对应一个PID。
Taskset可以设定哪一个PID运行在哪个核上(注:核序号自0开始)。
其他:
编程实现设置CPU亲和度:
sched_setaffinity函数
http://www.thinkingparallel.com/2006/08/18/more-information-on-pthread_setaffinity_np-and-sched_setaffinity/