关于web性能测试的一些总结
一、软件性能测试的目的:
1.评价系统当前性能,判断系统是否满足预期的性能需求。
2.整体的评估当前系统的各项能力,预见系统负载压力承受力,在应用部署之前,评估系统性能。
3.寻找当前系统可以提升性能的地方
-------------------------------------------------------------
二、性能测试的指标:
软件系统指标:
1.并发用户数---抽奖类的事务
2.在线用户数---请求访问较多的页面
3.平均响应时间---用户操作较多的地方:下单,提交表单
4.每秒事务数(TPS)---事务流程的处理数量,整个下单流程、整个数据表单的修改
5.事务成功率----系统达到一定瓶颈后出现失败的情况
资源指标(应用占用):
1.CPU使用率
2.内存利用率
3.磁盘I/O
4.网络带宽
数据库:
1.连接数
2.吞吐量,并发能力
3.sql执行时间
-------------------------------------------------------------
三、性能调优考虑的方向:
用户:
1.关注的是用户操作的响应时间。
管理员:
1.响应时间
2.服务器资源的使用情况是否合理
3.应用服务器和数据库资源使用是否合理
4.系统能否实现扩展
5.系统最多支持多少用户访问、系统最大业务处理量是多少
6.系统性能可能存在的瓶颈在哪里
7. 更换那些设备可以提高性能
8.系统能否支持7×24小时的业务访问
开发:
1.架构设计是否合理
2.数据库设计是否合理
3.代码是否存在性能方面的问题
4.系统中是否有不合理的内存使用方式
5.系统中是否存在不合理的线程同步方式
6.系统中是否存在不合理的资源竞争
-------------------------------------------------------------
四、性能调优的方面:
客户端的调优:
server端:
1.动静资源分离
2.请求负载均衡,分布式部署后端服务
3.程序逻辑调优,使用多线程
4.使用缓存
5.使用消息中间件,异步处理
数据库:
1.sql语句优化
2.加索引
3.拆分一些大表
4.读写分离,分布式部署数据库
5.部署架构的调整
-------------------------------------------------------------
五、系统监控工具
服务器资源指标监控:
1.Linux系统下,free、vmstat、sar、iostat等命令
2.nmon工具
软件系统指标监控:
1.Jmeter
2.LR