性能测试中的基础性能监控指标和基础linux命令

下面简单介绍一下性能测试中的一些性能监控指标以及性能测试中可能用到的linux命令

性能指标

响应时间
TPS
CPU指标
一般要求小于或等于75%,linux下通常使用top,vmstat命令来进行监控,此处比较推荐的方法是使用nmon来进行监控,nmon可以记录下一定时间内的CPU使用情况,便于分析。
内存
内存利用率达到90%甚至100%并不代表内存一定有瓶颈,因为操作系统设置有缓存,即buff和cache,在计算内存利用率时要注意这一点。
I/O
带宽
中间件指标
主要包括节点状态、均衡负载、GC等,不多作介绍
数据库指标
主要包括连接数等,不多作介绍

可能用到的linux命令

这里只详细释义top和vmstat
top
能够实时展示系统中各个进程的资源占用状况,默认每三秒更新一次
性能测试中的基础性能监控指标和基础linux命令
前五行是系统整体的统计信息。
第一行是任务队列信息,我们需要着重查看load average系统负载信息。系统负载,即任务队列的平均长度。三个数值分别为1分钟、5分钟、15分钟前到现在的平均值。

第二行为进程信息统计数据。

第三行Cpu(s)为系统整体CPU使用信息。us是用户空间占用CPU百分比,例如webligic,oracle等所有应用程序消耗的CPU;sy是内核空间占用CPU百分比,也就是操作系统自身消耗的CPU,例如上下文切换等。id为空闲CPU百分比,wa 为等待I/O的CPU时间百分比。

后两行Mem、Swap为内存使用情况,单位KB(也可使用free 命令查看内存使用情况)。第四行Mem,total指物理内存总量,used指使用的物理内存总量,free空闲的内存总量,buff/cache指用作缓存的内存数量。第五行Swap,total指交换区总量,used指使用的交换区总量,free 空闲交换区总量,cached缓冲的交换区总量。可用内存为:free + buff/cache。

再往下是进程信息统计数据,显示了各个进程的详细信息。%CPU显示的是该进程占用一个核的CPU百分比,而不是整个CPU的百分比,有时候可能大于100%,那是因为该进程启用了多线程占用了多个核心,所以有时候我们看到该值会超过100%,但不会超过CPU总核数*100%。

vmstat
vmstat是Virtual Memory Statistics(虚拟内存统计)的缩写,可实时监控操作系统的内存、进程、CPU使用情况。比较常见用法如vmstat 1 5,意为每隔一秒获取一次数据,共获取5次。
性能测试中的基础性能监控指标和基础linux命令
procs:r列表示运行和等待CPU时间片的进程数,这个值如果长期大于CPU核数,说明CPU资源不足,可以考虑增加CPU。b列表示在等待资源的进程数,比如正在等待I/O或者内存交换等。

memory:swpd列表示切换到内存交换区的内存数量(以KB为单位)。如果swpd的值不为0或者比较大,而且si、so的值长期为0,那么这种情况一般不用担心,不会影响系统性能。free、buff、cache,含义同top、free命令。

swap:该列包括两部分si、so,分别是每秒读交换区的内存大小、每秒写交换区的内存大小,一般情况下,si、so的值都为0,如果si、so的值长期不为0,则表示系统内存不足,需要考虑是否增加系统内存。

io:bi列表示从块设备读入的数据总量(即读磁盘,单位KB/秒),bo列表示写入到块设备的数据总量(即写磁盘,单位KB/秒)。

system:in列表示在某一时间间隔中观察到的每秒设备中断数,cs列表示每秒产生的上下文切换次数,这两个值越大,sy%会越大。

cpu:主要看us、sy、wa列,含义同top命令。

查看物理CPU的个数
#cat /proc/cpuinfo |grep "physical id"|sort |uniq|wc -l
查看CPU是几核
#cat /proc/cpuinfo |grep "cores"|uniq
查看逻辑CPU的个数
#cat /proc/cpuinfo |grep "processor"|wc -l
查看CPU的主频
#cat /proc/cpuinfo |grep MHz|uniq
查看操作系统内核版本信息
#uname -a
查看操作系统发行版本信息
#cat /etc/issue | grep Linux
查看服务器内存大小
#free -m