性能测试分析实例
• Memory Analyzer • Jvisualvm等
分析过程
• 根据快照文件大小设置工具jvm内存大小 • 打开快照文件,找到占用空间最多的对象 • 给出解决办法
测试工具:
LR/JMeter等
脚本展示
运行结果
session
HTTP session
HTTP协议本身是“连接-请求-应答-关闭连接”模式的,是一种无状态协议 HTTP通过session知道客户端相继发来的请求是来自一个客户 保存到服务端(HttpSession),客户端则是cookie形式 通过HttpServletRequest.getSession(true)创建
目录
1 2 3
性能分析
实例演示 相关知识
分析思路
了解业务特征,系统架构, 软件硬件、运行状况等 系统监控、第三方监控、 各种日志 性能指标、系统资源、 jvm 、DB、隔离排除 代码优化、jvm参数、GC 策略 、SQL优化,架构等 确认优化结果、经验教训 总结、线上跟踪
前期调研
分 析 优 化 思 路
JVM数据区
HotSpot运行时数据区
堆内存
• 新生代:大多数新创建对象位于新生代,朝生息灭,垃圾收集效率高 • 老年代:长期存活对象,或者大对象,增长速度慢,垃圾收集效率低
永久代
• 存放类元数据信息,常量,静态变量
线程栈
• 创建线程,需要为线程分配栈空间,是向操作系统请求
直接内存
• 位于JVM堆之外,但是仍然受到操作系统内存限制
MAT工具
MAT工具
Memory Analyzer (MAT)
• 定位内存泄漏 • 基于Eclipse的软件 • 官网地址/mat/
工具截图
OOM分析
OOM如何分析
寻找内存快照,获取堆Dump文件,进行分析。 工具
数据收集
分析定位
问题解决Байду номын сангаас
结果跟踪
案例准备
测试对象:
用户验证接口做性能测试
测试目标:
响应时间小于100ms,支持200用户并发访问
测试数据:
用户数据,包含用户名密码。
测试环境:
Web服务器:Tomcat6以上 操作系统:windows/Linux JDK: Java HotSpot(TM) 1.6以上版本
session id 类似: BD6990B560125E235BB58B275336189B
虚拟机
三大商业虚拟机
HotSpot
• Sun 默认虚拟机
JRockit
• 原Bea JRockit • 效率极佳,为英特尔处理器应用设计,支持多平台
IBM J9
• IBM 自己开发的一款 JVM • 运行在ibm小型机上