列举并解释衡量系统性能的核心指标,并给出可接受的参考范围
解读
面试官想通过这道题确认三件事:
- 你是否能把“性能”拆成可量化、可对比、可验收的指标,而不是泛泛地说“快”或“慢”;
- 你是否清楚国内主流互联网/金融/政企场景的 SLA 底线,给出的区间不能照搬国外论文,而要符合国内生产环境;
- 你是否能把指标、测量方法与业务场景对应起来,体现“性能测试工程师”而非“运维”或“开发”视角。
回答时要先给定义,再给“国内主流可接受区间”,最后补一句“如何拿到这个值”,让面试官听到“工具+场景+验收”的闭环。
知识点
- 响应时间(Response Time)
第 99 分位(P99)是国内面试必考点,BATJ、银行、运营商的对外 SLA 均按 P99 签约。 - 吞吐量(Throughput)
国内习惯用 QPS(读)(读场景)或 TPS(写事务)衡量,面试时要区分“业务事务”与“数据库事务”。 - 并发度(Concurrency)
不是“并发线程数”,而是“系统同时服务的业务会话数”,对应 LR/JMeter 里的 Active Threads 与线上连接池。 - 错误率(Error Rate)
国内生产红线:金钱链路 0.1%,非金钱链路 1%;面试时把“可重试 5xx”与“不可重试 4xx”拆开讲,会加分。 - 资源利用率(CPU/内存/IO/网络)
国内云主机普遍 2C4G~8C32G,CPU 超 70% 即可触发弹性扩容,因此“可接受区间”要区分“压测峰值”与“日常水位”。 - 稳定性指标(SOAK/内存泄漏、句柄泄漏)
金融类项目必跑 8 h~24 h SOAK,内存涨幅 <10% 且 GC 后回落才算过。 - 容量余量(Headroom)
国内监管要求“核心系统峰值余量 ≥30%”,面试时把“峰值”定义为“去年双 11 峰值 ×1.3”即可。
答案
-
响应时间
定义:客户端发起请求到收到最后一个字节的时间。
国内可接受区间:- 普通读接口:P99 ≤ 200 ms(ToC 页面)、P99 ≤ 500 ms(ToB 管理后台)。
- 交易写接口:P99 ≤ 500 ms(支付下单)、P99 ≤ 1 s(复杂账务)。
测量方法:JMeter 非 GUI 模式 5 分钟持续压测,采集 99th percentile,剔除 30 s 暖机数据。
-
吞吐量
定义:单位时间成功处理的业务请求数,读场景用 QPS,写场景用 TPS。
国内可接受区间:- 网关入口集群:单机房 QPS ≥ 4 万(2C4G 容器,8 实例),错误率 <0.1%。
- 核心订单 TPS:单分库 TPS ≥ 800(MySQL 8.0,SSD,RC 隔离级别),RT P99 ≤ 200 ms。
测量方法:梯度递增线程,找到“错误率首次突破 0.1%”前的最大 QPS,即为额定吞吐量。
-
并发用户数
定义:同时在线且对系统产生压力的业务会话数。
国内可接受区间:- 电商大促:峰值并发 = 去年双 11 峰值 ×1.3,系统 CPU 70% 以下可支撑。
- 银行 App:并发 50 万(连接池 5 万,每个连接复用 10 个会话),登录接口 P99 ≤ 1 s。
测量方法:LR 设置 5 分钟阶梯式加压,观察“活跃并发”与“响应时间”拐点。
-
错误率
定义:非 2xx 响应占比,含超时、5xx、4xx(业务校验失败需剔除)。
国内可接受区间:- 资金交易:错误率 ≤ 0.1%,且不可重试错误 =0。
- 非资金链路:错误率 ≤ 1%,可重试 5xx 自动补偿后视为成功。
测量方法:JMeter 断言过滤业务成功标识,Grafana+Prometheus 二次校验。
-
CPU 利用率
定义:整机或容器 user+sys 占比。
国内可接受区间:- 压测峰值:单容器 CPU ≤ 70%,整机 CPU ≤ 60%(留 30% headroom)。
- 日常水位:CPU ≤ 30%,保证突发 2 倍流量 10 分钟内不扩容。
测量方法:Prometheus node_exporter 15 s 粒度,取 95th percentile。
-
内存利用率
定义:JVM 进程 Old 区或容器 RSS 占比。
国内可接受区间:- 压测峰值:Old 区占用 ≤ 50%,Full GC 后回落 ≥ 30%。
- 8 h SOAK:内存涨幅 ≤ 10%,句柄泄漏 =0。
测量方法:Arthas dashboard 每 30 s 采样,GC 日志 G1PrintHeapUsage。
-
网络与磁盘 IO
定义:网卡吞吐与磁盘 util%。
国内可接受区间:- 内网千兆:带宽 ≤ 600 Mbps(留 40% 余量),重传率 <0.01%。
- SSD 盘:util% ≤ 40%,await ≤ 5 ms,svctm ≤ 2 ms。
测量方法:sar -n DEV 1 s 与 iostat -x 1 s,取压测最后 5 分钟均值。
拓展思考
- 指标必须“可验收”:国内甲方招标书常见条款“P99 超过 200 ms 即按合同金额 1% 扣款”,因此回答时要把“测量工具、采样粒度、剔除规则”一起说出来,体现测试工程师的“裁判”身份。
- 区间要“分段”:同一接口在大促、日常、灾备三种场景下的可接受值不同,面试时主动分层,可展示容量规划能力。
- 指标要“可下钻”:说完 P99 后,面试官往往会追问“如果 P99 超了如何定位”,提前准备“trace→log→profile”三级漏斗,把 Arthas、SkyWalking、perf、FlameGraph 工具名抛出来,可自然过渡到“性能分析”话题,掌握节奏。