这事儿得从我们小破站去年元旦晚会说起。那天晚上我刚躺床上刷手机,App突然卡成PPT,眼睁睁看着弹幕从「新年快乐」变成「404大礼包」。第二天开会总监拍桌子吼:「下次再崩,全员写辞职报告!」我缩在角落疯狂冒冷汗。

准备阶段:搞点硬家伙

翻出吃灰的旧笔记本当测试服务器,插网线时被家里猫挠了三道血印子。从咸鱼淘了台二手交换机,卖家说「九成新」,到手发现散热风扇响得像拖拉机。

b站服务器如何扛住大流量?CDN加速方案全攻略

  • 第一步:用Jmeter灌假流量
  • 设置200个虚拟用户直接冲垮服务器
  • 后台CPU飚到99%持续报警

最离谱的是加载首页要18秒,够我泡完一桶老坛酸菜面。

b站服务器如何扛住大流量?CDN加速方案全攻略

动手搭建CDN测试环境

注册CDN服务商时遇到验证码地狱,输错六次被锁半小时。配置节点时手抖把广州节点设到黑龙江,被测试同事骂「南方用户加载视频比骑自行车还慢」。

  • 凌晨两点调缓存规则
  • 把静态图片缓存时间设成7天
  • 动态接口完全不走缓存
  • b站服务器如何扛住大流量?CDN加速方案全攻略

在nginx里改配置时删错符号,整个后台原地瘫痪,幸好提前备份了配置文件。

第一次压测翻车现场

兴冲冲发起500人同时访问,结果:

  • 首页加载从18秒降到…15秒?
  • b站服务器如何扛住大流量?CDN加速方案全攻略

  • 猫在键盘上踩出乱码导致监控中断
  • 发现忘记开启Gzip压缩

隔壁组同事探头问:「你们在机房烧烤吗?交换机烫得能煎鸡蛋了。」

解决缓存狗血剧情

用户反馈头像更新延迟三小时,排查发现CDN缓存死扛着旧图片不放。祭出「缓存强制过期」大招,结果用力过猛:

b站服务器如何扛住大流量?CDN加速方案全攻略

  • 凌晨三点清理缓存库
  • 早高峰时全站图片集体消失
  • 运营妹子举着手机追杀我到茶水间

给更新频繁的路径单独设置10秒短缓存才摆平。

b站服务器如何扛住大流量?CDN加速方案全攻略

实战效果直接炸场

跨年晚会当晚蹲在机房泡面:

  • 峰值流量暴涨20倍纹丝不动
  • 上海用户加载速度从18秒→0.8秒
  • 后台CPU全程稳如老狗在40%打转
  • b站服务器如何扛住大流量?CDN加速方案全攻略

最骚的是带宽费省了三万七,财务大姐破天荒给我发了朵小红花表情包。

事后扯皮小剧场

庆功宴上总监夸我「技术小王子」,结果隔周接到行政通知:「机房电费超标,暂缓发放季度奖金」。现在每次去茶水间,运维都追着问:「今天删缓存了吗?」

对,那只毁容我胳膊的猫,后来成了办公室团宠。行政给它定制了工牌,头衔:「CDN压力测试首席监理」。