libcurl在ipv6被禁止的情况下的性能下降

最近我们的集群业务量增加了3T/天。然后发现集群的cpu使用率和load上升的非常高,load最高达到了60。团队分析了性能原因,发现发送结果数据到另一个集群的逻辑消耗了大部分的cpu,于是对这部分发送逻辑进行了优化。

在优化发送逻辑后,cpu下降了一半,load也下降了。但是效果并不明显。有一个机器,load仍然很高。持续的调查发现,在load较高的机器上出现间隔出现多个modprob -q — net-pf-10进程(其中net-pf-10为ipv6模块的别名),行为上似乎在不断的重新加载ipv6模块,但是由于32内核机器modprobe.d中配置了disable_ipv6,因此该模块是被禁止,所以每次加载都无法成功。

对于modprob应该是网络链接访问过程中尝试解析ip地址,涉及网络通信的只有调用libcurl访问存储集群。而且大量modprobe进程的出现与写存储的qps的变化大致吻合。由此怀疑libcurl初始化时会尝试用IPv4和IPv6两种协议对地址解析并在IPv6模块未加载的情况下初始化时会增加额外的延时(大概5-8ms),modprobe命令或许是由于libcurl触发产生。

对比libcurl解析ip地址的代码,调用ioctl(dummy, SIOCGIFADDR, &req)函数对地址进行解析,该函数在判断ipv6模块已经安装的情况下加载相关模块,会触发内核在workqueue中加入modprobe任务尝试加载相关模块,因此在每次curl的调用都会导致modprobe调用产生。这种情形发生在安装了ipv6,但是ipv6被禁止的机器上。而在未安装ipv6的机器,并不存在这个问题。

最终的结论是,libcurl存在一个bug,如果机器安装了ipv6,而且禁止了ipv6,那么libcurl每次调用都会尝试加载ipv6。而这个加载的过程延时非常高,以至于引发了性能问题。

时间: 2024-10-01 02:27:50

libcurl在ipv6被禁止的情况下的性能下降的相关文章

为什么排名在正常优化的情况下会下降

网站关键词排名的孬好直接关系到一个考核一个网站孬好的标准,而也将直接影响到一个公司的业务情况,在很多的正常运行中排名会有很多的波动,当我们排名上升的时候大家都很开心,要是排名下降了该如何处理,我想大家都有自己的本法,可能在网上问很多站长会说,再观察下,可能搜索引擎有所调整吧,其实经过我的经验来看其实不是这样,既然下降了,必然有下降的因素,下面我说说排名下降的原因,我主要从以下四个方面来做一下分析: 第一:搜索引擎自身原因,很多站长会去抱怨搜索引擎,说他们不合理,有问题了,他们的算法会经常的变动,

老站在排名波动的情况下的几个实用解决办法

做SEO是件需要耐心与毅力的事.当一个搜索量比较高的关键词登上首页的时候,代表的是搜索引擎对我们一段时间内SEO工作的肯定.而对于大多数站长朋友来说,也不单单只是高兴,还有一丝忧虑,因为要稳定排在前面也不是一件容易的事,网站排名的稳定,还真不比把关键词做上来容易,今天笔者就与大家分享一下老站在排名波动的情况下的几个实用解决办法,主要是以自己的做一个老站的的排名的经验心得与大家分享,希望能对遇到同样问题的朋友有所帮助. 针对我的站的排名下降,我分析了主要有以下两个方面的原因 一个是内容的更新频率,

Apple Watch Series 3 特定情况下无法使用LTE,苹果确认问题正在修复

外观变化不大的Apple Watch Series 3搭载了 LTE 通信功能,外界一片叫好之声.不过早早拿到真机的测评者们遇到了一些问题,例如在某些情况下无法使用LTE,包括无法接打 LTE电话.一位苹果发言人确认了此问题,"我们发现 Apple Watch Series 3 连接到一个无法连接联网的.未经验证的Wi-Fi网络之后,有时会导致手表无法使用蜂窝数据网络.解决这一问题的新版本系统正在开发中." 据外媒报道,这一问题一般发生在iPhone连接了某一Wi-Fi,然后与之配对的

Androidz指定情况下禁用和启用休眠屏幕或锁屏

问题描述 Androidz指定情况下禁用和启用休眠屏幕或锁屏 在指定情况下(开始录制视频时)禁止屏幕休眠,(在结束录制视频时)启用休眠功能,该用什么方法?网上找到以下方法,可以实现此功能吗?能否解释下这两个方法是什么意思? public void unlock(){ mContentResolver = getContentResolver(); setLockPatternEnabled(android.provider.Settings.Secure.LOCK_PATTERN_ENABLED

英国政府反对在紧急情况下关闭社交网络

伦敦骚乱 新浪科技讯 北京时间8月31日上午消息,英国内政大臣特雷莎·梅伊(Theresa May)上周四在会面Twitter.Facebook和RIM黑莓代表时表示,英国政府无意"限制互联网服务".英国内政部也在一份声明中表示,"政府不会寻求额外的权力,来关闭社交网站." 伦敦北部8月6日发生大规模骚乱事件.许多媒体报道称,骚乱人员通过Twitter.Facebook和RIM黑莓Messenger等服务来组织和协调骚乱活动.为此,英国政府在上周提出一项计划,即在发

分享老站在排名波动的情况下的几个实用解决办法

摘要: 做SEO是件需要耐心与毅力的事.当一个搜索量比较高的关键词登上首页的时候,代表的是搜索引擎对我们一段时间内SEO工作的肯定.而对于大多数站长朋友来说,也不单单只是高兴,还 做SEO是件需要耐心与毅力的事.当一个搜索量比较高的关键词登上首页的时候,代表的是搜索引擎对我们一段时间内SEO工作的肯定.而对于大多数站长朋友来说,也不单单只是高兴,还有一丝忧虑,因为要稳定排在前面也不是一件容易的事,网站排名的稳定,还真不比把关键词做上来容易,今天笔者就与大家分享一下老站在排名波动的情况下的几个实用

坏消息!FCC默许美国ISP在未经批准之情况下出售用户数据!

3月9日讯 美国联邦通信委员会(简称FCC)在隐私管理规则正式生效前即宣布暂停实施活动.目前已经授权美国ISP全部权力,默许其在未经批准之情况下出售用户数据. 坏消息!FCC默许美国ISP在未经批准之情况下出售用户数据!-E安全 隐私保护目前只能是隐私捍卫者们的-----乌托邦式幻想,或许很多人每天都能感受到来自执法部门.情报机构与威权政府的威胁. 2016年10月,美国联邦通信委员会(简称FCC)通过了一系列关于ISP(即互联网服务供应商)的隐私管理规则,限制其将用户数据用于营销或者其它商业用

在不操作窗口的情况下触发resize事件

问题描述 在不操作窗口的情况下触发resize事件 function classJudegSize1() { var reallySize=parseInt($(".img_box")[1].naturalWidth); $(window).on("resize", function () { var img_box=parseInt($(".img_box:eq(1)").css("width")) ; var mainWa

php- js在不跳转的情况下向一个页面传递参数

问题描述 js在不跳转的情况下向一个页面传递参数 需求是把textarea传递到savexml.php进行数据保存,但同时我希望页面还留着当前页面.代码如下: <form name=""form1"" id=""form1"" method=""post"" action=""newtest.php""> <input type=