吞吐量 –> 是单位时间内完成的用户或系统的请求数量 。并发数 –> 同时能接受多少用户的访问请求 响应时间 –> 用户发出请求到收到响应的时间间隔 。
2.性能测试
我们做产品或者说项目(更直白的说是网站)目的是为了让用户使用,我们得先站在用户的角度分析一下,用户需要关注哪些性能 。
对于用户来说,当点击一个按钮、链接或发出一个操作指令,到系统把请求处理好发给用户并用网页的形式展现出来为止,这个过程中所消耗的时间是用户对这个网站性能的直观印象 。
也就是我们所说的响应时间,当响应时间较小时,用户体验相对来说就会好,当然用户体验的响应时间包括个人主观因素和客观响应时间 。
在网站开发与搭建时,我们就需要考虑到如何更好地结合这两部分达到用户最佳的体验 。用户关注的是用户操作的相应时间 。
其次,我们站在运维的角度考虑需要关注的性能点 。再次,我们得站在开发(设计)人员角度去考虑网站性能 。最后,由QA测试与反馈我们网站性能 。
经过上述的说明,我们来测试系统的性能,需要我们收集系统的吞吐量、并发数、响应时间这三个重要的指标 。
具体步骤是:
- 确认吞吐量、并发数、响应时间这三个值
- 找到或开发相应的性能测试工具
- 进行性能测试
- 反馈结果并提交测试报告
结果,有两个一种是达到我们预期的性能目标,这样我们就不需要性能优化任务完成可以交给运维上线,只需要进行相关的性能监控,方便上线后进行性能优化 。
另一种是没有达到我们预期的目标,我们要查找性能瓶颈并进行性能优化 。
3.性能分析
通过上面的性能测试,我们发现网站没有达到我们预期定义的性能目标,这时我们需要做的就是对现有的系统(服务器)进行监控,包括硬件与软件监控,为性能调优提供有效的性能监控数据 。
下面我们重点来说一下,用什么工具能找出性能瓶颈:
硬件:
用vmstat、sar、IOStat检测是否是CPU瓶颈
用free、vmstat检测是否是内存瓶颈
用iostat检测是否是磁盘I/O瓶颈
用netstat检测是否是网络带宽瓶
操作系统:
进程
文件系统
SWAP 分区
内核参数调整
应用程序(MySQL等):
mysqlreport 性能分析报告
mysqlsla 慢查询日志分析
4.性能调优
确定调优目标
我们性能优化的目标是网站性能提高10%还是20%,不能老大说今天你给我优化一下网站性能,你就能使用网站性能翻一倍 。
首先,你要问他我们需要达到一个怎么的目标 。
然后,我们要了解一下整个环境(架构)包括代码(当然你需要了解一下业务逻辑,大致了解一下,肯定没坏处),有时间多和开发沟通一下,问问代码中有多少坑要填,这很重要 。
往往他们优一下代码中的SQL查询,比你优化系统多少天都来的有效果,哈哈 。
具体调优步骤
如果你不懂系统的参数,你千万不要对系统的参数进行随意的改动,不然你会后悔 。
每次只对一种系统资源进行系统调试,如CPU、或内存、磁盘 。
每次改动尽量少的参数设置,推荐每次修改一个设置 。
分析一项系统资源时,使用多种工具,往往有意想不到的结果 。不及胜于过之(宁愿少做一点,不要做过头了,性能已达到要求就不要随意乱动,做好你的监控) 。
检测调优结果
每次性能调优后必须对性能进程检测,如Web服务器的ab工具,就是一个很好的检测工具,每次调优后都能看到具体的变化 。
5.性能监控
性能监控这个很重要,具体包括服务器性能监控和具体服务的性能监控 。下面我们说一说具体有哪些性能监控指标:
- 服务器的性能监控
- CPU 使用率
- CPU负载
- 内存使用率
- 磁盘I/O
- 网络流量
- 磁盘空间
- 系统进程
- 服务的性能监控(MySQL)
- MySQL持久连接利用率
- MySQL查询缓存空间使用率
- MySQL查询缓存命中率
- MySQL缓存查询数
- MySQL索引缓存命中率
- MySQL索引读取统计
- MySQL连接吞吐率
- MySQL连接缓存命中率
MySQL流量统计
推荐阅读
- 黑东革阿里的功效有哪些
- 野生东革阿里作用有哪些
- 买服务器买阿里云还是腾讯云?我更推荐阿里云
- 阿里架构师整理的 Netty 学习笔记之:Java NIO 网络编程
- 软件测试之如何避免漏测
- 阿里飞猪推荐算法探索实践
- 为什么阿里巴巴强制不要在 foreach 里执行删除操作
- 阿里P8面试官:如何设计一个扛住千万级并发的架构?
- 东革阿里和玛咖哪个好呢
- ChartCube - 阿里出品的免费在线图表制作工具,简单好用还漂亮
