首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    规划Redis真的需要预留一半内存?

    前段时间,由于太多的因素造成redis故障, 负面影响较大。复盘后决定将内存超出内存一半就需要告警,便于运维人员及时介入处理。 网上这种redis规划内存预留一半的文章汗牛充栋(https://cloud.tencent.com/developer/article/1095192)。真实的情况下,真的需要预留下一半的内存吗? 搞清楚这个问题,需要弄清楚2个事情: 1. Redis bgsave/AOF重写的运行机制。 2. Linux下的进程内存分布以及redis内存管理机制。 先说问题1: 1.redis跟内存相关的运行机制莫过于rdb持久化/AOF重写/内存剔除策略(高版本redis还存在着内存碎片整理的配置选项), 其中AOF重写和rdb持久化都属于fork子进程来完成的。本次就以rdb持久化为例,rdb的持久化可以由持久化的配置策略或者命令行bgsave或者主从全同步触发。redis在做bgsave的时候,fork出子进程来做bgsave。具体的过程如下: rdbSaveBackground()中fork子进程 ---> rdbSave() ---> rdbSaveRio()。fork后子进程拥有和父进程一模一样的进程空间,虽然采用了COW机制(父子进程的虚拟内存指向相同的物理page),但是ps或者top命令中的RSS显示的值都会算成自己进程所占的物理内存,这个可能是很多运维同学/DBA同学经常可以眼见的现象,恐怕这个就是潜意识里需要内存预留一半的重要因素。

    03

    运维工程师---互联网的幕后英雄

    来源:马哥教育链接:https://mp.weixin.qq.com/s/q5wzRrXzJn42SQqveiJ8mA作为互联网的幕后英雄,运维工程师长期隐匿在大众认知范围之外,关于运维的讨论仍旧是一片无人涉足的荒漠。在某知名行业研究调查结果中,非互联网从业者对于运维相关问题的回复有三个高频词汇是:不知道、没听过、网管。当调查人员告诉他们科幻电影中展示黑客高超技巧时的命令行界面正是大多数运维工程师每日工作环境时,他们发出极其一致的惊叹。相对于普罗大众的一无所知,技术圈对运维的态度则更偏向于黑色幽默。相较于开发等工作岗位,7*24小时待命的运维工程师往往到手薪水比前者低上一两成,同时还要接受“背锅侠”这一艰巨使命。作为运维职业的分支,桌面运维、机房运维等基础运维工作从业者还必须额外承受无法升职的压力和低于开发一半以上的薪水。所幸,精于Linux的运维工程师还能为运维行业争一口气。Linux占领了90%以上的企业市场,也为善于维护Linux环境的运维工程师提供了职业道路的转机。借Linux市占率之威,Linux运维工程师的收入水平在从业经验达到两年后即与开发相差无几,同时无需承受开发的“34岁危机”。他们仍旧站在幕后,但已有资格摆脱行业的种种不公,成为有高薪、有逼格的高端从业者。当然,高端意味着极高的学习成本和时间成本,也让许多希望进入Linux运维行业的人望而却步。为了帮助有志于从事Linux运维工作的爱好者,马哥教育坚持从事了长达八年的Linux运维教育,由浅入深引领学员进入最前沿科技领域。-互联网的幕后英雄

    05
    领券