第162章 產品优化(1/2)
八月初,北京入夏。
气温升到了三十五度,整座城市像一个巨大的蒸笼。行道树蔫蔫地垂著叶子,连蝉鸣都显得有气无力。
“颤动视频“的办公室里,空调开到了最大。
但每个人还是出了一身汗——不是因为热,是因为紧。
秦风制定了两周完成优化的deadle,整个团队都在连轴转。办公室的灯,连续七天亮到晚上十一点以后。
张浩负责伺服器端。
他重构了推荐算法的代码,把冷启动的权重从百分之二十提高到了百分之四十,同时优化了资料库的查询效率——原来一次推荐请求需要两百毫秒才返回结果,现在压缩到了五十毫秒以內。
“五十毫秒。“张浩盯著屏幕上的测试结果,自言自语,“用户基本感知不到延迟了。“
但他没停下来。伺服器端的优化是个无底洞——你永远能找到可以再快一点的方法。张浩把代码又过了一遍,改了几个细微的逻辑判断,又榨出了十毫秒。
李萌负责算法模型。
她重新训练了推荐算法,加入了一批新的用户行为数据——这二十天里新增的八万用户,他们的点击、停留、分享、关注,每一个动作都变成了模型里的一个参数。
模型训练跑了整整十四个小时。
李萌坐在计算机前,盯著进度条一点点往前挪。她没离开,也没刷手机,就那么安静地坐著,偶尔站起来活动一下发麻的腿。
王健负责前端界面。
他新增了“热门推荐“和“关注话题“两个频道,同时优化了视频播放的流畅度——原来在弱网环境下,视频加载会很慢,甚至出现卡顿。王健加入了一个自適应码率的功能,根据用户的网络状况自动调整视频清晰度,虽然画质会有所下降,但至少不会卡。
三个人,各司其职,又互相配合。
优化的过程中,他们遇到了一些技术难题——
高並发场景下的伺服器负载均衡,张浩折腾了两天才搞定。他试了三种方案,最终选了基於一致性哈希的负载均衡策略,把请求均匀地分散到每台伺服器上。
推荐算法的实时更新,李萌卡了一天。训练好的模型如果要重新加载,需要停掉服务,但这会导致用户无法正常使用。她想了一个办法——双缓衝机制,新模型加载到备用內存区,加载完成后瞬间切换,用户侧完全无感知。
视频存储的分布式架构,王健和张浩一起搞了三天。他们把视频文件分散存储到多台伺服器上,用加速分发,使用户可以从离自己最近的伺服器获取视频数据,加载速度提升了一倍。
有些问题,他们自己解决不了。
秦风去找了凌玥。
凌玥是清华计算机系的博士生,研究方向是分布式系统和机器学习,技术水平比张浩和李萌加起来还高。她愿意提供技术支持——某种程度上,是因为秦风帮她走过一段低谷。
在计算机实验室里,凌玥盯著屏幕上的代码,手指在键盘上飞快地敲著。
她话不多,但每句话都切中要害——
“你这个负载均衡策略有问题,一致性哈希在节点变化时会引发大量数据迁移,改成带虚擬节点的。“
“推荐算法的特徵工程做得不够细,用户画像只有五维,至少加到二十维。“
“视频存储的元数据管理用关係型资料库是个错误,改用量级合適的nosql。“
本章未完,点击下一页继续阅读。