大流量Web系统性能优化实践
君山
2015.10.15
关于我
• 许令波(君山)
• 在阿里6年,做了4件还不错的事情
• 商品详情、店铺、图片空间TL
• 关注大流量web系统的架构和性能优化工作。
目录
• 这些年的挑战
• 我们走过的路
• 我们的经验
5
流量爆发增长
•
图片来自网上
系统还比较脆弱
•
图片来自网上
环境造就了技术
图片来自网上
搞不好就淹死了
图片来自网上
业务爆发增长
图片来自网上
只有在这里才能遇到
图片来自网上
遇到的挑战
• 流量爆发增长带来机器的成倍增加,系统必
须要能水平扩展
• 流量的峰值(秒杀),单商品或者用户维度
会出现热点,给cache带来瓶颈
• 大面积的攻击,如何区分正常流量防止误杀
• 复杂的业务逻辑给系统系统的耦合度和数据
的分类更加困难
我们走过的路
• 系统代码层面的优化
• 架构优化
• 链路优化
代码级优化
代码优化实践:模板引擎的热点
• Velocity是动态解释性语言,执行效率较 差
• 页面复杂,反射调用非常多
• 发现模板渲染占用了60% 以上的CPU时间。
• 整个页面输出比较大,平均在100K 左右。
代码优化实践:sketch模板引擎
• 将Velocity模板直接转成Java类去执行, 将
Velocity语法转成Java语法
• 将方法的反射调用转成直接Java原生方 法
调用
• 减少页面大小,删除空行等无效字符输 出
• 将页面中的字符转成字节输出减少编码 转
换
代码优化实践:class.forname热点
• Class.forname会导致线程block
代码优化实践:增加cache
• 性能提升5%
more..
• 对象作为HashMap的key
• web.xml配置版本信息可以减少启动时
annotation 的扫描时间
• Logger创建没有使用static修饰符导致线程
阻塞
• 少用Thread.getStackTrace()
• 正则运算尽量cache
架构优化
• 数据的动静分离
• 读写的分层校验
数据动静分离
• 系统的静态化是读系统性能优化的终极必
杀器
• 让用户的请求尽量不要经过Java系统
• 让静态数据放在离用户最近的地方
• 让动态数据尽可能的小
架构优化实践:读系统的静态化
架构优化实践:商品详情的静态化
• 每天支持30+亿的PV
• 可以支持峰值100w的QPS
• 静态请求单机10000+ (物理机)
• 动态请求单机1500+ (16核)
读写数据的分层校验
看一下全球最大的秒杀系统如何实现
您可能关注的文档
最近下载
- 2025年设备监理师设备合同价款调整事件的处理专题试卷及解析.pdf VIP
- 2025年江门市直遴选考试真题汇编及答案解析(夺冠).docx VIP
- (高清版)DB13∕T 2936-2019 浆砌石工程检测技术规程.docx VIP
- 12D8 河北《 内线工程》标准图集.docx VIP
- 肺囊肿的症状ppt模板.pptx VIP
- 去甲肾上腺素的护理措施.doc VIP
- 2024年江门市直遴选笔试真题汇编含答案解析(夺冠).docx VIP
- 房建项目施工进度计划管理.docx VIP
- 建筑工程内业资料全套范本(表格类).doc VIP
- 内蒙古民族大学《计算机基础与C语言》2024-----2025学年期末试卷(A卷).pdf VIP
原创力文档

文档评论(0)