冬天到了,由物联网技术支持的过冬设备,包括壁挂炉、热水器开始用起来了。经过第一轮优化,完成了平台redis内存数据库的使用优化,解决了大key、热key导致的数据库访问瓶颈问题。
平台稳定后,在日常巡查中发现,每日的流量带宽消耗了不少资源,仔细一看,我嘞个去,
(1)每台长连接服务器,每日22GB流量,共六台。
(2)file静态资源服务器,每日 150GB流量。
按照每GB0.8元计算,得出如下汇总
类型 | 台数 | 每日流量GB | 流量费用(元)/日/台 | 流量费用(元)/日 | 流量费用(元)/月 |
---|---|---|---|---|---|
长连接服务器 | 6 | 22 | 17.6 | 105.6 | 3168 |
file静态资源 | 1 | 150 | 120 | 120 | 3600 |
如此计算,每月6千左右的带宽与账单基本吻合。
找到了问题,就开始逐一优化
针对长连接服务器,主要面向物联网设备,该类型典型的一天24小时在线,基本没有国人一天两高峰的流量特性,每台高峰值大概3~4Mbps,所以购买一年1000元左右的5Mbps包年套餐合适。并且配置上超过80%告警设置。
注:购买了5Mbps的固定带宽后,UCloud对于入流量会限速为出流量的5倍。
针对file静态资源,由于里面的资源站点分布较广,最终找到了该域名在ULB的几个典型流量大户:
- file静态资源本身自己在分发apk安卓安装包,通过日志分析并借助123pan实现分发,50元/1TB流量,基本无成本。
- file静态资源中的jpg、png等文件,配置nginx实现
add_header Cache-Control "max-age=2678400";
实现静态资源客户端缓存。 - 针对api直接返回zip数据的问题,已经向上反应,这个从运维角度已经不好解决了。
另外,还有一个通杀的技巧,就是购买共享流量包,可以达到全时0.7元/GB,闲时0.49元/GB,如果购买1TB以上,单价还能更便宜。