端到端的应用性能优化实践
从互相认识开始
10年ORACLE从业经验
开发、集成、运维、架构多岗
位经验
关注技术如何成就价值
现服务于国内最大的数据库第
三方运维服务厂商上海新炬
引言:从城市交通说到应用系统,关键是系统处
理效率,效率决定成败
应用系统性能直接影响到最终用户的使用感知,
成为企业业务发展强大的制约因素
在海量数据并发背景下,整个系统架构设计与优化后的整体性能才是决定因素,而在这之中,系统架构
师是一个非常重要的因素
这个不光是数据库的比较,从硬件到OS到数据库到中间件到前台WEB服务器,包括缓存服务器都参与
其中的全方位的大比拼。一个平台级的较量
这个问题其实已经超出了DBA能力,某种意义来说应该是架构师根据业务特点设计的问题
大型应用系统的性能问题已不单纯是某一方面的
问题,是系统整体的问题
更深层次的问题
用户感觉
系统慢?
操作系统
网络
主机/存储
数据库
应用
中间件
问题原因
是什么?
从个人从业经验来看,系统性能问题需要开发、
运维、架构等多方联动整体解决
制造企业开发 电信系统运维 专业数据库服务
制造性能问题 解决性能问题 预防性能问题
以实现功能为先
大量存储过程
未考虑大并发操作
开发不规范(绑定变量、隐
式转换、不良索引等)
视图套视图(代码叠代)
长SQL
逻辑缺陷
接口效率与安全
集中与分散
模块化与个性化
简单与复杂
软硬件设备最佳实践
我们关注新系统建设的性能问题预防,但如何解决现有系统性能问题更关键
大型应用系统端到端性能优化解决方案探讨
优化专家 优化流程 分析工具
端
到
端
的
分
析
手
段
端
到
端
的
优
化
流
程
不
良
用
户
体
验
应
用
良
好
用
户
体
验
应
用
后
续
开
发
最
佳
实
践
指标体系
优化思路:以指标体系为评价标准,实施全面端
到端的优化
8
端
云
用户终端
人员的端到端
流程的端到端
系统的端到端
用户系统调用执行路径
从不同角度了解系统性能状况,同时作为优化重点与性能提升目标
端到端的应用优化思路以核心业务指标体系为核
心
管理维度
用户感知维度
系统指标维度
核心业务指标体系建立流程及方法
业务模块 功能列表 操作步骤 当前性能情况 期望性能 KPI标准
XXXX
XXXX 10s 5s 5s
XXXX 15s 4s 5s
XXXX 12s 3s 5s
XXXX XXX 14s 4s 5s
XXXX
XXXX 8s 5s 5s
XXXX 2s 2s 2s
功能模块梳理 指标体系建立 监控与调整
多渠道问题收集方式,通过技术手段主动发现性
能问题
用户反馈
主动监控
模拟测试
模拟单用户及多用户并发业务操
作
QTP自动业务探测
问题调研的5个基本维度
• 是哪个用户在操作
• 用户在做了什么业务操作
• 业务是什么时候做的
• 在哪个网段操作业务
• 业务操作流程是怎么做的
业务人员
系统运维人员
开发测试人员
12
问题过滤,确定通用问题,提高效率
问题收集 效果验证
与业务KPI标
准进行比对
检查自身操作方式及客
户端配置情况
提交性能问题到性
能优化团队
网络/流览器/终端/数据量等
走端到端性
能优化流程
不符合KPI标
准情况下采取
的措施
标准测试配置
CPU:英特尔@
奔腾@ 处理器
G630
内存:4GB
硬盘:500 GB
SATA硬盘
操作系统:
Windows Server
常用开源前后端性能分析工具
前端
Firebug
DynaTrace Ajax Edition
Httpwatch
…
后端
Spring Insight
Jprobe
YourKit
Jprofiler
VisualVM
…
13
APM应用性能管理工具WEB应用端到端分析流
程示例
端到端的性能分析方法及闭环优化流程
端到端优化分析方法
数据库层
数据存储层
中间件层
业务逻辑层
Web层 用户感知
业务压力
执行闭环性能优化流程
优化效果验证及KPI指标优化
业务用户 效果验证
反馈结果到性
能优化团队
问题关闭
进一步分析
优化经验总结
与业务KPI标准
进行比对
走端到端性能
优化流程
符合KPI标准情况下
采取的措施
不符合KPI标准情况
下采取的措施
对经过验证的优化实施经验形成规范及建议,用
于指导后续开发,并作为后续版本验收标准
2/8定律
过程重视
最佳实践
改变习惯
快不一定好
上线管控
基于应用性能管理方法论的优化案例分析:从
30秒到2秒
某应用使用人员反馈在系统中打开某页面,需要30S左右,在打开页面后执行查询操作6S。执
行端到端的优化流程。优化效果明显。
标准优化流程
端
到
端
优
化
分
析
业务逻辑层
平台层
发现问题
过滤问题
分析问题
解决问题
验证问题
经验总结