Linux性能监控

少年意气强不羁,虎胁插翼白日飞。这篇文章主要讲述Linux性能监控相关的知识,希望能为你提供帮助。
今天为大家带来的是, 在测试过程中, 我们常用的一些性能测试的监控:
注: 以下命令执行均基于阿里云CentOS7.6系统!
一、top - 经典的Linux任务管理工具
作为一个广为人知的Linux工具,top是大多数的类Unix操作系统任务管理器。它可以显示当前正在运行的进程的列表,用户可以按照不同的条件对该列表进行排序。它主要显示了系统进程对CPU和内存的使用状况。top可以快速检查是哪个或哪几个进程挂起了你的系统。你可以在这里看到top使用的例子。
你可以在终端输入top来运行它并进入到交互模式:

Linux性能监控

文章图片

二、tcpdump - 洞察网络封包
tcpdump可以用来查看网络连接的封包内容。它显示了传输过程中封包内容的各种信息。为了使得输出信息更为有用,它允许使用者通过不同的过滤器获取自己想要的信息。
可以参照的例子如下:
$ tcpdump -i eth0 not port 22$ tcpdump -c 10 -i eth0$ tcpdump -ni eth0 -c 10 not port 22$ tcpdump -w aloft.cap -s 0$ tcpdump -r aloft.cap$ tcpdump -i eth0 dst port 80

三、Nmon
Nmon是一款计算机性能系统监控工具,因为它免费,体积小,安装简单,耗费资源低,广泛应用于AIX和Linux系统。
Nmon 可以很轻松的监控系统的 CPU、内存、网络、硬盘、文件系统、NFS、高耗进程、资源和 IBM Power 系统的微分区的信息。
$ yum list | grep nmon # 搜索nmon安装包 $ yum -y install nmon.x86_64 # 安装nmon $ nmon # 输入nmon运行nmon

如下图 :
Linux性能监控

文章图片

在上面的交互式窗口中,可以使用nmon 快捷键来显示不同的系统资源统计数据:
q : 停止并退出 Nmon h : 查看帮助 c : 查看 CPU 统计数据 m : 查看内存统计数据 d : 查看硬盘统计数据 k : 查看内核统计数据 n : 查看网络统计数据 N : 查看 NFS 统计数据 j : 查看文件系统统计数据 t : 查看高耗进程 V : 查看虚拟内存统计数据 v : 详细模式

按下c,m,d后如下图,CPU、内存、磁盘的消耗情况都直观的展现出来了,按q键可以退出。
Linux性能监控

文章图片

性能测试时,需要根据测试场景的执行情况,分析一段时间内系统资源的变化,这时需要nmon采集数据并保存下来,以下是常用的参数:
  • -f 参数:生成文件,文件名=主机名+当前时间.nmon
  • -T 参数:显示资源占有率较高的进程
  • -s 参数:-s 10表示每隔10秒采集一次数据
  • -c 参数:-c 10表示总共采集十次数据
  • -m 参数:指定文件保存目录
如每隔5秒采集一次,一共采集12次,就是1分钟的数据
$ nmon -f -s 5 -c 12 -m.

Linux性能监控

文章图片

关闭nmon进程, 需要获取到nmon的pid
$ ps -ef | grep nmon$ kill -9 pid # 关闭

四、sar
【Linux性能监控】sar(System Activity Reporter, 系统活动情况报告): 是用于监控Linux系统各个性能的优秀工具,包括:文件的读写情况、系统调用的使用情况、磁盘I/O、CPU效率、内存使用状况、进程活动及IPC有关的活动等。
4.1 查看CPU使用情况sar -u
$ sar 1 3 或 $ sar -u 1 3

Linux性能监控

文章图片

%user用户空间的CPU使用%nice改变过优先级的进程的CPU使用率%system内核空间的CPU使用率%iowaitCPU等待IO的百分比%steal虚拟机的虚拟机CPU使用的CPU%idle空闲的CPU

在以上的显示当中,主要看%iowait和%idle,%iowait过高表示存在I/O瓶颈,即磁盘IO无法满足业务需求,如果%idle过低表示CPU使用率比较严重,需要结合内存使用等情况判断CPU是否瓶颈。
4.2 将统计结果保存到文件 sar -o
$ sar -n DEV 1 10 -o sar.out$ sar -d 1 10 -f sar.out # 查看历史的IO $ sar -u 1 10 -f sar.out # 查看历史的cpu,单位1s, 采样10次

4.3 查看平均负载sar -q
$ sar -q 1 3

Linux性能监控

文章图片

runq-sz运行队列的长度(等待运行的进程数,每核的CP不能超过3个)plist-sz进程列表中的进程(processes)和线程数(threads)的数量ldavg-1最后1分钟的CPU平均负载,即将多核CPU过去一分钟的负载相加再除以核心数得出的平均值,5分钟和15分钟以此类推ldavg-5最后5分钟的CPU平均负载ldavg-15最后15分钟的CPU平均负载

4.4 查看内存使用情况sar -r
$ sar -r 1 3

Linux性能监控

文章图片

kbmemfree空闲的物理内存大小kbmemused使用中的物理内存大小%memused物理内存使用率kbbuffers内核中作为缓冲区使用的物理内存大小,kbbuffers和kbcached:这两个值就是free命令中的buffer和cache.kbcached缓存的文件大小kbcommit保证当前系统正常运行所需要的最小内存,即为了确保内存不溢出而需要的最少内存(物理内存+Swap分区)commit这个值是kbcommit与内存总量(物理内存+swap分区)的一个百分比的值

4.5 查看系统swap分区统计情况sar -W
$ sar -W 1 3

Linux性能监控

文章图片

4.6 查看IO和传递速率sar -b
$ sar -b 1 3

Linux性能监控

文章图片

tps磁盘每秒钟的IO总数,等于iostat中的tpsrtps每秒钟从磁盘读取的IO总数wtps每秒钟从写入到磁盘的IO总数bread/s每秒钟从磁盘读取的块总数bwrtn/s每秒钟此写入到磁盘的块总数

五、dstat
dstat 是一个可以取代vmstat,iostat,netstat和ifstat这些命令的多功能产品。dstat扬长避短,即克服了这些命令的局限又增加了一些额外的功能,不但拥有更多的监控项,也更灵活。dstat在性能测试、基准测试和排除故障过程中可以很方便监控系统运行状况。
$ yum list | grep dstat # 搜索安装包 $ yum -y install dstat # 安装dstat

Linux性能监控

文章图片

六、atop
atop是一个功能非常强大的linux服务器监控工具,它的数据采集主要包括:CPU、内存、磁盘、网络、进程等,并且内容非常的详细,特别是当那一部分存在压力它会以特殊的颜色进行展示,如果颜色是红色那么说明已经非常严重了。
注意:所有的信息都是反映过去10S的状态信息
$ yum list | grep atop # 搜索安装包 $ yum -y install atop.x86_64 # 安装atop $ atop # 执行atop命令

Linux性能监控

文章图片


    推荐阅读