应用办公生活信息教育商业
投稿投诉
商业财经
汽车智能
教育国际
房产环球
信息数码
热点科技
生活手机
晨报新闻
办公软件
科学动态
应用生物
体育时事

解Bug之路记一次线上请求偶尔变慢的排查

  解Bug之路记一次线上请求偶尔变慢的排查前言
  最近解决了个比较棘手的问题,由于排查过程挺有意思,于是就以此为素材写出了本篇文章。
  Bug现场
  这是一个偶发的性能问题。在每天几百万比交易请求中,平均耗时大约为300ms,但总有那么100多笔会超过1s,让我们业务耗时监控的99。99线变得很尴尬。如下图所示:
  为了精益求精,更为了消除这个尴尬的指标,笔者开始探寻起这100多慢请求笔的原因。
  先找一笔看看
  由于笔者写的框架预留了traceId,所以找到这笔请求的整个调用的链路还是非常简单的。而且通过框架中的拦截器在性能日志中算出了每一笔请求的耗时。这样,非常便于分析链路到底是在哪边耗时了。性能日志中的某个例子如下图所示:2020090115:06:59。010〔abcdefg,AB,Dubbothread1,ipAipB〕B。facade,cost10ms
  拉出来一整条调用链路后,发现最前面的B系统调用C系统就比较慢。后面链路还有几个调用慢的,那先不管三七二十一,先分析B调用C系统吧。
  我们从监控系统看出来正常的B系统调用C系统平均耗时只有20ms,这次的耗时增长了10倍!
  正常思路,那当然是C系统有问题么,毕竟慢了10倍!去C系统的性能日志里面看看,2020090115:06:59。210〔abcdefg,BC,Dubbothread1,ipBipC〕C。facade,cost20ms
  啪啪啪打脸,竟然只有20ms,和平均耗时差不多。难道问题在网络上?B到C之间由于丢包重传所以到了200ms?
  甩给网络?
  由于笔者对TCP协议还是比较了解的,tcp第一次丢包重传是200ms,那么加上C处理的时间20ms,即220ms必须得大于200ms。而由于Nagle和DelayAck造成的tcp延迟也仅仅是40ms,两者相加60ms远远小于200ms,所以这个200ms是丢包或者DelayAck的概率不大。
  本着万一呢的态度,毕竟下绝对的判断往往会被打脸,看了下我们的监控系统,发现当时流量距离网卡容量只有110左右,距离打满网卡还有非常远的距离。
  注意,这个监控的是由KVM虚拟机虚拟出来的网卡。看了这个流量,笔者感觉网络上问题的概率不大。
  GC了?
  笔者第二个想到的是GC了,但是观察了B和C的当时时刻的GC日志,非常正常,没有FullGC,youngGC也在毫秒级,完全不会有200ms这么长。TCP重传双方都youngGC?这个也太巧了点吧,也不是不可用。不过详细的计算了时间点,并纳入了双方机器的时钟误差后,发现基本不可能。
  再看看其它几笔
  尽然这个问题每天有100多笔(当然了,也不排除其中混杂了其它不同的问题),那么就试试看看其它几笔,有没有什么共性。这一看,发现个奇怪的现象,就是有时候是A调用B慢,有时候是B调用C慢,还有时候是E调用F慢。他们唯一的共性就是耗时变长了,但是这个耗时增加的比例有5倍的,有10倍的,完全没有规律可循。
  这不禁让笔者陷入了沉思。
  寻找突破点
  既然通用规律只有变慢,暂时无法进一步挖掘。那么还是去B系统上去看看情况吧,去对应B系统上故意不用grep而是用less看了下,上下扫了两眼。突然发现,貌似紧邻着的几条请求都很慢,而且是无差别变慢!也就是说B系统调用任何系统在这个时间点都有好几倍甚至十几倍的耗时!
  终于找到了一个突破点,B系统本身或者其所属的环境应该有问题!于是笔者用awk统计了下B系统这个小时内每分钟的平均调用时长,用了下面这条命令:cat性能日志grep时间点awkF{print2,5}。。。。。。。awkF{sum〔1〕3;count〔1〕1}END{for(iinsum){printi,sum〔i〕count〔i〕}}
  发现15:0020
  15:0121
  15:0215
  15:0330
  。。。。。。。
  15:06172。4
  15:07252。4
  15:08181。4
  15:1020
  15:1021
  15:1022
  在15:0615:08这三分钟之内,调用时间会暴涨!但奇怪的是B系统明明有几十台机器,只有这一台在这个时间段内会暴涨。难道这个时间有定时任务?笔者搜索了下B系统昨天的日志,发现在同样的时间段内,还是暴涨了!再接着搜索其它调用慢的,例如EF,发现他们也在15:0615:08报错!于是笔者,一横心,直接用awk算出了所有系统间调用慢机器白天内的所有分钟平均耗时(晚上的流量小不计入内),发现:
  所有调用慢的机器,都非常巧的在每个小时0608分钟之内调用慢。再观察下慢的请求,发现他们也全部是分布在不同小时的0608分时间段内!
  定时任务?
  第一反应是有定时任务,查了下所有调用机器的crontab没有问题。问了下对应的开发有没有调度,没有调度,而且那个时间段由于耗时的原因,每秒请求数反而变小了。翻了下机器监控,也都挺正常。思维陷入了僵局,突然笔者灵光一闪,我们的应用全部是在KVM虚拟机上,会不会是宿主机出了问题。于是联系了下SA,看看这些机器的宿主机是个什么情况。
  每个变慢的机器的宿主机都有Redis!
  这一看就发现规律了,原来变慢的机器上都和Redis共宿主机!
  登陆上对应的Redis服务器,发现CPU果然在那个时间点有尖峰。而这点尖峰对整个宿主机的CPU毫无影响(毕竟宿主机有64个核)。crontabl一下,果然有定时任务,脚本名为Backup!它起始时间点就是从06分开始往GlusterFS盘进行备份,从06分开始CPU使用率开始上升07分达到顶峰08分降下来,和耗时曲线完全一致!
  原来Redis往Gluster盘备份占据了大量的IO操作,所以导致宿主机上的其它应用做IO操作时会变得很慢,进而导致但凡是这个备份时间内系统间调用的平均耗时都会暴涨接近10倍,最终导致了高耗时的请求。
  为什么调用请求超时1s的概率这么低
  由于我们线上每个应用都有几十台机器,而基本每次调用只有几十毫秒。所以只有这个请求连续落到三个甚至多个和Redis共宿主机的系统里面才会导致请求超过1s,这样才能被我们的统计脚本监测到,而那些大量的正常请求完全拉平了平均值。
  解决方案
  我们将线上实时链路的系统从对应有Redis的宿主机中迁移出来,再也没有那个尴尬的1s了。
  借此推荐一本书。
  这本书豆瓣评价8。6分,在详细讲解性能问题排查的同时补充了大量的基础知识,是本很不错的书。
  总结
  在遇到问题,并且思路陷入僵局时,可以通过一些脚本工具,例如grep以及awk或者其它一些工具对众多日志进行分析,不停的去寻找规律,从无序中找到有序,往往能够产生意想不到的效果!欢迎大家加我公众号,里面有各种干货,还有大礼包相送哦!

66岁刘晓庆坐马桶化妆背台词,宛如一张假脸,令人唏嘘不已关注我,走在八卦最前沿刘晓庆一位70年代的艺人,她一生出演了N多经典影视剧,最让人印象深刻的应该还是包青天和垂帘听政大太监李莲英这几部热播的影视剧了,同样也获得过N多奖项……古力娜扎分手后气质越来越好,身穿红色礼服复古时髦,精致似芭比哈喽,大家好!美好的事物总是令人向往的,看到好看的帅哥或者美女我们也忍不住多看一眼。而娱乐圈最不缺帅哥美女了,最近看到古力娜扎的一组活动造型写真,又被她的颜值和身材吸引了。古力……我国医疗队远赴多个国家救援彰显大国风范,沈阳粥店竟显奇葩横幅我国疫情控制已初见成效,但其他国家却处于蔓延攀升的态势,这对于每一个地球人来说都不是好事,一个国家的发展并不是孤立的,我们的中国制造需要走出国门,拓展更广阔的市场,同时我们许多……为啥这些明星大佬都对搞偶像组合有执念?【超高能追剧社】此文为超高能追剧社原创,禁止任何形式的转载,转载请后台联系,但欢迎你们转发到朋友圈。近几年,偶像热回温,大佬瞄准这块大蛋糕,蓝海瞬间变红海,人人都想在热闹……一生一世结局时宜梦回西洲,辰时夫妇大婚,这3点让人遗憾周生辰,我爱你我爱你,时宜前世,周生辰和时宜将爱意藏于心口,连喜欢都不曾说出口;今生,时宜终于为周生辰穿上如火的嫁衣,结为夫妇,两不相离。看完电视剧《一生一世……承受美国打压的8000亿华为,是什么样的组织架构?华为公司拥有完善的内部治理架构,各治理机构权责清晰、责任聚焦,但又分权制衡,使权力在闭合中循环,在循环中科学更替。内部控制华为基于组织架构和运作模式设计并实施了内部……刘诗诗版辛十四娘,以前觉得她舍己救人好伟大,现在看来太圣母了辛十四娘是一个什么样的故事呢,原著我并没有看过,网络上的版本也挺多的。今天,我们就来说说刘诗诗扮演的辛十四娘这个版本的故事。为啥我会说,一开始我觉得她舍身救人很感动……吴亦凡选妃全过程曝光专人验身设4个关卡,落选者送给男工吴亦凡选妃的全历程被暴光:设四道关卡自查,败者交给男顾问!最近,都美竹和吴亦凡之间的纷争终究告一段落。许多未经证明的质料在网页上随处飞腾。少许大V和站姐爆出了……数说欧洲杯首轮传统七强仅德国输球C罗一战两创纪录截止6月16日凌晨,欧洲杯小组赛第一轮全部结束。本文将通过一些数字,来回顾首轮的战况。0西班牙主场战瑞典,斗牛士全场17脚射门,颗粒无收,最终被北欧海盗0比0逼平。……茶叶包装设计视觉欣赏转自公众号:设长01hrMountea茶包装via:FormascopeDesign02hr是美人调味袋泡茶via:ilben张艺彬03hrsup……球迷质疑杜峰借国家队锻炼俱乐部球员,杜峰实则为国家队培养人才自从国家体育总局局长批评了中国男篮的表现之后,中国篮协就将自己的工作重心从三人篮球赛上又转移到了中国男篮的身上,为了能够在接下来的亚洲杯上扳回一城,大家纷纷讨论的是将会有哪些球……光棍节快到了,送你们甜到发腻的情话红豆生南国,春来发几枝?愿君多采撷,此物最相思。〔唐〕王维《相思》此情深处,红笺为无色。〔宋〕晏几道《思远人红叶黄花秋意晚》陌上花开,可缓缓归矣。……
面对新型冠状病毒,艾灸能做什么?(一)面对着来势汹汹的新型冠状病毒引起的肺炎,全国上下众志成城共同抵抗疫情,那我们自己应该怎么预防呢?中医认为正气存内,邪不可干,正气就是自身的抵抗力,邪气就是我们所说的病气,……一起云旅游盘点全世界最黄的5个景点,好想去看看!1。埃塞俄比亚,达洛尔,因为活跃的火山、间歇泉和喷气孔,达洛尔始终处于高温状态,平均气温高达35C,夏天甚至能飙到47C,曾经在1960到1966年间创下全世界人类居住地中最高……如何正确赏析贾浅浅的雪天(下)诗由心出人生背景合理想象前两篇文章我从1。(上)逐字逐句,仔细品味,有点联想。2。(中)丰富联想,天马行空,自由创新。说了如何赏析《雪天》。在以上两篇中,我认为,从诗歌的文字表面上去叫好,或者贬……小小福气可以创造暖暖大奇迹福文化在中国,历史极其悠久,并早已深入每一个炎黄子孙的血液与灵魂。中国人最喜欢福这个字,过年家家户户大门上还要贴个福字。尤其是在对待孩子上,父母们都希望能够把所有的福气送给孩子……中秋节这么安排,让你的孩子事半功倍中秋将至,在开学小半个月后迎来了第一个小长假,可以说每个孩子都在翘首以盼。面对日益紧张的学习任务,这三天该如何安排呢?埋头学习似乎又浪费了这大好秋日时光,但是如果三天全都……孩子长期不睡午觉对身体发育有影响吗?唉原来我一直做错了之前看过一条热搜如何让熊孩子快速午睡,上一秒还在笑其他人的奇葩哄睡方法,但下一秒就流下了不甘的眼泪。原来不睡午觉的熊孩子不止我家一个。为了让孩子睡觉,连玩偶都不放过……我们村有19个,邻村28个,农村光棍现象,究竟有多严重?文:张悦亭图:来自网络在我的记忆里,农村所带给我的概念是:湛蓝明净的天空、淳朴热情的乡邻乡亲、悠然自得的锄禾、邻里之间的互助热情。虽然眼下的形式和过往有了一些变化,……人脉宽广的人,身上有这2个特征,你有几个?《三国演义》第一回讲:天下大势,分久必合,合久必分。生活中的很多规律,其实也跟这天下大势一样,周而复始,循环往复。就拿人脉这件事来说,几年前,人人都在追捧人脉的作用,于是……考研大军二本生成主力,复试成绩不理想,真相被揭开2020年考研已经彻底落下帷幕,在考研大军中,很多人被今年的题难哭了,然而,在考研大军中的主力军中,莫过于二本学生。根据往年的考研经验可以得出,二本生在考研的过程中,笔试……在社会上交朋友,要学会远离这4种人,希望你能慧眼识珠前言:每个人生来就自带着双面面具,真情假意难以辨别。从每天起床睁开眼开始,我们就开始带着伪装好的面具生活。人心复杂,无法想象真心对待我们的人是哪一个,需要我们……今天感悟分享忘情下等人薄情,中等深情,上等人忘情。忘情不是无情,而是有情而无累。普通人要么是薄情无情,无法体味世间的温暖;要么则是深情到难以自拔,自哀自伤。而忘情的……不打骂不吼叫,这种魔性育儿法让孩子笑着听话新冠病毒疫情席卷而来,一时间全国上下都只能宅在家里。然而,仅一天下来就有老母亲表示不淡定了,孩子在家就是灾难大片啊。好好的一瓶豆腐乳瞬间被消灭干净。孩子玩过家……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网