2009年1月下旬的广州,清晨的风还带着点刺骨的冷。
我踩着上班高峰的人流走进机房时,王工已经趴在桌上睡着了。
电脑屏幕还亮着,上面是密密麻麻的服务器负载测试数据。
红色的预警线像条醒目的伤疤,在“单日5000万次访问”的模拟场景下,服务器集群的承载率直接飙到了120%。
“刘哥,你来了。”
Rose抱着一摞用户调研表走过来,眼底带着熬夜的红血丝。
“昨晚我们模拟了三次高并发场景,最乐观的一次,服务器也只能扛住3000万次访问,再往上就会出现数据丢包,用户点‘传递火炬’的时候,页面会卡在加载界面。”
她把调研表放在我面前,其中一页用红笔圈着。
“87%的用户说‘如果打开慢,会直接关掉页面’,咱们要是解决不了承载问题,这项目就白接了。”
机房里的气氛像被冻住了,只有服务器的嗡鸣声在耳边打转。
我走到王工身边,轻轻拍了拍他的肩膀。
他猛地惊醒,手里还攥着半支没写完的笔。
“刘哥,负载测试结果出来了,现有的服务器集群根本不够用,要是按5000万访问量算,至少得新增20台高性能服务器,还得租第三方的云节点,成本保守估计要超预算30%。”
“成本是一方面,时间更紧。”
我指着日历上的红圈。
“网益要求3月底出第一版deo,现在只剩两个月,新增服务器的采购、调试、部署,至少要一个月,根本来不及。”
我掏出手机,翻出何鹏飞昨天发的消息。
“这个项目对我们太重要,预算能超,但进度不能拖”。
可就算预算能超,时间也不等人。
而且盲目加服务器,万一后续优化跟不上,还是会出问题。
我坐在电脑前,打开“云帆计划”的节点档案。
这是去年我们为优化浏览器离线缓存做的项目,在全国15个城市部署了静态资源节点。
广州、深圳、上海这些大城市还做了双节点备份。
当时主要用来存储用户的农场装扮、离线网页,现在大部分节点的负载率还不到50%。
“王工,你过来看看,”
我把档案推过去。
“咱们能不能把H5的资源拆分成静态和动态两部分?”
王工凑过来,我指着屏幕解释。
“静态资源比如火炬动画、背景图、按钮图标,这些用户打开页面就会看到的内容,不用每次从主服务器加载,直接放到‘云帆计划’的节点里,用户在哪,就从最近的节点调资源,加载速度能快30%,主服务器的压力也能减下来。”
“那动态数据呢?”
他皱着眉。
“用户的传递记录、地区排名这些实时更新的数据,还是要走主服务器,5000万次访问的话,数据库肯定扛不住。”
“动态数据可以做分层缓存。”