头图

小亦平台会持续给大家科普一些运维过程中常见的问题解决案例,运维朋友们可以在往期文章中查看更多案例。

  1. 问题概述
    某Redis哨兵模式集群(1主2从3哨兵)在压测期间出现客户端异常报错,具体表现为命令执行超时及连接资源不足。经排查,发现内存使用峰值超出预设最大值,导致Redis频繁触发内存淘汰机制,性能显著下降。
    image.png
  2. 问题分析
    分析过程:

    1. 日志检查:客户端日志显示超时错误,但Redis服务端日志仅包含持久化信息,无直接异常记录。

    image.png

    1. 内存使用分析:在Redis的INFO信息中可以看到内存情况如下

    image.png
    可以明显看出内存使用峰值(used_memory_peak_human:1.02G)已经超出预设的最大内存(maxmemory_human:1.00G),说明Redis在压测时处于一个低内存的临界状态,在这种状态下,Redis需要依赖内存淘汰策略(此处设置为maxmemory_policy:allkeys-lru)淘汰老key,为新写入的key腾出内存空间,期间大量的数据抽样淘汰/写入会使Redis性能急剧下降,从而可能造成客户端命令执行超时甚至无法正常获取连接资源。

  1. 解决方案与优化建议
    优化措施:
    调整Redis最大内存(maxmemory_human),并尽量使redis常驻数据内存(used_memory _human)低于最大内存的80%,此时Redis具备较好的性能。Maxmemory支持通过命令的方式热更新,命令参考如下:
    热更新方式设置最大内存
    CONFIG SET maxmemory 4g
    查看当前的最大内存
    CONFIG GET maxmemory
    将当前热更新的配置重写到配置文件中(否则重启后会失效)
    CONFIG REWRITE

如果您遇到类似问题或有其他疑问,欢迎提交工单:https://www.ces-xiaoyi.com.cn/#/workOrder?marketing_code=arti...小亦平台运维团队将为您提供专业支持!

解锁小亦平台的更多功能:

小亦平台AI巡检Agent现已正式开放!🌟三步实现智能运维,get专业巡检报告https://www.ces-xiaoyi.com.cn/#/next_console/console/workbenc...


小亦智能运维
1 声望0 粉丝

小亦智能运维平台是中亦科技基于20年深耕运维行业经验结合大模型技术,最新推出的智能运维服务平台,旨在以更智能的方式为运维用户解决运维难题,提升运维工作效率