电商双11的一些技术准备

      双11对于电商来说,及其的关键,是一场大仗,对于技术人员来说,是一次挑战和提升的地方。

首先是战前准备,准备的越充分,能够面对的突发情况就能越从容。

      首先是准备,对机器扩容,面对流量的大涨很重要的一件事就是对机器的扩容,扩容要怎么整

就需要自己进行压测,根据单机压测来进行扩容申请是比较合理的。压测过程中会发现一些程序中

的性能问题以及相应的应对方法。比如并发量大的情况下,定时任务清理磁盘,此时写日志会导致

tp99升的特别高,请求在单机上变得特别多,cpu增高、内存增大等一系列连锁情况,解决办法避免 

并发量高时清理磁盘,或调整日志级别处理日志。还遇到了网络突然重传包增加,初步定为为网络出现

拥塞或阻塞导致需要重传包,这时网络持续有问题需要将节点直接下掉避免单个或几个节点故障,性能

好后可重新上线。

      其次是根据压测对于tp99高于50的应用要进行优化,优化是首先是减少数据库、缓存调用次数,一般

这两个调用次数越多,占用时间越长。这次优化一个问题时遇到了将eheache中数据转换为比较复杂类型

并且数据本身有几千个的时候比如Map<String,List<String>>发现用时特别长高达20ms,自己基于线程

安全单例以及ConcurrentHashMap实现了自己的缓存解决了问题,数据特别大写日志也会导致耗费长达20ms,

禁止写比较大的数据日志。

      后续就是降级开关以及扩容后的联合压测,降级是达到流量上线cpu、内存、tp99等指标上升过高

给予通用数据,不要在经过复杂计算了通过配置实现。

       扩容后压测

       

      小结:对于双11要提前准备,比如我们这次是9月初就开始统计扩容了。所有的准备预案事情都要尽量提前

,提前15天左右会禁网此时无紧急情况已经无法上线。

 

      待续。。。

 

posted @ 2016-10-13 14:41  杉枫  阅读(367)  评论(0编辑  收藏  举报