在对互联网服务进行服务端性能测试时,主要关注两方面的性能指标:
业务指标:如吞吐量(QPS、TPS)、响应时间(RT)、并发数、业务成功率等
资源指标:如CPU、内存、Disk I/O、Network I/O等资源的消耗情况
本文主要介绍一些广泛适用的、基本的资源指标以及这些指标在Linux服务器的获取方式。
一. CPU
关于CPU资源,有三个重要概念是我们需要关注的:使用率、运行队列和上下文切换,这里借助一张描述进程状态的图来进行简要说明:
Process state -via wikipedia
Running:正在运行的进程
Waiting:已准备就绪,等待运行的进程
Blocked:因为等待某些事件完成而阻塞的进程,通常是在等待I/O,如Disk I/O,Network I/O等。
这里的Running和Waiting共同构成Linux进程状态中的可运行状态(task_running),而Blocked状态可以对应Linux进程状态中的不可中断睡眠状态(task_uninterruptible)
在Linux可以使用vmstat来获取这些数据ÿ