CPU架构影响Redis性能?
2021-04-25 18:44:06 15 举报
AI智能生成
CPU架构影响Redis性能
作者其他创作
大纲/内容
主流CPU架构
物理核
一个CPU处理器有多个运行核心,一个运行核心被称为一个物理核
有自己的一级缓存和二级缓存
1. 延迟不超过10纳秒,速度非常快
2. 但是大小不大,只有KB级别
2. 但是大小不大,只有KB级别
与其他物理核共享一个三级缓存
一般几兆到几十兆
尽可能的避免访问到内存
逻辑核
物理核一般都会运行两个超线程,也叫作逻辑核
共享L1,L2缓存
多核架构
应用程序可以在不同的处理器上运行
多个CPU Socket 通过总线进行连接
多个Socket访问被称为远端访问
延迟比自己访问高。
多核对Redis性能的影响
在一个CPU核上运行时
应用程序要记录自身使用的软硬件资源信息
多核运行
切换CPU核时,会将运行时信息重新加载到新的CPU核上
CPU核L1,L2缓存也需要重新加载数据和指令。
解决方案
绑定CPU核
可以使用taskset命令绑定一个程序在一个核上运行
问题
Redis读取网络数据的步骤
网络中断处理程序从网卡硬件中读取数据
把数据写入到操作系统内核维护的一块内存缓冲区
内核通过epoll机制触发事件通知Redis
Redis实例再把数据从内核拷贝到自己的内存空间
网络中断与CPU不在同一个CPU Socket上
Redis实例需要读取数据时,需要夸CPU Socket访问内存
CPU编号规则
绑核的风险与解决方案
一个实例绑定一个物理核
修改Redis源码
将子线程与后台线程绑定到不同的CPU核上
Redis6.0支持使用配置的方式来绑定
0 条评论
下一页