centos7,redis5, 16核cpu主频1.9ghz,使用redisbenchmark工具测QPS ,调整工具参数,qps在5-7w,redis进程cpu使用率用到 100%(100% 分散在了多核的us和 sys上), 有没有办法让单实例redis的进程cpu使用到 100%以上?
收起redis5的读写还是单线程的。而centos 7 这个Linux操作系统是分时系统,那对于单线程程序的调度来说,这个线程在 任一时刻 只能被某一个CPU 核 调度运行( 如果CPU开启了超线程或者又SMT技术 ,则只能在 某一个CPU线程上)。因此redis 5最多用满一个CPU核,即top监控不会他不会超过100%。
至于 100% 分散在了多核的us和 sys上 ,那是因为不同时刻可能因为中断等原因, redis 线程调度到了不同CPU上。可以通过CPU绑定方式让他只在一个CPU核上运行。
如果但CPU核跑到100%也不能满足业务性能需求,那建议想办法拆分成多个redis进程,或者升级到redis6利用它的多线程机制吧。