这篇文章开始小亦平台会持续给大家科普一些运维过程中常见的问题解决案例,运维朋友们可以在常见问题及解决方案专栏查看更多案例。
- 问题概述
2024年3月1日,某客户反馈Redis队列堆积导致应用卡顿。系统环境如下:
操作系统:Linux
Redis版本:4.0.10
架构:Sentinel
经排查,系统因内存不足触发Swap交换分区,严重拖慢Redis性能。
- 问题分析
分析过程:
- 慢查询排查:检查Redis慢日志(Slowlog),未发现异常命令。
- 内存使用分析:Redis配置最大内存4G,实际使用仅200M,正常。
- 查看内存碎片率小于1(大于1是合理的),表示Redis内存分配超出了物理内存,操作系统正在进行内存交换,内存交换会引起非常明显的响应延迟。
- 查看操作系统层面内存使用分配情况,Swap使用了1G。
分析结论:此系统的Redis使用到了Swap交换分区,对Redis的性能影响非常大,所以会导致队列堆积。由于Redis是基于内存的非关系型数据库,内存的读写速度远远高于磁盘的速度,所以会严重影响Redis的性能。
- 解决方案与优化建议
优化措施:
1, 增加内存,使操作系统有充足的内存,才不会使用Swap;
2, 优化调整系统参数/etc/sysctl.conf,如下;
echo "vm.overcommit_memory = 1" >> /etc/sysctl.conf
echo "vm.swappiness = 1" >> /etc/sysctl.conf
echo never >/sys/kernel/mm/transparent_hugepage/enabled
sysctl -p
3, 适当增加内存,并关闭Swap交换分区。
若需进一步协助或遇到其他运维问题,可以点击链接:https://www.ces-xiaoyi.com.cn/#/workOrder?marketing_code=arti...使用小亦工单,我们将快速响应!
解锁小亦平台的更多功能:
小亦平台AI巡检Agent现已正式开放!🌟三步实现智能运维,get专业巡检报告: https://www.ces-xiaoyi.com.cn/#/next_console/console/workbenc...
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。