少年意气强不羁,虎胁插翼白日飞。这篇文章主要讲述Linux性能监控相关的知识,希望能为你提供帮助。
今天为大家带来的是, 在测试过程中, 我们常用的一些性能测试的监控:
注: 以下命令执行均基于阿里云CentOS7.6系统!
一、top - 经典的Linux任务管理工具
作为一个广为人知的Linux工具,top是大多数的类Unix操作系统任务管理器。它可以显示当前正在运行的进程的列表,用户可以按照不同的条件对该列表进行排序。它主要显示了系统进程对CPU和内存的使用状况。top可以快速检查是哪个或哪几个进程挂起了你的系统。你可以在这里看到top使用的例子。
你可以在终端输入top来运行它并进入到交互模式:
文章图片
二、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
如下图 :
文章图片
在上面的交互式窗口中,可以使用nmon 快捷键来显示不同的系统资源统计数据:
q : 停止并退出 Nmon
h : 查看帮助
c : 查看 CPU 统计数据
m : 查看内存统计数据
d : 查看硬盘统计数据
k : 查看内核统计数据
n : 查看网络统计数据
N : 查看 NFS 统计数据
j : 查看文件系统统计数据
t : 查看高耗进程
V : 查看虚拟内存统计数据
v : 详细模式
按下c,m,d后如下图,CPU、内存、磁盘的消耗情况都直观的展现出来了,按q键可以退出。
文章图片
性能测试时,需要根据测试场景的执行情况,分析一段时间内系统资源的变化,这时需要nmon采集数据并保存下来,以下是常用的参数:
- -f 参数:生成文件,文件名=主机名+当前时间.nmon
- -T 参数:显示资源占有率较高的进程
- -s 参数:
-s 10
表示每隔10秒采集一次数据 - -c 参数:
-c 10
表示总共采集十次数据 - -m 参数:指定文件保存目录
$ nmon -f -s 5 -c 12 -m.
文章图片
关闭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
文章图片
%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
文章图片
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
文章图片
kbmemfree空闲的物理内存大小kbmemused使用中的物理内存大小%memused物理内存使用率kbbuffers内核中作为缓冲区使用的物理内存大小,kbbuffers和kbcached:这两个值就是free命令中的buffer和cache.kbcached缓存的文件大小kbcommit保证当前系统正常运行所需要的最小内存,即为了确保内存不溢出而需要的最少内存(物理内存+Swap分区)commit这个值是kbcommit与内存总量(物理内存+swap分区)的一个百分比的值
4.5 查看系统swap分区统计情况
sar -W
$ sar -W 1 3
文章图片
4.6 查看IO和传递速率
sar -b
$ sar -b 1 3
文章图片
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
文章图片
六、atop
atop是一个功能非常强大的linux服务器监控工具,它的数据采集主要包括:CPU、内存、磁盘、网络、进程等,并且内容非常的详细,特别是当那一部分存在压力它会以特殊的颜色进行展示,如果颜色是红色那么说明已经非常严重了。
注意:所有的信息都是反映过去10S的状态信息
$ yum list | grep atop
# 搜索安装包
$ yum -y install atop.x86_64
# 安装atop
$ atop
# 执行atop命令
文章图片
推荐阅读
- #yyds干货盘点#k8s中的基础核心概念
- Docker 容器镜像制作指令详解
- CPU缓存和TLB有什么区别(如何理解?)
- 1的补数和2的补数有什么区别()
- HTML和HTTP之间有什么区别()
- http和https之间有什么区别()
- 互联网和网络有什么区别()
- 优先级倒置和优先级继承之间的区别
- 脚本语言和编程语言有什么区别()