• 听《Node服务线上故障》分享的思考


    文章不易,请关注公众号 毛毛虫的小小蜡笔,多多支持,谢谢。

    有任何问题都可以留言咨询。

    思考1

    写入量很大,导致redis的rdb持久化异常

    一开始排查到问题,是访问Redis返回时长较长。

    然后看到应用服务的报错信息:

    MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk. Commands that may modify the data set are disabled. Please check Redis logs for details about the error.

    再查看redis组件的日志:

    can't save in background: fork: cannot allocate memory

    说明是bgsave出错了,无法申请到内存。

    思考

    1、bgsave vs save

    save直接调用rdbSave函数,阻塞redis主进程,直到保存完成为止。在主进程阻塞期间,服务器不能处理客户端的任何请求。

    如果数据量小,用此命令可能感觉不出有什么区别,但是当数据量很大的时候,就需要谨慎使用这个命令。

    bgsave命令执行之后立即返回OK ,然后redis fork出一个新子进程,原来的redis 进程(父进程)继续处理客户端请求,而子进程则负责将数据保存到磁盘,然后退出。

    2、rdb的缺点

    详情 请查看:毛毛虫的小小蜡笔

  • 相关阅读:
    中风后遗症
    慢性湿疹半年
    女子脚背痒肿案
    肾盂肾炎病案
    鼻衄二则
    糖尿病病案
    慢性肠炎2例
    子宫肌瘤病案2例
    眩晕病案
    前列腺炎病案3例
  • 原文地址:https://www.cnblogs.com/simonbaker/p/16673492.html
Copyright © 2020-2023  润新知