游戏电视苹果数码历史美丽
投稿投诉
美丽时装
彩妆资讯
历史明星
乐活安卓
数码常识
驾车健康
苹果问答
网络发型
电视车载
室内电影
游戏科学
音乐整形

基于Kong和Kubernetes的WebApi多版本解决方

  一:背景1。讲故事
  去年阿里聚石塔上的所有isv短信通道全部对接阿里通信,我们就做了对接改造,使用阿里提供的。netsdk。
  网址:https:help。aliyun。comdocumentdetail114480。html
  同事当时使用的是ons。netv1。1。3版本,程序上线后若干天就会有一次程序崩溃现象,当时也没特别在意,以为是自己代码或者环境出了什么问题,索性就加了一个检测程序,如果检测到sdk程序退出就自动重启,就这样先糊弄着,直到有一天服务器告警,那个程序CPU居然飙到100,服务器可是16核128G的哦二:分析问题1。抓dump文件
  情况比较紧急,马上给程序发送CtrlC命令让程序退出,结果又退出不了,奇葩为了分析问题抓了一个dump下来,然后强制kill掉程序。2。查看线程池以及各个线程正在做什么?0:000!tpCPUutilization:100WorkerThread:Total:0Running:0Idle:0MaxLimit:32767MinLimit:16WorkRequestinQueue:0NumberofTimers:1CompletionPortThread:Total:1Free:1MaxFree:32CurrentLimit:1MaxLimit:1000MinLimit:16
  从CPUutilization:100上看,果然cpu100了,发现WorkerThread没有Running线程,可能是因为执行了CtrlC都销毁了,接下来用e!clrstack把所有的托管线程栈打出来。0:000e!clrstackOSThreadId:0x1818(0)Unabletowalkthemanagedstack。Thecurrentthreadislikelynotamanagedthread。Youcanrun!threadstogetalistofmanagedthreadsintheprocessFailedtostartstackwalk:80070057
  从输出结果看,没有任何托管线程,唯一的那个线程0还不是还托管线程,然后改成e!dumpstack把非托管线程栈找出来。0:000e!dumpstackOSThreadId:0x1818(0)Currentframe:ntdll!ZwRemoveIoCompletion0x14ChildSPRetAddrCaller,Callee000000637323ef4000007ff8327bac2fKERNELBASE!GetQueuedCompletionStatus0x3f,callingntdll!ZwRemoveIoCompletion000000637323efa000007ff81b9c8a00ONSClient4CPP!metaqjuce::URL::launchInDefaultBrowser0x273d0,callingkernel32!GetQueuedCompletionStatus000000637323f09000007ff81ba3eb0aONSClient4CPP!ons::Message::getMsgBody0x5a8a,callingONSClient4CPP!metaqjuce::URL::launchInDefaultBrowser0x1f100000000637323f14000007ff81ba3f084ONSClient4CPP!ons::Message::getMsgBody0x6004,callingONSClient4CPP!ons::Message::getMsgBody0x5800000000637323f28000007ff81ba233b4ONSClient4CPP!ons::ONSFactoryProperty::setSendMsgTimeout0xa6b4,callingONSClient4CPP!ons::ONSFactoryProperty::setSendMsgTimeout0xa5d0000000637323f2b000007ff81ba11b43ONSClient4CPP!ons::ONSFactoryAPI::ONSFactoryAPI0x153000000637323f31000007ff81ba12d64ONSClient4CPP!ons::SendResultONS::operator0xc44,callingONSClient4CPP!ons::ONSFactoryAPI::ONSFactoryAPI0x10000000637323f46000007ff81ba83eb4ONSClient4CPP!ons::Message::getStoreTimestamp0xf484,callingONSClient4CPP!ons::Message::getStoreTimestamp0xf1c4000000637323f63000007ff8356f7d94ntdll!RtlExitUserProcess0xb4,callingntdll!LdrShutdownProcess000000637323f69000007ff832777c23KERNELBASE!CtrlRoutine0xa3000000637323f78000007ff834df8364kernel32!BaseThreadInitThunk0x14,callingkernel32!WriteConsoleOutputW0x530
  从非托管调用栈来看,其中KERNELBASE!CtrlRoutine表明主线程接受到了CtrlC命令,从栈顶发现貌似不能退出的原因是主线程被ONSClient4CPP接管,而且这个C正在做远程连接再等待网络IO返回,但这种会把16核cpu打满应该不太可能,这个问题貌似到这里就卡住了。三:重启程序发现问题依旧1。抓dump文件
  很开心的是程序重新启动后,过了两分钟CPU又在飙升,这次学乖了,等CPU到了60,70的时候抓dump文件。2。继续排查0:000。timeDebugsessiontime:FriApr1717:36:50。0002020(UTC8:00)SystemUptime:355days5:33:48。092ProcessUptime:0days0:02:11。000Kerneltime:0days0:03:31。000Usertime:0days0:13:22。0000:000!tpCPUutilization:59WorkerThread:Total:3Running:0Idle:3MaxLimit:32767MinLimit:16WorkRequestinQueue:0NumberofTimers:1CompletionPortThread:Total:2Free:2MaxFree:32CurrentLimit:2MaxLimit:1000MinLimit:16
  从上面代码可以看到,进程启动了2分11秒,这次cpu利用率是59,抓的有点早,不过没关系,先看一下Threads情况。0:000!threadsThreadCount:25UnstartedThread:0BackgroundThread:8PendingThread:0DeadThread:16HostedRuntime:noLockIDOSIDThreadOBJStateGCModeGCAllocContextDomainCountAptException01cdc0000022bb9f532202a020Preemptive0000022BBBFACCE8:0000022BBBFADFD00000022bb9f27dc01MTA223dc0000022bb9f7f9f02b220Preemptive0000000000000000:00000000000000000000022bb9f27dc00MTA(Finalizer)34296c0000022bb9fe97b0102a220Preemptive0000000000000000:00000000000000000000022bb9f27dc00MTA(ThreadpoolWorker)XXXX500000022bb9ffc5a01039820Preemptive0000000000000000:00000000000000000000022bb9f27dc00Ukn(ThreadpoolWorker)XXXX600000022bd43938c01039820Preemptive0000000000000000:00000000000000000000022bb9f27dc00Ukn(ThreadpoolWorker)。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。1632429e80000022bd48986501029220Preemptive0000022BBC102108:0000022BBC103FD00000022bb9f27dc00MTA(ThreadpoolWorker)1642529840000022bd489d4701029220Preemptive0000022BBC0EA2D0:0000022BBC0EBFD00000022bb9f27dc00MTA(ThreadpoolWorker)
  好家伙,才2分11秒,托管线程ThreadCount:25就死了DeadThread:16个,而且从threads列表中看,windbg给的最大编号是164,说明当前有(1641)25142个非托管线程,应该就是阿里的ONSClient4CPP开启的,为什么开启这么多线程,这就是一个很值得关注的问题了,接下来还是用e!dumpstack把所有线程的托管和非托管线程栈打出来,由于信息太多,我就截几张图。
  个人猜测,纯技术讨论:图1:
  从堆栈上看,有105个线程卡在ntdll!ZwRemoveIoCompletion0x14这里,而且从ONSClient4CPP!metaqjuce::URL::launchInDefaultBrowser0x23072中看,貌似阿里开了一个浏览器内核,用内核来发送数据,估计这里并发阈值开的还挺大的,咨询了下同事是前面有一家大客户发了很多的短信,估计是大量的回持积压,这个Csdk进行了疯狂读取,这个跟CPU暴涨应该有脱不了的关系。图2:
  从检索上看有28个线程貌似正在临界区等待锁,CPU高的一个经典案例就是当很多线程在临界区等待的时候,当某一个正在临界区中的线程离开后,这28个线程的调度竞抢也是CPU高的一个原因。
  个人水平有限,进一步挖非托管堆目前还没这个技术()四:解决方案
  这种SDK的问题还能有什么解决方案,能想到的就是去官网找下可有最新版:
  可以看到最新版的ons。netv1。1。4中提到的优化点:优化消息拉取流程,避免特殊情况下拉取异常造成的消息堆积。
  果然用了最新版的sdk就可以了,。

商家的福星,腾讯附近推让您不再为客源发愁微信作为社交软件,使用人数达到11亿人次,它不仅仅是一个聊天软件,也是集支付、购物、娱乐等功能于一身。还可以通过小程序可以订票、买单等。微信俨然已经成为我们日常生活中,不……刚卸载了墨迹天气,广告太多了,请问大家都用什么天气预报软件?系统自带,现在各厂商的自带生活应用软件已经很完善了,数据来源也都是权威机构,没必要去搞那些花里胡哨的第三方软件,又占内存,又多广告,还总有弹窗,并且,一个天气应用你要获取我的位……离开华为后,荣耀12512G敢卖到7999,值吗?Magic3至臻版,采用骁龙888Plus处理器,6。76英寸柔性OLED曲面药丸挖孔屏,120Hz的刷新率,10亿色显示,分辨率27721344,支持1920Hz高频PWM调……有望避开美国技术,华为新款处理器问世,却被鸿蒙盖住锋芒指令集架构位于芯片设计的上游,是整个半导体行业的根基,有着至关重要的作用。当前,全球主流芯片构架有X86、ARM、MIPS这三大巨头。其中,ARM对全球芯片底层架构市场有……老电脑怎么上win10最近,经笔者亲测,10到15年前左右的电脑都可以上win10,更老更旧的电脑没有样机,所以暂时无法测试。但是,硬件上还是需要做出些提升,例如,最好有固态硬盘,这样不仅会加……能打电话的望远镜!潜望式长焦手机如何选?性能、拍照和续航,已经成为了鞭策智能手机发展的三驾马车。其中,以麒麟9000和骁龙888为代表的芯片可以给予手机最澎湃的性能动力;逐渐兴起的120W快充技术足以弥补续航方面的短……发布在即?小米手环4通过蓝牙联盟认证5。0NFC全都有据蓝牙技术联盟产品认证页面显示,两款来自华米科技的设备于3月20日通过了蓝牙认证,型号分别为XMSH08HM和XMSH07HM。从产品名称可以明显看到,这两款产品为小米手……Python简直无所不能!在电脑上如何调用手机摄像头?教你轻看到标题,卧槽!Python好牛批实际上它真的也牛批!兄弟们用的台式电脑现在很少装摄像头的吧,笔记本就不要说话了!虽然电脑没有摄像头,不过万一要是想跟女朋友电……父爱无声华为撤出加拿大,裁员加员工,是对孟晚舟最有力的声援趣谈八卦华为公司近日宣布,将解散驻加拿大总部,裁员4500余人,拒绝授权5G专利,放弃加拿大市场,撤回华为技术人员。这一连串的动作,是想给加拿大政府传达一个明确的信号,在孟晚舟……水货iPhone改国行只需30块,已有很多小白中招!教你如何最近有很多网友跟我反映,说自己买的国行iPhone,验机才发现是水货。关键这不是一两个,而是很多!购买渠道很多,有某宝,某鱼等常见的平台。这类iPhone有几个特点,一是……缺芯浪潮,台积电成为亚洲市值第一,超越腾讯今年缺芯的情况相信大家都有所耳闻吧,不仅波及最需芯片的电脑硬件和手机硬件厂商。连电视和汽车也被其所影响。而就在8。20上午,台积电超越了腾讯成为了亚洲第一。在中国的股票一……滴滴出行从简陋的车库到千亿帝国的铸成,再到纳斯达克的狂欢美国东部时间6月30日,滴滴正式在纽交所挂牌上市。滴滴开盘价18美元,市值一度超过800亿美元(约合5166亿人民币)。与其他公司敲钟鸣锣的热闹仪式截然相反,滴滴上市显得……
烽火芳菲素颜征服世界获IMDb中国影片最高分由二战时期真实历史事件改编的电影《烽火芳菲》正在全国各大影院火热上映,有金棕榈大师比利奥古斯特亲执导筒,七国专业影人通力合作,该片的品质得到有效保证,在国际最权威的IMDb网站……烽火芳菲口碑逆袭众主创直面争议由殿堂级电影大师比利奥古斯特执导的电影《烽火芳菲》正在全国热映,在各大平台的电影评分持续走高,领跑同档期电影。但仍有不少网友质疑剧情太过平淡,并围绕25万百姓换56名飞行员性命……iOS设备间如何快速互传数据?一招帮你搞定iOS设备间快速互传数据,你一定不能错过这款软件易我手机数据传输。最近买了新iPhone,登录了ID,发现有些数据并没有全部出现在新手机上面,还是一些比较重要的文件数据,……爱无国界烽火芳菲人性之美直抵人心擅长深入挖掘人性的殿堂级导演比利奥古斯特,此次执导《烽火芳菲》用娓娓道来的叙述方式献上了一部直抵人心的诚意之作。影片日前已登陆各大院线,观众观影后好评不断,纷纷表示电影基调平和……烽火芳菲杭州首映刘亦菲自述乱世深情合影奥古斯特11月10日,历经6年心血打造的反战佳作《烽火芳菲》全国公映,并在杭州举行首映礼,同时启动芳菲公益基金,宣布将捐出部分电影票房用于救助当年日军细菌战的受……界读丨美国批准向华为出售汽车芯片意味着什么?欧界报道:根据相关媒体的报道显示,目前美国已经批准了供应商数亿美元的许可证申请,允许美国企业向华为出售汽车零部件的芯片。众所周知,自从美国限制相关企业对华为的高端芯片供应……降魔传王晶甄琪空降郑州看鬼马导演王晶频出金句!11月7日,应奥斯卡电影院线邀请,导演王晶携河南演员甄琪空降郑州高校宣传新片《降魔传》。据悉,这是导演王晶的第一百部作品,也是王晶第一次拍魔幻题材的喜剧大片,王晶和甄琪刚一现身……这是一场关乎千万人生命的旅程从去年上映的《血战钢锯岭》到今年的《敦刻尔克》,以真实历史事件改编似乎成了国外电影的主流,这一类电影不仅在观众口碑和艺术价值上取得了较高的成就,票房上也不输一般的商业大片。据了……奥斯卡导演重现战火岁月烽火芳菲缅怀历史遗痕由比利奥古斯特执导,刘亦菲、埃米尔赫斯基领衔主演,严屹宽、余少群等联袂出演的电影《烽火芳菲》将于11月10日全国公映,今日片方发布了一支幕后特辑,记录了全体工作人员克服恶劣条件……西游记女儿国百日之约四师徒披星戴月闯情难由郑保瑞执导,将于2018年大年初一上映的魔幻爱情喜剧《西游记女儿国》在距离上映还有整整100天之际曝光倒计时海报,宣告影片上映进入最后的冲刺阶段。四师徒化身天神,在茫茫夜色中……烽烟四起烽火芳菲生死绝恋演绎抗战真情由比利奥古斯特最新执导,刘亦菲、埃米尔赫斯基、严屹宽、余少群等实力演员联袂出演的电影《烽火芳菲》将于11月10日全国公映,今日电影终极海报、终极预告片两款重磅物料双双曝光,在战……钟欣潼出席电影青蛇开机仪式搭档麦亨利林佑威续写千年缘恋星关系9月23日讯早前阿娇钟欣潼于厦门酒店房间不慎跌倒,撞破右边眉骨,经过两次缝合手术后,今日(22日)已经全面复工。今早阿娇现身横店,跟两位男主角师弟麦亨利,以及台湾男……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网