今天已到10月下旬一年一度电商双11大促即将开始,是电子商务公司一年最大促销活动,是重中之重。对于线上服务来讲,是一次流量大考,对研发来讲是一次技术提高机会。作好应对高并发、大流量准备,是件必需要作必须作成的事情。redis
个性化推荐系统又与其余系统有着类似大流量考验,还有一些和其余业务系统差别地方。核心交易系统更多面临高并发交易可用性,高并发交易不出错,系统稳定性。个性化推荐面临问题是及其复杂线上算法逻辑,屡次缓存redis调用,各个业务线面临线上将近20倍流量暴涨,由于个性化每一个用户逻辑均不相同,暴涨的流量对于redis等存储压力也是巨大相似DDoS。挑战是至关之大,最近上下游联合压测、全链路压测系统均未达到预估流量,压力山大。算法
流量大、系统多、问题复杂,整个事情怎么作,仍是要梳理思路,按节奏进行备战,开展各项工做。首先是梳理线上服务依赖存储、依赖上游接口、线上服务逻辑是否可优化,而后单机压测、上下游压测、全链路压测,线上服务扩容,线上各类redis、数据库、ES等资源扩容。详细备战可见个人618备战文章618电商大促备战以及总结。数据库
此次双11出现新状况以及面临主要问题是第一次压测多个redis集群性能严重降低并持续整个压测过程,后来进行查找分析定位是网络异常致使,由于redis目前也是在虚拟机中,两个物理机网络出问题,物理机上的多个redis集群出现性能持续降低。缓存
第二次上下游压测依然是redis性能降低,redis单个集群性能持续降低,致使整个集群性能降,线上业务基本都依赖这个集群,全线业务性能受影响。经查是存在大key或热key致使单个分片性能差。以及线上业务流量过于集中,所有集中单个redis集群,每分钟流量过亿。微信
解决办法最好是redis数据复制进行拆分,一部分业务读原有redis集群,一部分读新集群,这是个方法但资源消耗大。二是在定位查找热key将热key进行定时处理或分散处理,大key value值大小进行控制,避免集群节点压力过大,致使集群性能降低。三是线上业务自查看是否有redis通用数据是定时拉取,实时拉取通用数据致使热点key,通用数据必定采用定时器拉取。空用户信息访问直接返回通用数据,避免空信息时出现热点key。网络
redis资源不可扩容状况下,线上服务能够进行一下优化,主要是redis集群链接配置调大、单个客户端链接调小,避免消耗尽redis链接。集群超时调小,避免redis性能差致使线上服务不可用。并发
该作工做认真作好,尽可能作到线上业务大流量不降级。但外一出现风险的状况怎么办?这时降级预案要作好,作好降级准备,降级预案提早演练作到万无一失。高并发
微信搜索:debugme123 性能
扫码关注:优化