性能规范参考指标
用户满意度
参考Apdex( Application Performance Index)。
Apdex 标准从用户的角度出发,将对应用响应时间的表现,转为用户对于应用性能的可量化为范围为 0-1 的满意度评价。
Apdex 定义了应用响应时间的最优门槛为 T,另外根据应用响应时间结合 T 定义了三种不同的性能表现:
- Satisfied(满意):应用响应时间低于或等于 T,比如 T 为 1.5s,则一个耗时 1s 的响应结果则可以认为是 satisfied 的。
- Tolerating(可容忍):应用响应时间大于 T,但同时小于或等于 4T。假设应用设定的 T 值为 1s,则 4 * 1 = 4 秒极为应用响应时间的容忍上限。
- Frustrated(烦躁期):应用响应时间大于 4T。
计算公式:
Satisfied Count 就是指定采样时间内响应时间满足 Satisfied 要求的应用响应次数;而 Tolerating Count 就是指定采样时间内响应时间满足 Tolerating 要求的应用响应次数;最后的 Total Samples 就是总的采样次数总数。从公式可以看出,应用的 Apdex 得分与采样持续时间无关,与目标响应时间 T 相关(在采用总数固定的情况下,T 通过影响 Satisfied Count以及 Tolerating Count的值间接影响最终的得分)
计算示例:假设应用期待的响应时间能够在 1000 ms 内,在 100 次采样中,有 50 次应用响应时间低于 1000 ms,30 次应用响应时间处于 1000 ms 到 4000 ms( 4 * 1000ms) 之间,剩下 20 次响应时间长于 4000 ms,那么,该应用在 T = 1000ms 的情况下的 Apdex 值为:(50+30/2)/100=0.65
建议:核心功能Apdex不低于0.9,边缘功能Apdex不低于0.8
响应时间
参考业内2-5-10原则
- 当用户能够在2秒以内得到响应时,会感觉系统的响应很快;
- 当用户在2-5秒之间得到响应时,会感觉系统的响应速度还可以;
- 当用户在5-10秒以内得到响应时,会感觉系统的响应速度很慢,但是还可以接受;
- 而当用户在超过10秒后仍然无法得到响应时,会感觉系统糟透了,或者认为系统已经失去响应,而选择离开这个Web站点,或者发起第二次请求。 建议:核心功能响应时间2S以内,边缘功能响应时间5S以内
错误率
错误率指系统在负载情况下,失败请求的概率。错误率=(失败请求数/请求总数)*100%。
建议:核心功能错误率不超过千分之六,即小于0.6%,边缘功能错误率不超过千分之十,即小于1%
系统处理能力
系统处理能力是指系统在利用系统硬件平台和软件平台进行信息处理的能力。
单位:TPS(Transaction per Second):系统每秒处理交易数,单位是笔/秒
计算方法:Throughput = (number of requests) / (total time)
吞吐量-负载对应关系:
①上升阶段:吞吐量随着负载的增加而增加,吞吐量和负载成正比;
②平稳阶段:吞吐量随着负载的增加而保持稳定,无太大变化或波动;
③下降阶段:吞吐量随着负载的增加而下降,吞吐量和负载成反比;

a1面积越大,说明系统的性能能力越强,a2面积越大,说明系统稳定性越好,a3面积越大,说明系统的容错能力越好
软件指标
一级指标 | 二级指标 | 单位 | 解释 |
---|---|---|---|
GC | GC频率 | 次/秒 | java虚拟机垃圾部分回收频率 |
GC时长 | 秒 | 用于垃圾回收的时长 | |
Thread | 错误请求 | 次/秒 | 错误请求数 |
request请求 | 次/秒 | 总request请求数 | |
繁忙线程 | 个 | 繁忙线程数 | |
JDBC | 个 | JDBC连接数 | |
调用复杂度 | 层 | 调用复杂度 |
建议:GC频率不能频繁,特别是FULL GC更不能频繁;当前正在运行的线程数不能超过设定的最大值;当前运行的JDBC连接数不能超过设定的最大值;调用复杂度10以下。
数据库指标
一级指标 | 二级指标 | 单位 | 解释 |
---|---|---|---|
SQL | 耗时 | 微秒 | 执行SQL耗时 |
命中率 | Key Buffer命中率 | % | 索引缓冲区命中率 |
Query Cache命中率 | % | 查询缓存命中率 | |
Table Cache命中率 | % | 表缓存命中率 |
mysql Query Cache机制:QueryCache是根据SQL语句来cache的。一个SQL查询如果以select开头,那么MySQL服务器将尝试对其使用QC,若命中该缓存,会立刻返回结果,跳过了解析,优化和执行阶段。每个Cache都是以SQL文本作为key来存的。一个被频繁更新的表如果被应用了QC,可能会加重数据库的负担,涉及频繁更新的表的SQL语句加上SQL_NO_CACHE关键词来对其禁用CACHE,这样可以尽可能避免不必要的内存操作。
扩展性指标
指应用软件以群集方式部署,增加的硬件资源与增加的处理能力之间的关系。正常情况下扩展指标应该是线性或者接近线性。
可靠性指标
节点切换、故障恢复耗时1S内,并且无业务中断(失败请求)
硬件资源指标
序号 | 指标 | 解释 | 标准 |
---|---|---|---|
1 | CPU使用率 | 指用户进程与系统进程消耗的CPU时间百分比 | 长时间情况下,一般可接受上限不超过85% |
2 | 内存利用率 | 内存利用率=(1-空闲内存/总内存大小)*100% | 一般至少有10%可用内存,内存使用率可接受上限为85%; |
3 | 磁盘I/O | 磁盘主要用于存取数据,对应的是写IO操作与读IO操作 | 一般使用% Disk Time(磁盘用于读写操作所占用的时间百分比)度量磁盘读写性能 |
4 | 网络带宽 | 使用计数器Bytes Total/sec来度量,其表示为发送和接收字节的速率; | 判断网络连接速度是否是瓶颈,可以用该计数器的值和目前网络的带宽比较 |
系统按照最大容量的80%或标准压力(系统的预期日常压力)情况下运行,能够稳定运行的时间长短。
稳定性指标
TPS曲线稳定,没有大幅度的波动;其余各项指标正常。
备注
Minor GC ,Full GC 触发条件
Minor GC触发条件:当Eden区满时,触发Minor GC。
Full GC触发条件:
(1)调用System.gc时,系统建议执行Full GC,但是不必然执行
(2)老年代空间不足
(3)方法区空间不足
(4)通过Minor GC后进入老年代的平均大小大于老年代的可用内存
(5)由Eden区、From Space区向To Space区复制时,对象大小大于To Space可用内存,则把该对象转存到老年代,且老年代的可用内存小于该对象大小