首页 > 数据库 >redis学习-7

redis学习-7

时间:2024-07-15 14:18:22浏览次数:9  
标签:AOF redis 阻塞 cpu 学习 内存 连接

redis阻塞问题

发现阻塞

生产环境需要异常监控,在连接函数捕获异常,打印ip和port,使用监控系统监控多个关键指标,如命令耗时、慢查询、持久化阻塞、拒绝连接、CPU内存网络磁盘使用过载等。

内在原因

redis数据结构使用不合理

  1. 通过slow log 获取慢查询,改成低复杂度算法或将大对象拆分(如一个大集合按某个维度拆分成多个小集合)
  2. 通过--bigkeys(内部对历史扫描过的大对象分段scan)获取大对象的key

CPU饱和

  1. 通过--stat统计内存、处理命令数等(当60000+/s的请求命令垂直难以优化,需要集群化水平扩展分摊OPS压力)
  2. 只有几百或几千OPS的cpu饱和不正常,可能有高复杂的命令;通过info commandstats统计命令开销,分析不正常的开销,(如hset耗时135us,由于配置追求低内存导致了操作更慢和更消耗cpu)

持久化阻塞

  1. fork
    发生RDB和AOF重写时,如果fork操作耗时超过1s,需要避免使用过大的内存实例和规避某些操作系统。
  2. AOF刷盘阻塞
    当硬盘压力大时,AOF的fsync操作会阻塞。
  3. HugePage写操作阻塞
    开启Transparent HugePages的linux写操作会延长执行时间。

外在原因

cpu竞争

不和其他多核cpu密集型服务部署在一起、将redis进程绑定到cpu上(fork子进程会争用cpu,开启了持久化或参与复制的主节点不绑定cpu)

内存交换

  1. 查询redis进程号
  2. 根据进程号查询内存交换信息
    防止swap导致硬盘读写速度慢

网络问题

  1. 连接拒绝
    网络闪断、超过maxclients连接数(当分布式节点大量访问且生命周期较短的场景下设置tcp-keepalive和timeout参数主动检查并关闭连接)、连接溢出(操作系统限制文件数、端口tcp连接backlog数量溢出)
  2. 网络延迟
  3. 网卡软中断
    网卡队列只能用一个cpu

标签:AOF,redis,阻塞,cpu,学习,内存,连接
From: https://www.cnblogs.com/bluebubbleyhbgsj/p/18303059

相关文章

  • 学习总结:数据分析方法(侧重于解决实际问题)
    目录一、战略与组织SWOT分析PEST分析BSC平衡计分卡波特五力模型BCG矩阵GE矩阵二、质量与生产TPMTQM六西格玛OPTPDCAAUDIT法(汽车行业)三、营销服务STP分析4Ps普销组合SPIN销售法安索夫矩阵推销方格理论哈夫模型四、财务管理z-SCORE模型ABC成本法杜邦分......
  • 运算式树(Expression tree)深入学习
    前言运算式树(Expressiontree)是二叉树数据结构。目的是实现方便的叠加各种查询条件,无限制的拼接成一个查询条件。提高复杂查询逻辑的编码效率。一、Lambda表达式Lambda表达式分为运算式Lambda和语句式Lambda下面用两种lambda实现同样功能的委托。(1)运算式Lambda(Expressionla......
  • 《昇思25天学习打卡营第06天|qingyun201003》
    日期心得什么是函数式自动微分,在日常的模型训练中,涉及到复杂的数学公式如何转换为机械语言,通过本次的学习,使我了解到了如何去做梯度计算,通过梯度计算,设计损失函数,有一步步优化代码。昇思MindSpore基础入门学习函数式自动微分(AI代码解析)函数式自动微分神经网络的......
  • Java面试八股之Redis哨兵机制
    Redis哨兵机制RedisSentinel(哨兵)模式是一种高可用解决方案,用于监控和自动故障转移Redis主从集群。以下是对哨兵模式详细过程的描述:1.初始化与配置部署哨兵节点:在不同的服务器上部署一个或多个RedisSentinel节点,它们作为独立进程运行,负责监控Redis主从集群的状态。配置......
  • Linux中使用Docker安装Redis容器以及布隆过滤器
    前言在项目中,一般普遍都会用到Redis,在准备学习Redis的相关的东西时,其中提到了缓存穿透、缓存击穿、缓存雪崩的问题。其中对于缓存穿透的一个解决方案中就有提到布隆过滤器,而布隆过滤器的也有许多提供方式(Guava、Redisson、RedisBloom),前面都是基于本地的,所以就选择了Redis官方......
  • 当农业遇见智能:机器学习引领农作物管理新时代
    机器学习引领农作物管理新时代1.引言1.1农业的重要性和现代农作物管理的挑战1.2机器学习技术在农业中的潜力和应用前景2.机器学习在农作物管理中的基础应用2.1数据驱动的农业决策数据收集与处理示例代码:传感器数据采集决策支持系统2.2传感器技术与数据采集生长过......
  • 十分钟搞懂机器学习中的余弦相似性
    在机器学习中,我们经常会使用余弦函数来计算向量之间的相似性。从推荐系统到自然语言处理,再到计算机视觉,余弦相似性在多种机器学习应用中都有其独特的价值。它不仅限于特定领域,而是几乎可以在任何需要比较向量相似度的场景下使用。这里边有两个重要的概念:向量、余弦,这是中学阶段学......
  • 动手学深度学习(1.1 - 1.2)
    对日益壮大的机器学习科学家群体来说,实现很多任务的自动化并不再屈从于人类所能考虑到的逻辑。想象一下,假如开发人员要试图解决以下问题之一:编写一个应用程序,接受地理信息、卫星图像和一些历史天气信息,并预测明天的天气;编写一个应用程序,接受自然文本表示的问题,并正确回答......
  • 【深度学习】基于形态学的权重自适应图像去噪(Matlab代码实现)
    ......
  • AI学习 | chatgpt_api 和 tiktoken使用
    fromopenaiimportOpenAIimporttiktoken 如何使用chatgpttoken#创建实例,因为密钥已经传入环境变量,所以这里不用输入了client=OpenAI()#开始对话 response=client.chat.completions.create(model="gpt-3.5-turbo",messages=[{"role":"sys......