文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Redis如何监控持久化和优化持久化?

2024-04-02 19:55

关注

Redis持久化过程一直是影响redis性能的常见因素,如何监控持久化以及如何优化持久化过程呢?下面我们就一起来看看吧。

fork的监控及优化

不管是使用哪种持久化,RDB持久化或AOF重写,主进程都会fork出一个子进程,在子进程里完成rdb文件的生成或aof的重写。fork操作对于操作系统来说属于比较重的操作。fork阶段,redis会阻塞一段时间。阻塞时间和redis数据占用的内存大小成正比关系,每1G内存fork耗时在20毫秒。

如想知道fork阶段的阻塞时间,可以使用info stats命令,查看latest_fork_usec选项的值,单位是微秒。记住是微秒,不是毫秒。

# redis-cli info stats | grep latest
latest_fork_usec:323

优化fork的方法:

内存的监控

RDB持久化的日志如下:

……
21692:C 15 May 2020 14:17:06.935 * DB saved on disk
21692:C 15 May 2020 14:17:06.936 * RDB: 2 MB of memory used by copy-on-write
……

可以看到RDB持久化过程消耗了2M内存。

AOF持久化日志如下:

……
15786:C 23 May 2020 07:39:59.145 * AOF rewrite: 2MB of memory used by copy-on-write
10679:M 23 May 2020 07:39:59.201 * Background AOF rewrite terminated with success
10679:M 23 May 2020 07:39:59.201 * Residual parent diff successfully flushed to the rewritten AOF (0.02 MB)
10679:M 23 May 2020 07:39:59.201 * Background AOF rewrite finished successfully

可以看到,aof重写占用的内存为2MB+0.02MB=2.02MB

如想监控持久化过程中内存占用情况,可以编写shell脚本,统计出redis日志里相关信息。

硬盘的监控

Redis持久化过程会对硬盘造成压力,因为持久化后,内存的数据会保存到硬盘中。

linux系统监控硬盘的命令有sar、iostat等,如发现硬盘io压力超过阀值,再根据redis的日志对比下持久化的时间,看看是不是由于redis持久化造成的压力。

优化方法这里提两点:

单机多实例部署

因为redis是单线程架构,如果一个服务器上只部署一个redis实例,那么对于多核cpu来说是一种浪费。所以,通常会在一个服务器上部署多个redis应用,比如开启三个redis服务,端口号分别为6379,6380,6381。6379用来做缓存服务,6380用来做消息队列,6381用来做标签及推荐系统。

这样确实可以充分利用cpu,但会容易产生问题。如果多个实例同时在进行持久化,那么对于cpu、内存及影片的压力是非常大的。好的做法是将他们隔离开来,同一时间只有一个实例在进行持久化。

实现该效果的伪代码如下:

while (true)
{
     $redisObj = [6379,6380,……];
     
     foreach ($redisObj as $obj) {
          // 该实例是否构成重写的要求
          if (rewriteConf($ojb)) {
           // 该实例进行持久化
          }
     }
}

foreach用来遍历每一个redis实例,然后对该实例是否达到重写的条件做判断,满足就开始进行重写。这样就可以将多redis实例持久化进行隔离。

以上就是Redis持久化过程的监控及优化的详细内容,更多请关注亿速云其它相关文章!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     801人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     348人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     311人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     432人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     220人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯