第一百五十八章 狂飆
第158章 狂飆
刘振华让他说完的话在空中迴荡,目光在桌上三人身上扫了一圈。
“远山,你怎么看?”
“我也觉得韩非这一步走得对。”陈远山咧嘴笑说,“舆论是有时效性的商品,今天不用明天就贬值。这个时机抓得很准。我估计那小子现在应该正紧盯著屏幕,眼睛都快瞪出来了。全量推送,这魄力....
17
“是赌力。”赵国强插嘴说,“舆论热度是高,信任成本是低,但系统能不能扛住是另一回事。数据再漂亮,伺服器得扛得住才行。別到时候用户来了,门却打不开。那不是闹笑话吗?”
陈远山摇摇头:“老赵,你能不能盼点儿好?”
“我说的是事实。”赵国强执意道。
“周明已经匯报过了,”方静抬起下巴说,“青鸟的系统经过了他们全方位加固,没有问题的。而且我已经通知技术部门盯著了,青鸟那边的系统监控日誌每干分钟同步一次,目前一切正......”她的话被手机铃声打断。
方静拿出手机,她一看见来电显示为总部技术监控中心,心头就掠过不详的预感。
三人转头朝她望来。
“非哥,出问题了!”温杰大喊,他的手指甲在键盘上快速跳动,仿佛受惊的蟑螂。
韩非和张芮伊从椅子上跳了起来。技术小组的三个人同时转头朝温杰的电脑屏幕看去。
“什么问题?”韩非问,跨出两大步,来到温杰身后。
“计费回调......”温杰话声颤抖,手上不停,双眼紧盯屏幕,浓密的髮际线下留下一滴汗珠,“超时率在飆升,13%......21%......35%!非哥,广东那边的接口在往回吐数据,大量请求得不到確认!”
不安的情绪在会议室里如涟漪般荡漾开来。
“伺服器什么状態?”
“负载正常,cpu占用47%,內存占用正常,资料库连接池......”温杰猛然住口,仿佛被人掐住了喉咙。
“资料库连接池怎么了?”林峰大声问,急切地在自己的电脑上敲出一连串命令。
“连接池......”温杰咽了口唾沫,“连接池快满了。大量请求在等待回调確认,占著连接不放,新的请求进不来了。”
韩非的自光从林峰跳到周明,再回到温杰,他的脑子里翻腾不已,最后做出无可避免的判断,使得他露出迷惑的神情。难道是青鸟的伺服器扛不住了?
“魔都本地的业务怎么样?”他听见自己问。
记住我们101看书网
“还活著,”温杰说,“但如果在魔都的用户也受到影响...
“7
“先別急著下结论。”周明打断说,“林峰,看看本地负载。”
所有人都转头朝林峰的电脑屏幕望去。
cpu:47%—49%—52%...
內存:正常网络出流量:正常资料库查询响应时间:87ms(正常)
“青鸟的伺服器没问题。”周明坚定地说,“cpu在涨是因为连接池积压导致的线程等待,不是资源耗尽。根源不在我们这儿。
“那是什么?”温杰用紧绷的声音问。
“你把sp接口的回调日誌调出来。”周明说,“林峰,看看我们这边发出的请求,移动网关有没有確认?”
温杰调出日誌。只见一行绿色的“200ok”正迅速减少,而那行红色的“timeout”越来越多。
林峰隨即切出一个窗口,屏幕上密密麻麻地滚过一行行代码。
“我们发出去的请求,移动那边没有回音。”林峰大声说,“不是我们的问题,是广东移动的计费网关出了问题。”
韩非皱起眉头:“什么?”
“资料库锁表?”温杰问。
“大概率是。”周明说,“或者內存溢出。付费订阅集中爆发,广东那边的系统架构可能应付不了这种瞬时洪峰。我们这边发出去了,他们那边接不住,回调確认回不来,我们的连接池就被拖死了。”
“那怎么办?”温杰问。
“先切!立刻启动限流。广东方向的回调请求暂时不处理,只收不答,先把魔都保住,让连接池缓过来。”
“可是...
“”
“照做。”韩非说。
温杰吸了口气,用手指在键盘上敲下一行命令。
屏幕上的监控面板闪动了一下。资料库连接池的数字开始从98%缓缓回落。
“限流已启动。”温杰说,“广东方向的回调请求在本地队列中的积压,大约有......十一万多条,还在不停地涨。”
这时方静留给韩非的那部专机响了起来。他拿出专机,深深吸了口气,按下接听键。
“不是稳如泰山吗?!”
王宏新的声音像一颗爆炸的炮弹在技术部办公室里轰然响起。
眾人面露诧异之色,纷纷转头去看办公室门口,望著王宏新脸上有如罩了一层寒霜,大步走了进来。
陈宇站在监控大屏前,脸色异常苍白,光滑的头顶沁出汗水,闪闪发光。大屏幕上,原本一片绿色的指標现在已经红了大半。
资料库响应时间:28743ms
连接池使用率:100%
sp接口成功率:34.7%
cpu负载:98.2%
“王总,我......”陈宇的声音颤抖著。
“你什么你?!”王宏新大声说,被自己的声音嚇了一跳。他的手指指著屏幕中央,“四十万並发?稳如泰山?你跟我说说,这叫稳如什么?!”
旁边几个技术人员的脸都绿了。他们盯著自己的电脑屏幕,敲打键盘的手指比平时更加用力,生怕显得自己工作不够积极,惹得身旁这位领导大发雷霆。
陈宇拧绞著双手:“王总,是......是资料库锁表了。用户的订阅请求量又大又集中,写入並发超过了oracle的承受上限。我们做了压力测试,但测试环境用的是虚擬数据,没有模擬真实场景下的....
“7
“我不听你解释!”王宏新手臂一挥,差点儿打中桌上的水杯,“现在怎么办?你告诉我,现在怎么办!”
陈宇用手抹了抹脸,转身面对大屏,用手指在键盘上敲了几下。
“王总,现在......呃,现在资料库的活跃会话已经堆到了......八百多个,全部卡在了insertintosubscription”这条语句上。正常的dml操作已经完全无法执行了。
呃......我已经联繫了dba,准备ki1i掉阻塞会话,但是......”陈宇结结巴巴地说。
“但是什么?”
“但是积压的请求已经超过了四十万条。就算是把现在的锁解开,重启资料库,新的请求会在三分钟內再次把系统衝垮。”
王宏新的眼睛眨了眨,张开嘴又闭上。他等待自己的怒气上升,却迟迟没等到,於是他很確定自己老了。
“那你的意思是没救了?”
“有的王总,有的。”陈宇赶紧说,“但首先,我们需要青鸟那边配合,把订阅请求的模式从同步改成异步,用队列削峰。然后......”他清了两次喉咙,才继续说,“我们需要......总部的技术支持,临时扩容资料库的內存和连接池上限。”
王宏新面无表情地盯著陈宇,看了三秒钟,然后拿起电话。
刘振华、陈远山和赵国强目不转睛地看著桌上那台开了免提的电话,话筒下方的红色指示灯不详地亮起,显示信號不良。
王宏新那嘶哑浓重的广东口音伴隨著噼啪声从话筒里传出:“————资料库锁死了,dba正在处理,但如果不改请求模式,那重启了也没用。刘总,我们急需总部的技术支持,还需要您协调青鸟那边......”接著话筒发出一声尖鸣。
刘振华抓起话筒:“青鸟那边已经知道了。”他嘆了口气,看向正在窗前打电话的方静,“方静,韩非那边什么反应?”
方静转过身来,一边听著手机,一边做了个手势,表示韩非那边已经在紧急处理了。
陈远山伸出双手,抓了抓他的地中海髮型,一双眼珠直瞪著刘振华,咳了一声,又咳一声。他瞥了赵国强一眼,仿佛对他那张乌鸦嘴表示不满,张开嘴巴然后又闭上。但赵国强什么反应都没有。
“王宏新,”刘振华用命令式的口吻对著话筒说,“我给你三十分钟。三十分钟之內,我要看到系统恢復。总部的技术支持,陈远山马上就去协调。青鸟那边,方静已经在沟通配合你了。你那边,你给我稳住。”
“总部那边已经知道了。”韩非说,放下手机,看著温杰和周明,“广东移动的dba
正在ki3阻塞会话,但需要我们把请求模式从同步改成异步,用队列削峰。”
“异步队列......”温杰说,“我写过,mvp版本的时候就用过本地队列。但那时候只是应付魔都的几十万用户,现在广东这边的情况......”他看著韩非,咬著下唇,“能行吗?”
“能行。”周明说,“队列削峰的原理跟规模无关。你只需要把发往广东的订阅请求从同步等待回应”改成放入本地队列,立即返回成功”。然后再控制队列消费的速度,比如每秒五百条,匀速推给广东的接口。”
“那用户那边呢?他们收不到確认简讯怎么办?”温杰问。
“简讯延迟总比系统崩了好。”韩非说,“用户可以等,市场不能等。”
周明点了点头:“韩社长说得对。开始吧。”
“好。”温杰在椅子上旋转半圈,手指开始在键盘上敲打。一行一行的代码在屏幕上跳了出来。
周明指著屏幕:“这里加个重试上限,把消费速度再降一点。”
不到十五分钟就搞定了。
“好了。”温杰说,“异步队列已经上线了。广东方向的请求现在走本地队列,每秒限流三百条。积压的八万多条大概五分钟能推完。”
“广东那边呢?“韩非问,朝屏幕上的监控面板看去。
资料库连接池:从98%降到了64%。
cpu负载:平稳。
魔都本地的订阅:一切正常。
“他们的资料库正在重启。”林峰说著,在自己的电脑上调出另一个监控界面,“dba杀了阻塞会话,加了內存,连接池上限调高了一倍。等到重启完成后,我们这边的队列开始推送,应该能接得住。”
韩非在椅子上坐下,拿出一包香菸,发现自己仍屏住呼吸,於是长长地吁了一口气。
监控大屏幕上的红色数字正在一块一块地变绿。
资料库响应时间:从28743ms降到了312ms。
连接池使用率:从100%降到了47%。
sp接口成功率:从34.7%升到了98.2%。
陈宇在椅子上瘫坐下来,虚弱无力,衬衫后背全被汗水浸湿。
王宏新双手叉腰,看著大屏幕上的绿色数字。
“王总,”陈宇用萎靡的声音说,“队列还有两万多条在消化,预计三分钟清空。系统已经稳住了。”
王宏转头看著陈宇,不发一语。
陈宇下意识地举起手臂,遮住脸部。
王宏新沉下脸,神情严峻。“陈宇,”他说,语气介於迷惑和斥责之间,“你跟我说实话。你那四十万並发,稳如泰山,到底是怎么测的?”
陈宇吞了口口水,低头看著自己的双手。
“怎么?不敢说?”
“王总,测试没有问题......”陈宇开口说,假装找寻適当的字眼,“四十万並发,我们確实扛住了。但......但这实际订阅量......远超四十万。”
王宏新扬起右眉:“多少?”
陈宇指著监控屏幕上已经恢復正常的计费日誌窗口:“根据青鸟那边异步队列的积压数据反推,推送后一个小时內涌入的订阅请求,峰值至少在......七十万以上。”
王宏新双眼睁大,又眯缝起来,看著陈宇。
“七十万?”王宏新用夸张的语调复述一次,“转化率百分之三十五?”
“保守估计。”陈宇说,“我们只是按照四十万做的压力测试,可谁也没想到,舆论热度能把转化率推到这种程度......”
王宏新几乎喘不过气,感觉到美妙的兴奋感从体內升起,將系统故障所带来的不悦一扫而空。
“算了。”最后他挥了挥手,“今天不跟你算帐。回去写一份详细的事故报告,下周一之前放到我桌上。我要看到完整的事故原因、责任认定,还有整改方案。少了一样,你就去运维中心管伺服器,別在我这儿待了。”
陈宇站了起来:“是,王总。”
“还有,今天这件事,要不是人家青鸟那边反应快,用异步队列把请求给削住了,你就算把资料库重启八遍也扛不住。回头记得给人韩社长打个电话,道个谢。”
七十万。王宏新大踏步离开技术部办公室,朝走廊另一端走去,嘴里不断亢奋地重复这个数字。
刘振华让他说完的话在空中迴荡,目光在桌上三人身上扫了一圈。
“远山,你怎么看?”
“我也觉得韩非这一步走得对。”陈远山咧嘴笑说,“舆论是有时效性的商品,今天不用明天就贬值。这个时机抓得很准。我估计那小子现在应该正紧盯著屏幕,眼睛都快瞪出来了。全量推送,这魄力....
17
“是赌力。”赵国强插嘴说,“舆论热度是高,信任成本是低,但系统能不能扛住是另一回事。数据再漂亮,伺服器得扛得住才行。別到时候用户来了,门却打不开。那不是闹笑话吗?”
陈远山摇摇头:“老赵,你能不能盼点儿好?”
“我说的是事实。”赵国强执意道。
“周明已经匯报过了,”方静抬起下巴说,“青鸟的系统经过了他们全方位加固,没有问题的。而且我已经通知技术部门盯著了,青鸟那边的系统监控日誌每干分钟同步一次,目前一切正......”她的话被手机铃声打断。
方静拿出手机,她一看见来电显示为总部技术监控中心,心头就掠过不详的预感。
三人转头朝她望来。
“非哥,出问题了!”温杰大喊,他的手指甲在键盘上快速跳动,仿佛受惊的蟑螂。
韩非和张芮伊从椅子上跳了起来。技术小组的三个人同时转头朝温杰的电脑屏幕看去。
“什么问题?”韩非问,跨出两大步,来到温杰身后。
“计费回调......”温杰话声颤抖,手上不停,双眼紧盯屏幕,浓密的髮际线下留下一滴汗珠,“超时率在飆升,13%......21%......35%!非哥,广东那边的接口在往回吐数据,大量请求得不到確认!”
不安的情绪在会议室里如涟漪般荡漾开来。
“伺服器什么状態?”
“负载正常,cpu占用47%,內存占用正常,资料库连接池......”温杰猛然住口,仿佛被人掐住了喉咙。
“资料库连接池怎么了?”林峰大声问,急切地在自己的电脑上敲出一连串命令。
“连接池......”温杰咽了口唾沫,“连接池快满了。大量请求在等待回调確认,占著连接不放,新的请求进不来了。”
韩非的自光从林峰跳到周明,再回到温杰,他的脑子里翻腾不已,最后做出无可避免的判断,使得他露出迷惑的神情。难道是青鸟的伺服器扛不住了?
“魔都本地的业务怎么样?”他听见自己问。
记住我们101看书网
“还活著,”温杰说,“但如果在魔都的用户也受到影响...
“7
“先別急著下结论。”周明打断说,“林峰,看看本地负载。”
所有人都转头朝林峰的电脑屏幕望去。
cpu:47%—49%—52%...
內存:正常网络出流量:正常资料库查询响应时间:87ms(正常)
“青鸟的伺服器没问题。”周明坚定地说,“cpu在涨是因为连接池积压导致的线程等待,不是资源耗尽。根源不在我们这儿。
“那是什么?”温杰用紧绷的声音问。
“你把sp接口的回调日誌调出来。”周明说,“林峰,看看我们这边发出的请求,移动网关有没有確认?”
温杰调出日誌。只见一行绿色的“200ok”正迅速减少,而那行红色的“timeout”越来越多。
林峰隨即切出一个窗口,屏幕上密密麻麻地滚过一行行代码。
“我们发出去的请求,移动那边没有回音。”林峰大声说,“不是我们的问题,是广东移动的计费网关出了问题。”
韩非皱起眉头:“什么?”
“资料库锁表?”温杰问。
“大概率是。”周明说,“或者內存溢出。付费订阅集中爆发,广东那边的系统架构可能应付不了这种瞬时洪峰。我们这边发出去了,他们那边接不住,回调確认回不来,我们的连接池就被拖死了。”
“那怎么办?”温杰问。
“先切!立刻启动限流。广东方向的回调请求暂时不处理,只收不答,先把魔都保住,让连接池缓过来。”
“可是...
“”
“照做。”韩非说。
温杰吸了口气,用手指在键盘上敲下一行命令。
屏幕上的监控面板闪动了一下。资料库连接池的数字开始从98%缓缓回落。
“限流已启动。”温杰说,“广东方向的回调请求在本地队列中的积压,大约有......十一万多条,还在不停地涨。”
这时方静留给韩非的那部专机响了起来。他拿出专机,深深吸了口气,按下接听键。
“不是稳如泰山吗?!”
王宏新的声音像一颗爆炸的炮弹在技术部办公室里轰然响起。
眾人面露诧异之色,纷纷转头去看办公室门口,望著王宏新脸上有如罩了一层寒霜,大步走了进来。
陈宇站在监控大屏前,脸色异常苍白,光滑的头顶沁出汗水,闪闪发光。大屏幕上,原本一片绿色的指標现在已经红了大半。
资料库响应时间:28743ms
连接池使用率:100%
sp接口成功率:34.7%
cpu负载:98.2%
“王总,我......”陈宇的声音颤抖著。
“你什么你?!”王宏新大声说,被自己的声音嚇了一跳。他的手指指著屏幕中央,“四十万並发?稳如泰山?你跟我说说,这叫稳如什么?!”
旁边几个技术人员的脸都绿了。他们盯著自己的电脑屏幕,敲打键盘的手指比平时更加用力,生怕显得自己工作不够积极,惹得身旁这位领导大发雷霆。
陈宇拧绞著双手:“王总,是......是资料库锁表了。用户的订阅请求量又大又集中,写入並发超过了oracle的承受上限。我们做了压力测试,但测试环境用的是虚擬数据,没有模擬真实场景下的....
“7
“我不听你解释!”王宏新手臂一挥,差点儿打中桌上的水杯,“现在怎么办?你告诉我,现在怎么办!”
陈宇用手抹了抹脸,转身面对大屏,用手指在键盘上敲了几下。
“王总,现在......呃,现在资料库的活跃会话已经堆到了......八百多个,全部卡在了insertintosubscription”这条语句上。正常的dml操作已经完全无法执行了。
呃......我已经联繫了dba,准备ki1i掉阻塞会话,但是......”陈宇结结巴巴地说。
“但是什么?”
“但是积压的请求已经超过了四十万条。就算是把现在的锁解开,重启资料库,新的请求会在三分钟內再次把系统衝垮。”
王宏新的眼睛眨了眨,张开嘴又闭上。他等待自己的怒气上升,却迟迟没等到,於是他很確定自己老了。
“那你的意思是没救了?”
“有的王总,有的。”陈宇赶紧说,“但首先,我们需要青鸟那边配合,把订阅请求的模式从同步改成异步,用队列削峰。然后......”他清了两次喉咙,才继续说,“我们需要......总部的技术支持,临时扩容资料库的內存和连接池上限。”
王宏新面无表情地盯著陈宇,看了三秒钟,然后拿起电话。
刘振华、陈远山和赵国强目不转睛地看著桌上那台开了免提的电话,话筒下方的红色指示灯不详地亮起,显示信號不良。
王宏新那嘶哑浓重的广东口音伴隨著噼啪声从话筒里传出:“————资料库锁死了,dba正在处理,但如果不改请求模式,那重启了也没用。刘总,我们急需总部的技术支持,还需要您协调青鸟那边......”接著话筒发出一声尖鸣。
刘振华抓起话筒:“青鸟那边已经知道了。”他嘆了口气,看向正在窗前打电话的方静,“方静,韩非那边什么反应?”
方静转过身来,一边听著手机,一边做了个手势,表示韩非那边已经在紧急处理了。
陈远山伸出双手,抓了抓他的地中海髮型,一双眼珠直瞪著刘振华,咳了一声,又咳一声。他瞥了赵国强一眼,仿佛对他那张乌鸦嘴表示不满,张开嘴巴然后又闭上。但赵国强什么反应都没有。
“王宏新,”刘振华用命令式的口吻对著话筒说,“我给你三十分钟。三十分钟之內,我要看到系统恢復。总部的技术支持,陈远山马上就去协调。青鸟那边,方静已经在沟通配合你了。你那边,你给我稳住。”
“总部那边已经知道了。”韩非说,放下手机,看著温杰和周明,“广东移动的dba
正在ki3阻塞会话,但需要我们把请求模式从同步改成异步,用队列削峰。”
“异步队列......”温杰说,“我写过,mvp版本的时候就用过本地队列。但那时候只是应付魔都的几十万用户,现在广东这边的情况......”他看著韩非,咬著下唇,“能行吗?”
“能行。”周明说,“队列削峰的原理跟规模无关。你只需要把发往广东的订阅请求从同步等待回应”改成放入本地队列,立即返回成功”。然后再控制队列消费的速度,比如每秒五百条,匀速推给广东的接口。”
“那用户那边呢?他们收不到確认简讯怎么办?”温杰问。
“简讯延迟总比系统崩了好。”韩非说,“用户可以等,市场不能等。”
周明点了点头:“韩社长说得对。开始吧。”
“好。”温杰在椅子上旋转半圈,手指开始在键盘上敲打。一行一行的代码在屏幕上跳了出来。
周明指著屏幕:“这里加个重试上限,把消费速度再降一点。”
不到十五分钟就搞定了。
“好了。”温杰说,“异步队列已经上线了。广东方向的请求现在走本地队列,每秒限流三百条。积压的八万多条大概五分钟能推完。”
“广东那边呢?“韩非问,朝屏幕上的监控面板看去。
资料库连接池:从98%降到了64%。
cpu负载:平稳。
魔都本地的订阅:一切正常。
“他们的资料库正在重启。”林峰说著,在自己的电脑上调出另一个监控界面,“dba杀了阻塞会话,加了內存,连接池上限调高了一倍。等到重启完成后,我们这边的队列开始推送,应该能接得住。”
韩非在椅子上坐下,拿出一包香菸,发现自己仍屏住呼吸,於是长长地吁了一口气。
监控大屏幕上的红色数字正在一块一块地变绿。
资料库响应时间:从28743ms降到了312ms。
连接池使用率:从100%降到了47%。
sp接口成功率:从34.7%升到了98.2%。
陈宇在椅子上瘫坐下来,虚弱无力,衬衫后背全被汗水浸湿。
王宏新双手叉腰,看著大屏幕上的绿色数字。
“王总,”陈宇用萎靡的声音说,“队列还有两万多条在消化,预计三分钟清空。系统已经稳住了。”
王宏转头看著陈宇,不发一语。
陈宇下意识地举起手臂,遮住脸部。
王宏新沉下脸,神情严峻。“陈宇,”他说,语气介於迷惑和斥责之间,“你跟我说实话。你那四十万並发,稳如泰山,到底是怎么测的?”
陈宇吞了口口水,低头看著自己的双手。
“怎么?不敢说?”
“王总,测试没有问题......”陈宇开口说,假装找寻適当的字眼,“四十万並发,我们確实扛住了。但......但这实际订阅量......远超四十万。”
王宏新扬起右眉:“多少?”
陈宇指著监控屏幕上已经恢復正常的计费日誌窗口:“根据青鸟那边异步队列的积压数据反推,推送后一个小时內涌入的订阅请求,峰值至少在......七十万以上。”
王宏新双眼睁大,又眯缝起来,看著陈宇。
“七十万?”王宏新用夸张的语调复述一次,“转化率百分之三十五?”
“保守估计。”陈宇说,“我们只是按照四十万做的压力测试,可谁也没想到,舆论热度能把转化率推到这种程度......”
王宏新几乎喘不过气,感觉到美妙的兴奋感从体內升起,將系统故障所带来的不悦一扫而空。
“算了。”最后他挥了挥手,“今天不跟你算帐。回去写一份详细的事故报告,下周一之前放到我桌上。我要看到完整的事故原因、责任认定,还有整改方案。少了一样,你就去运维中心管伺服器,別在我这儿待了。”
陈宇站了起来:“是,王总。”
“还有,今天这件事,要不是人家青鸟那边反应快,用异步队列把请求给削住了,你就算把资料库重启八遍也扛不住。回头记得给人韩社长打个电话,道个谢。”
七十万。王宏新大踏步离开技术部办公室,朝走廊另一端走去,嘴里不断亢奋地重复这个数字。