在性能测试中,资源使用率是评估系统硬件效率的关键指标,主要包括以下四类:#性能测试##性能压测策略##软件测试#
1. CPU使用率
- 定义:CPU处理任务的时间占比,计算公式为 1 - 空闲时间/总CPU时间。
- 查看命令:top:实时显示各进程CPU占用(按P键按CPU排序)。mpstat :每秒采样CPU使用率(需安装sysstat包)。
- 异常原因:用户态(us)高:应用程序计算密集型任务(如加密算法)未优化。系统态(sys)高:频繁系统调用(如文件I/O)或线程切换。IO等待(wa)高:磁盘或网络I/O瓶颈(如数据库查询未加索引)。
2. 内存使用率
- 定义:物理内存和交换分区的占用比例,需关注used和buff/cache。
- 查看命令:free -h:显示内存总量、已用及缓存情况。vmstat :监控内存分页(si/so列表示换入/换出)。
- 异常原因:内存泄漏:程序未释放动态分配的内存(如Java堆溢出)。过度缓存:buff/cache占用过高但实际可用内存不足。
3. 磁盘I/O使用率
- 定义:磁盘读写带宽和IOPS(每秒操作数)的利用率。
- 查看命令:iostat -x 1:显示%util(设备繁忙度)和await(平均I/O等待时间)。iotop:按进程实时监控磁盘读写(需root权限)。
- 异常原因:高%util:磁盘饱和(如日志未异步写入)。高await:I/O队列过长(如RAID卡性能不足)。
4. 网络I/O使用率
- 定义:网卡带宽和连接数的占用情况。
- 查看命令:nload:实时显示网卡流量(需安装)。sar -n DEV 1:统计网络接口的rxkB/s和txkB/s。
- 异常原因:带宽跑满:大文件传输或DDoS攻击。连接数过多:未限制TCP连接池大小(如Nginx未调优)。
综合诊断建议
- 工具链:结合dstat(综合监控)和perf(性能剖析)定位瓶颈。
- 阈值参考:CPU持续>80%需优化代码或扩容。内存used>90%且si/so>0需检查泄漏。磁盘%util>70%或await>10ms需优化存储。