sysstat 工具
简介:
Linux 下的性能分析,包括CPU使用情况,内存使用情况,IO状态等等与系统相关的状态,少不了要使用 sysstat 工具包中的命令,它包括:cifsiostat iostat mpstat pidstat sadf sar tapestat 七条命令。 sysstat 服务启动后,它会自动每个10分钟收集一次系统状态信息,并将它们存储到 /var/log/sa目录下。每天一个文件,文件名分别是sa01, sa02,... sa30.. 但是对于嵌入式设备,一般的busybox里面不会包含sysstat里面的命令,或者说是这些命令有些功能已经被裁减了。为了更好的分析嵌入式设备的状态和性能,可以将sysstat工具包里的命令移植到嵌入式设备中。
下面是各个子工具的介绍:常用的为“绿色标注”
- iostat 工具提供CPU使用率及硬盘吞吐效率的数据;
- mpstat
- sar
- sa1 工具负责收集并存储每天系统动态信息到一个二进制的文件中。它是通过计划任务工具cron来运行,是为sadc所设计的程序前端程序;
- sa2 工具负责把每天的系统活跃性息写入总结性的报告中。它是为sar所设计的前端 ,要通过cron来调用
- sadc 工具是系统动态数据收集工具,收集的数据被写一个二进制的文件中,它被用作sar工具的后端;
- sadf 工具显示被sar通过多种格式收集的数据;
- pidstat
sysstat在ubuntu等发行系统可直接安装:ubuntu:sudo apt install sysstat
嵌入式linux 设备需要交叉编译、交叉编译例子如下
1. 交叉编译sysstat工具
下载:git clone git://github.com/sysstat/sysstat
配置:./configure --prefix=/usr/lrp/ --host=arm-linux
编译:make
安装:sudo make install
注意:--prefix后跟的路径是install的路径,交叉编译后,这个路径直接移植到板卡相同路径下,将可执行文件路径加入/etc/profile 然后source /etc/profile 不然路径会影响嵌入式移植使用的
2.配置设备端环境
拷贝:将1交叉编译生成的文件夹/usr/下的lrp整个拷贝到设备的/usr/下
赋予权限:chmod a+x -R /usr/lrp/
修改环境变量:vi /etc/profile内容修改如下后,source /etc/profile
这时候可以使用sysstat start 命令启动服务初始化
命令详解
1. mpstat
查看所有CPU核占用使用情况1S的打印频率
mpstat -P ALL 1
如果为mpstat -P ALL 1 1表示遍历CPU表使用情况1S打印一次,仅打印一次
查看汇总(平均值)CPU占比:mpstat 1 1
不显示平均值
说明:
%user:表示处理用户进程所使用CPU的百分比。用户进程是用于应用程序(如Oracle数据库)的非内核进程;
%nice:表示使用nice命令对进程进行降级时CPU的百分比;
%system:表示内核进程使用的CPU百分比;
%iowait:表示等待进行I/O所使用的CPU时间百分比;
%irq:表示用于处理系统中断的CPU百分比;
%soft:表示用于软件中断的CPU百分比;
%steal :显示虚拟机管理器在服务另一个虚拟处理器时虚拟CPU处在非自愿等待下花费时间的百分比
%guest :显示运行虚拟处理器时CPU花费时间的百分比
%idle:显示CPU的空闲时间;
%intr/s:显示每秒CPU接收的中断总数;
计算公式:
total_current=user+system+nice+idle+iowait+irq+softirq
total_pre=pre_user+ pre_system+ pre_nice+pre_idle+ pre_iowait+ pre_irq+ pre_softirq
user=user_cur – user_pre
total=total_cur-total_pre
---------------------------------
mpstat -P CPU 时间间隔 采集次数
mpstat -P ALL 1 5 ----所有的cpu
mpstat -P 0 1 5 ----第一颗cpu
mpstat –P ALL interval times
2.sar 命令可用来监测CPU、内存、网卡信息、io等具体可查资料
传送门:
查看网卡信息:
sar -n DEV 1 1 查看所有网卡1S频率打印一次
第一字段:时间;
IFACE:设备名;
rxpck/s:每秒收到的包;
rxbyt/s:每秒收到的所有包的体积;
txbyt/s:每秒传输的所有包的体积;
rxcmp/s:每秒收到数据切割压缩的包总数;
txcmp/s :每秒传输的数据切割压缩的包的总数;
rxmcst/s: 每秒收到的多点传送的包;
查看CPU使用情况
sar -u -P ALL 1 1
CPU: 表示机器内的CPU all 所有核 下标从0开始有几个核就到几个核-1;
%user 表示CPU的利用率;
%nice 表示CPU在用户层优先级的百分比,0表示正常;
%system 表示当系统运行时,在用户应用层上所占用的CPU百分比;
%iowait 表示请求硬盘I/0数据流出时,所占用CPU的百分比;
%idle 表示空闲CPU百分比,值越大系统负载越低;
查看内存:
sar -r 1 1 使用sar查看内存使用情况1s频率打印1次 如果不加次数,就会按照频率一直打印