linux 系统层/用户层资源使用信息监控

背景:真实场景下的资源使用信息会被记录并整理成trace,根据有影响力的公司公布出来的trace还原该场景下的资源特征可帮助学术届进一步研究优化.首先,目标是还原目标trace中的资源使用特征,就得对平台的资源进行监控,本文实验环境:Ubuntu16.04,使用sar进行所需资源的监控.

sar -u 1 10

 这个指令是对cpu资源使用特征进行监控,每隔1s输出监控信息,共10次结束.对于监控信息的存储,也可用-o选项.

sar -u 1 10 -o /home/xxx

 这样会直接在-o目录生成一个二进制文件,查看的话,直接点开是乱码,用以下代码能够在终端查看:

sar -f sa14

 但是我们在提取有效信息的时候往往需要直接记录在txt文件中,这样方便些,这时可以用以下代码:

sar -u 1 10 > /home/odin/Documents/CloudArch/cpudata.txt

 直接将终端信息输出重定向到制定txt文件中.

(loading)

CPU     %user     %nice   %system   %iowait    %steal     %idle

 输出参数如上所示,代表CPU资源占用的几个指标:

%user:表示用户空间程序的cpu使用率

%nice:表示用户空间且通过nice调度过的程序的cpu使用率

%system:表示系统空间的cpu使用率,主要是内核程序

%iowait:cpu运行时在等待io的时间

%steal:被虚拟机偷走的cpu资源

%idle:空闲的cpu资源率

 对于输出得到的文件,我们下一步需要提取出我们需要的信息,在这里以用户资源占用为例:针对所需资源的提取,可以用python写个小脚本实现.

file = open('/Users/purixingtei/Desktop/cpudata.txt','r')
result = list()
for c in file.readlines():
    c_array = c.split()
    result.append(c_array[3])
result.pop()

 为了直观观察小程序的资源使用特征,我们可以用折线图表示:

x = range(1000)
plt.plot(x, result, mec = 'r', mfc = 'w')
plt.margins(0)
plt.subplots_adjust(bottom=0.15)
plt.show()

得到下图的资源使用特征图:

附测试负载为shell脚本实现的浮点数运算:

#!/bin/bash
a=59
b=60
while true
do
echo "scale=4; $a / $b"|bc
done

  

原文地址:https://www.cnblogs.com/o-din/p/9183053.html