业务指标
- 如并发用户数、TPS(每秒处理事务数)、QPS(每秒处理请求数)、成功率、响应时间
- 响应时间(RT),一般建议1s内
- 业务处理能力(TPS/QPS),一般用TPS来衡量整个业务流程,用QPS来衡量接口查询次数,用HPS来表示对服务器单击请求
- 成功率,一般大于99.6%
资源指标
- CPU资源利用率、内存利用率、I/O、内核参数(信号量、打开文件数)等
- CPU资源利用率<= 75%、CPU sys%小于或者等于30%、CPU wait%小于或者等于5%、CPU Load要小于CPU核数
- 内存无SWAP
- 磁盘繁忙率低于70%
应用指标
空闲线程数、数据库连接数、GC/FULL GC次数、函数耗时等
- 中间件指标:常见的中间件例如Tomcat、Weblogic等指标主要包括JVM、ThreadPool、JDBC
一级指标 | 二级指标 | 单位 | 解释 |
---|---|---|---|
GC | GC频率 | 每秒多少次 | java虚拟机垃圾部分回收频率 |
Full FC频率 | 每小时多少次 | java虚拟机垃圾完全回收频率 | |
Full GC平均时长 | 秒 | 用于垃圾完全回收的平均时长 | |
Full GC最大时长 | 秒 | 用于垃圾完全回收的最大时长 | |
堆使用率 | 百分比 | 堆使用率 | |
ThreadPool | Active Thread Count | 个 | 活动的线程数 |
Penging User Request | 个 | 处于排队的用户请求个数 | |
JDBC | JDBC Active Connection | 个 | JDBC活动连接数 |
- 一般正在运行的线程数不能超过设定的最大值。一般系统性能较好的情况下,线程数最小设置50,最大设置200
- 当前运行的JDBC连接数不能超过设定的最大值。一般系统性能较好的情况下,JDBC最小设置50,最大设置200
- GC频繁不能太频繁,特别是Full GC,一般系统性能较好的情况下,JVM最小堆大小和最大堆大小设置为1024M比较合适
- 数据库指标:常见的例如SQL、吞吐量、缓存命中率、连接数等 | 一级指标 | 二级指标 | 单位 | 解释 | | —- | —- | —- | —- | | SQL | 耗时 | 微秒 | 执行SQL耗时 | | 吞吐量 | QPS | 个 | 每秒查询次数 | | | TPS | 个 | 每秒事务次数 | | 命中率 | key Buffer命中率 | % | 索引缓冲区命中率 | | | innoDB Buffer命中率 | % | InnoDB缓冲区命中率 | | | Query Cache命中率 | % | 查询缓存命中率 | | | Table Cache命中率 | % | 表缓存命中率 | | | Thread Cache命中率 | % | 线程缓存命中率 | | 锁 | 等待次数 | 次 | 锁等待次数 | | | 等待时间 | 微秒 | 锁等待时间 |
- SQL耗时越小越好,一般情况下微秒级别
- 命中率越高越好,一般情况下不低于95%
- 锁等待次数越低越好,等待时间越短越好
前端指标
- 页面加载时间、网络时间(DNS、连接时间、传输时间) | 一级指标 | 二级指标 | 单位 | 解释 | | —- | —- | —- | —- | | 页面展示 | 首次显示时间 | 毫秒 | 在浏览器地址栏输入URL按回车到用户看到网页的第一个视觉标志为止。 | | | OnLoad事件时间 | 毫秒 | 浏览器触发onLoad事件的时间,当原始文档和所有引用的内容完全下载后才回触发这个事件 | | | 完全载入的时间 | 毫秒 | 所有onload javaScript处理程序执行完毕,所有动态的或延迟加载的内容都通过这些处理程序触发的时间 | | 页面数量 | 页面大小 | KB | 整个页面大小 | | | 请求数量 | 次 | 从网站下载资源时所有网络请求的总数,尽量少 | | 网络 | DNS时间 | 毫秒 | DNS查找时间 | | | 连接时间 | 毫秒 | 连接时间就是浏览器与web服务器建立TCP/IP连接的时间 | | | 服务器时间 | 毫秒 | 服务器处理时间 | | | 传输时间 | 毫秒 | 内容传输所用时间 | | | 等待时间 | 毫秒 | 等待某个资源释放的时间 |
稳定性指标
系统按照最大容量的80%或系统的预期日常压力去运行,一般对于正常工作日8小时运行的系统,至少应该保证系统稳定运行8小时。
保证TPS曲线的稳定,没有打幅度的波动、各项资源指标没有泄漏或异常情况