当前位置:网站首页>redis源码优化--绑核
redis源码优化--绑核
2022-07-28 15:23:00 【正在学习编程的小学生】
参考《redis核心技术与实践》并修改了其中代码的问题
在多核CPU架构下,Redis如果在不同的核上运行,就需要频繁地进行上下文切换,这个过程会增加Redis的执行时间,客户端也会观察到较高的尾延迟了。所以,建议你在Redis运行时,把实例和某个核绑定,这样,就能重复利用核上的L1、L2缓存,可以降低响应延迟。
为了提升Redis的网络性能,我们有时还会把网络中断处理程序和CPU核绑定。在这种情况下,如果服务器使用的是NUMA架构,Redis实例一旦被调度到和中断处理程序不在同一个CPU Socket,就要跨CPU Socket访问网络数据,这就会降低Redis的性能。所以,我建议你把Redis实例和网络中断处理程序绑在同一个CPU Socket下的不同核上,这样可以提升Redis的运行性能。
虽然绑核可以帮助Redis降低请求执行时间,但是,除了主线程,Redis还有用于RDB和AOF重写的子进程,以及4.0版本之后提供的用于惰性删除的后台线程。当Redis实例和一个逻辑核绑定后,这些子进程和后台线程会和主线程竞争CPU资源,也会对Redis性能造成影响。所以,我给了你两个建议:
- 如果你不想修改Redis代码,可以把按一个Redis实例一个物理核方式进行绑定,这样,Redis的主线程、子进程和后台线程可以共享使用一个物理核上的两个逻辑核。
- 如果你很熟悉Redis的源码,就可以在源码中增加绑核操作,把子进程和后台线程绑到不同的核上,这样可以避免对主线程的CPU资源竞争。
代码修改详细过程:
这里使用的是redis5
边栏推荐
- PHP mb_substr 中文乱码
- R语言使用fs包的file_delete函数删除指定文件夹下的指定文件、举一反三、dir_delete函数、link_delete函数可以用来删除文件夹和超链接
- 【Multisim仿真】LM339过零电路仿真
- JS priority queue
- QT QString详解
- Paging query in applet
- 12V pulse speed measurement to 24V level signal conversion transmitter
- A program for judging the result of cyclic input
- PHP 图片上传
- Use py to automatically generate weekly reports based on log records
猜你喜欢

Redis系列4:高可用之Sentinel(哨兵模式)

深入理解Istio流量管理的熔断配置

High precision absolute angle sensor application high speed angle monitoring

JS linked list 02

Zhengda cup hacker marathon data analysis competition

Stm32cube infrared remote control: input capture
![[Multisim Simulation] LM339 zero crossing circuit simulation](/img/ca/f6dae5fd298c00570407c2bdfa5118.png)
[Multisim Simulation] LM339 zero crossing circuit simulation

Rosen's QT journey 101 models and views in QT quick

头条文章_signature

NTC, PT100 thermal resistance to 4-20mA temperature signal converter
随机推荐
Rust Getting Started Guide (crite Management)
Detailed explanation of QT qstring
Headline article_ signature
头条文章_signature
自动打包压缩备份下载及删除 bat脚本命令
JS array (summary)
不懂就问,快速成为容器服务进阶玩家!
The deep displacement monitoring system wk813 is used to measure the deep displacement of slopes, dams, embankments, railways and building foundation pit excavation
8051 series MCU firmware upgrade IAP
How to measure the vibrating wire sensor by vibrating wire acquisition module?
A program for judging the result of cyclic input
JS bidirectional linked list 01
Telecommuting can be easily realized in only three steps
2021 Kent interview question 1
视频号找到金钥匙,抖音模仿后来人
Stm32f103c8t6 + 0.96 "I2C OLED display 3d_cube
2021 肯特面试题2
LwIP development | socket | DNS domain name resolution
1. Simple command line connection to database
Automatically pack compressed backup download and delete bat script commands