Codis 千万并发下调优

简介: Redis + Codis 千万并发下产生的问题

环境:

 8台机器 32C 256G,redis 66从在同一台机器上,dashbaord也在redis00上。codis-proxy 8C,每台机器开2proxy。万M网络,CentosOS 6.5 内核2.6.32-431.el6.x86_64

 

现象:

sprak 70台机器  codis 开启pipline,不控制pipline大小,同时调度400CPU,有大量reset报错。长链接。


排查:

 1、Redis没有报错

 2、查看qps 流量很低

 3、Codis proxy 没有报错,通过网页查看流量过山车

一时无法定位问题


解决方案:

  方案一:

      codis-proxy redis分开,分4台,cpu 30C ,每台要机器部署1codis-proxy日志级别调到warn

   此方案未解决问题,问题依然出现。

 

通过tcpdumptcpdump -i bond0 -vnn port 9100 >tcp.log

1d913f4436c4b09b92107767eb028dae0cd6d311

 

一个pipline seesion的读写buffers13M,生产速度大于消费时,各session的buffers不够用,将停止消费,服务端tcp协议将窗口不断放小直到0。长时间处于0窗口的话,tcp协议会给对端发reset。所以业务端老看到reset

 

方案二:

      调整codis_proxy 参数:session_max_bufsize=231072 每一个seesion 20M左右。

      调整spark 端写速度pipline 5000个一发,(pipline 5000 spark端一次发5000个给codiscodis处理完之后在返回给spark5000个。) spark端会调200个进程每一个进程5000:200X5000=1000000 理论会有1000000opstcp会有一些限速。最终稳定值在70多万。

fd8bc37d2ff5ce92fcd2f324d40db6df563326b8

网络情况:

33f7391bc7501d57fefba741ba35d46279718d6c

这只是in的值250MB,进出总 量在500MB左右。

 

spark端没有报错。

 

实验:spark pipline 10000万一发,峰值达到:

7fecf6f22412b360cd651e1fe57e2b35c2697cdf


是的你没有看错:700多万。


700万并发,业务端出现了问题,而且700万量太大对网络也是一个压力,因此,我们经测试200万,属于一个业务和运维都可以接受的值!

ce2894e3a9df1b30b4129946588ec5115ade1757


 

还能在提速吗?

如果窄干机机器性能:

1、调速CPU中断,CPU默认中断都在第一个CPU上,

cat /proc/interrupts >f

vim f     打开这个文件 set nowrap   让他按行排列

set nowrap

可以看到这些中断在0上最多。

 

2、调整网卡队列



目录
相关文章
|
JSON NoSQL Redis
redis-full-check校验工具
redis-full-check是阿里云Redis&MongoDB团队开源的用于校验2个redis数据是否一致的工具,通常用于redis数据迁移后正确性的校验。
25925 0
|
存储 NoSQL Redis
【360开源】Pika最佳实践
Pika是360 热门的c++开源项目,基于rocksdb开发的大容量类Redis存储,力求在完全兼容Redis协议、继承Redis便捷运维设计的前提下通过持久化存储方式解决Redis在大容量场景下主从同步代价高、恢复时间慢、单线程相对脆弱、内存成本高等问题。
3038 0
|
10月前
|
机器学习/深度学习 人工智能 自然语言处理
很火的DeepSeek到底是什么
DeepSeek,全称杭州深度求索人工智能基础技术研究有限公司,成立于2023年。因推出开源 AI 模型 DeepSeek-R1 而引起了广泛关注。与ChatGPT相比,大幅降低了推理模型的成本。
3784 36
|
9月前
|
运维 负载均衡 数据可视化
零门槛、低成本或无成本、轻松部署您的专属DeepSeek-R1 满血版4种解决方案
宏哥在仔细阅读了所有评测报告后,发现视频演示较少,因此决定制作一个涵盖四种部署方案的视频教程及评测。视频更加直观,便于用户理解。
444 2
|
移动开发 前端开发 JavaScript
2024年前端框架趋势概览
【10月更文挑战第2天】本文综合了多个来源的信息,以提供一个全面的2024年前端框架趋势概览。希望通过本文,读者能够把握前端开发的最新动态,并在自己的项目中应用这些趋势。
|
安全 网络安全 数据安全/隐私保护
`certifi`是一个Python包,它提供了一个包含Mozilla证书颁发机构(CA)Bundle的PEM文件。
`certifi`是一个Python包,它提供了一个包含Mozilla证书颁发机构(CA)Bundle的PEM文件。
|
Linux Python Windows
Linux 系统中 挂载 U 盘 方法
在 Linux 系统中,与 Windows 不一样的是,无法自动识别加载外部设备例如 U 盘、硬盘;例如用 PyCharm 或 IDEA 打开 U 盘中的内容,在没有完成挂载操作之前是不可行的 如果想实现上面操作,第一步,需要对 U 盘等外接移动设备完成 挂载操作
Linux 系统中 挂载 U 盘 方法
|
Ubuntu
UBUNTU安装gRPC
UBUNTU安装gRPC
2473 0
|
数据挖掘
ggGenshin&Genshinpalette|SCI绘图遇上原神,不输于CNS正刊调色板
本文介绍了两个R包——`ggGenshin`和`Genshinpalette`,它们提供了基于热门游戏《原神》角色的配色方案,用于提升数据分析图表的视觉吸引力。`ggGenshin`安装后可通过角色名字调用配色,展示了一个生成条形图的例子。`Genshinpalette`则提供了更多角色的色彩选项,并在`diamonds`数据集上展示了应用。这两个包为R用户提供了现成的、具有游戏特色的调色板,可用于创建更吸引人的图表。
926 0
|
IDE 测试技术 开发工具
Digispark(ATTINY85) 微型开发板驱动与开发环境安装教程
本教程是基于Arduino IDE中进行编译调试,如果你不想用Arduino IDE可以尝试从官方教程中找到其他方案。官方的教程:http://digistump.
2257 0