1.2.8性能测试的监控部署
1.服务器层监控
常见且需要重点或者优先观察的监控指标有CPU、内存、网络和连接数。
(1)CPU
CPU利用率。核心的指标包括用户时间(UserTime).系统时间(SystemTime)和空闲时间(IdleTime)o一般CPU的空闲比例至少为20%,否则CPU资源可能会比较紧张。另外CPU利用率还要看用户态和系统态的使用占比情况,用户态CPU资源通常是代码损耗的,如果系统态CPU资源利用占比太高,说明代码利用CPU的效率低下,需要深入分析代码。
-可运行队列。每个可运行队列中不应该有超过3个线程(每处理器),例如双核处理器系统的可运行队列中不应该有超过6个线程。
(2)内存
内存使用率。主要用于观察可用内存是否还够用,一般内存使用率不应该超过80%。另外也可观察虚拟内存有没有被使用,如果已被使用,说明可用内存不够用了。
(3)网络
-带宽大小。带宽最大不能超过网卡的最大带宽。
-丢包率。对于UDP之类,可能需要重点关注有无丢包。
-重传率。对于TCP之类,可能需要重点关注重传率。
(4)连接数
系统本身的连接数是有限的,通常只有65535个。我们一方面需要注意连接消耗的总数,另一方面还需要观察连接的状态,例如ESTABLISHED、TIME_WAIT等状态,如果TIME_WAIT状态的连接数太多,那么很有可能需要优化配置或代码。
接下来我们讲一下监控方法。Linux中用于监控的命令有很多,这里只讲解作者平时用得较多的命令,简要汇总如表1-3所示。
表1-3常用Linux监控命令