Linux服务器默认存储一个月的CPU和内存记录,所在目录:/var/log/sa/,如下图所示
在此用sar命令来执行
sar是一个比较全面的性能监控工具,包括cpu、内存、磁盘和网络等信息,并且该命令会每10分钟自动保存一次硬件资源使用情况。如果在执行某方面的性能测试时忘记监控,那么 sar 可以帮助我们查看历史记录。
语法:sar [ 选项 ] [ <时间间隔> [ <次数> ] ]
参数:
-u:CPU利用率
-r:内存利用率
-R:内存状况
-S:交换空间利用率
-H:交换空间利用率
-b:I/O 和传输速率信息状况
-d:磁盘使用情况
-q:队列长度和平均负载
-n { <关键词> [,...] | ALL } :网络统计信息
-o:保存信息为二进制文件
-f:查看 -o 保存的文件
eg:
sar -q 1 3 # 每 1s 监控一次,共监控 3 次
runq-sz :运行队列长度(正在等待 CPU 执行的进程数)
plist-sz :进程队列长度(等待 CPU 时间片的进程数)
ldavg-1 :过去1分钟负载平均值
ldavg-5 :过去5分钟负载平均值
ldavg-15:过去15分钟负载平均值
blocked :阻塞进程数量(目前正在阻塞等待某些事件的进程数量)
导出近一个月的内存和cpu使用情况:
1、在家目录下新建data目录:mkdir ~/data
2、新建createFile.sh文件,内容如下
touch {20240301..20240305}.txt
touch {20240206..20240229}.txt
chmod 755 *
批量创建文件,格式 touch (开始..结束).txt,根据/var/log/sa/目录下的文件日期来创建就行
3、新建echoData.sh文件,内容如下
sar -u -r -f /var/log/sa/sa01 >> ~/data/20240301.txt
sar -u -r -f /var/log/sa/sa02 >> ~/data/20240302.txt
sar -u -r -f /var/log/sa/sa03 >> ~/data/20240303.txt
sar -u -r -f /var/log/sa/sa04 >> ~/data/20240304.txt
sar -u -r -f /var/log/sa/sa05 >> ~/data/20240305.txt
sar -u -r -f /var/log/sa/sa06 >> ~/data/20240206.txt
sar -u -r -f /var/log/sa/sa07 >> ~/data/20240207.txt
sar -u -r -f /var/log/sa/sa08 >> ~/data/20240208.txt
sar -u -r -f /var/log/sa/sa09 >> ~/data/20240209.txt
sar -u -r -f /var/log/sa/sa10 >> ~/data/20240210.txt
sar -u -r -f /var/log/sa/sa11 >> ~/data/20240211.txt
sar -u -r -f /var/log/sa/sa12 >> ~/data/20240212.txt
sar -u -r -f /var/log/sa/sa13 >> ~/data/20240213.txt
sar -u -r -f /var/log/sa/sa14 >> ~/data/20240214.txt
sar -u -r -f /var/log/sa/sa15 >> ~/data/20240215.txt
sar -u -r -f /var/log/sa/sa16 >> ~/data/20240216.txt
sar -u -r -f /var/log/sa/sa17 >> ~/data/20240217.txt
sar -u -r -f /var/log/sa/sa18 >> ~/data/20240218.txt
sar -u -r -f /var/log/sa/sa19 >> ~/data/20240219.txt
sar -u -r -f /var/log/sa/sa20 >> ~/data/20240220.txt
sar -u -r -f /var/log/sa/sa21 >> ~/data/20240221.txt
sar -u -r -f /var/log/sa/sa22 >> ~/data/20240222.txt
sar -u -r -f /var/log/sa/sa23 >> ~/data/20240223.txt
sar -u -r -f /var/log/sa/sa24 >> ~/data/20240224.txt
sar -u -r -f /var/log/sa/sa25 >> ~/data/20240225.txt
sar -u -r -f /var/log/sa/sa26 >> ~/data/20240226.txt
sar -u -r -f /var/log/sa/sa27 >> ~/data/20240227.txt
sar -u -r -f /var/log/sa/sa28 >> ~/data/20240228.txt
sar -u -r -f /var/log/sa/sa29 >> ~/data/20240229.txt
内容为把对应的命令输出结果写入到对应的文件里
先执行createFile.sh文件,在执行echoData.sh文件,通过FSTP把*.txt文件下载下来即可
CPU数据格式:
%user :用户空间占用的CPU
%nice :改变过优先级进程占用的CPU
%system :内核空间占用的CPU
%iowait :CPU 等待 IO 的占比(若该占比较高,硬盘可能存在 I/O 瓶颈)
%steal :管理程序(hypervisor)为另一个虚拟进程提供服务而等待的虚拟CPU占比
%idle :空闲的CPU(若空闲较大,但系统响应慢,有可能CPU等待内存分配,应适当增加内存容量;若空闲持续低于 1%,则系统的CPU处理能力较低)
内存数据格式:
kbmemfree :空闲的物理内存
kbmemused :已使用的物理内存
%memused :物理内存使用率
kbbuffers :已使用的缓冲区大小
kbcached :已缓存的文件系统大小
kbcommit :保证当前系统所需内存,为了确保不溢出而需要的内存(RAM + SWAP)
%commit :可用内存占比(是可用,而不是空闲)