系统相关
首页 > 系统相关> > fork是Linux(严格说是POSIX接口)创建子进程的系统调用

fork是Linux(严格说是POSIX接口)创建子进程的系统调用

作者:互联网

众所周知,fork是Linux(严格说是POSIX接口)创建子进程的系统调用,历史上看,主流观点大多对其赞誉有加;但近年间随着技术演进,也陆续出现了反对的声音:有人认为fork是上个时代遗留的产物,在现代操作系统中已经过时,有很多害处。激进的观点甚至认为它应该被彻底弃用。(参见附录1,2)

2)fork当前被诟病的主要问题之一是它的性能。大家对fork通常的理解是其采用copy-on-wirte写时复制策略,因此对其的性能影响不甚敏感。但实际上,虽然fork时可共享的数据内容不需要复制,但其相关的内核数据结构(包括页目录、页表、vm_area_struc等)的复制开销也是不容忽视的。附录1、2中的文章对fork开销有详细介绍,我们这回遇到的问题也是一个鲜活的案例:对于Redis这样的时延敏感型应用,1次fork就可能导致消息时延出现100倍的抖动,这对于应用来说无疑是不可接受的。

4.原生Redis的fork问题:
4.1 原生Redis同样被fork问题困扰(参见附录3,4,5),具体包括如下场景:
1)数据备份

备份时需要生成RDB文件,因此Redis需要触发一次fork。

2)主从同步

全量复制场景(包括初次复制或其他堆积严重的情况),主节点需要产生RDB文件来加速同步,同样需要触发fork。

3)AOF重写

当AOF文件较大,需要合并重写时,也会产生一次fork。

4.2 上述fork问题对原生Redis的影响如下:
1)业务抖动

原生Redis采用单线程架构,如果在电商大促、热点事件等业务高峰时发生上述fork,会导致Redis阻塞,进而对业务造成雪崩的影响。

2)内存利用率只有50%

Fork时子进程需要拷贝父进程的内存空间,虽然是COW,但也要预留足够空间以防不测,因此内存利用率只有50%,也使得成本高了一倍。

3)容量规模影响

为减小fork的影响,生产环境上原生Redis单个进程的最大内存量,通常控制在5G以内,导致原生Redis实例的容量大大受限,无法支撑海量数据。

解决方法
修改日志库liblog中的周期性归档逻辑,不再fork子进程。
系统排查并整改GaussDB(for Redis)代码(包括使用的类库代码)中的fork调用。
最终排查结果,实际只有本次的这个问题点涉及fork。当前修改后即可确保GaussDB(for Redis)的时延保持稳定,不再受fork性能影响。
注:GaussDB(for Redis)由华为云基于存算分离架构自主开发,因此不存在原生Redis的fork调用的场景。
长期免费学英语网站
适合自学英语的app
海星模拟器官方下载
比小鸡模拟器更好的软件
比小鸡模拟器还全的软件
比悟饭游戏厅好用的模拟器
类似小鸡模拟器的平台
妹妹模组下载模拟器
最好玩的模拟器游戏
模拟器游戏软件大全
手机模拟器游戏大全免下载
小鸡模拟器安卓下载
小鸡模拟器ios官方下载
小鸡模拟器老版免费
真人模拟恋爱游戏
女生必下可爱的游戏
适合女生玩的校园模拟游戏
最好玩的模拟器游戏
模拟器游戏软件大全
手机模拟器游戏大全免下载
模拟真实人生的游戏
小鸡模拟器安卓下载
小鸡模拟器ios官方下载
小鸡模拟器老版免费
小鸡模拟器无限制下载破解版
小鸡模拟器2016旧版
小鸡模拟器最新安卓下载
小鸡游戏模拟器官网
小鸡模拟器安卓官方下载
小鸡模拟器1.4.3安卓
小鸡模拟器旧版本下载
小鸡模拟器2020最新版下载
小鸡模拟器安卓ps2
小鸡模拟器2019最新版
海星模拟器和小鸡对比
海星模拟器2020破解版
小鸡模拟器是不是废了
海星模拟器官网
小鸡模拟器下架了吗
悟饭游戏厅nds插件下载
小鸡模拟器新版本下载
比小鸡模拟器更好的模拟器
小鸡模拟器游戏下载
小鸡模拟器2020ios
小鸡模拟器2020下载
小鸡模拟器最新版本是多少
小鸡模拟器免微信版
小鸡模拟器2017旧版本
小鸡模拟器苹果版官方
小鸡模拟器苹果版网址
小鸡模拟器下载
小鸡模拟器ios12
与萌娘触摸同公司的游戏
可以触摸的游戏下载中文
来触摸吧ps3手机版
萌娘触摸4安卓版
英语三年级上册教学视频
自学英语口语免费软件
35岁学英语成功了
零基础学英语要从哪里开始
总结
本文通过分析GaussDB(for Redis)的一次由fork引发的时延抖动问题,探究了fork这个系统调用的性能影响。最新的GaussDB(for Redis)版本已解决了这个抖动问题,并清零了内部的fork使用,与原生Redis相比,彻底解决了fork的性能隐患。希望通过这个问题的分析,能够带给大家一些启发,方便大家更好的选型。

标签:fork,游戏,Redis,小鸡,POSIX,Linux,下载,模拟器
来源: https://blog.csdn.net/whlu24gkz/article/details/111585470