sysstat用法整理

一、iostat参照Linux服务器性能测试之iostat详解

二、pidstat工具

#pidstat 的用法:

pidstat [ 选项 ] [ <时间间隔> ] [ <次数> ]
常用的参数:

-u:默认的参数,显示各个进程的cpu使用统计
-r:显示各个进程的内存使用统计
-d:显示各个进程的IO使用情况
-p:指定进程号
-w:显示每个进程的上下文切换情况
-t:显示选择任务的线程的统计信息外的额外信息
-T { TASK | CHILD | ALL }这个选项指定了pidstat监控的。TASK表示报告独立的task,CHILD关键字表示报告进程下所有线程统计信息。ALL表示报告独立的task和task下面的所有线程。注意:task和子线程的全局的统计信息和pidstat选项无关。这些统计信息不会对应到当前的统计间隔,这些统计信息只有在子线程kill或者完成的时候才会被收集。
-V:版本号
-h:在一行上显示了所有活动,这样其他程序可以容易解析。
-I:在SMP环境,表示任务的CPU使用率/内核数量
-l:显示命令名和所有参数

监测某个进程:

1.找到相应进程的PID:ps -ef | grep docker

2.使用pidstat命令监测进程

//每隔2秒,显示5次,所有活动进程的CPU使用情况
pidstat 2 5

//每隔2秒,显示5次,PID为3132的进程的CPU使用情况显示
pidstat -p 3132 2 5

//每隔2秒,显示5次,PID为3132的进程的内存使用情况显示
pidstat -p 3132 2 5 -r

三、sar工具

#sar 命令行的常用格式:

sar [options] [-A] [-o file] t [n]

#下面只列出常用选项:

-A:所有报告的总和。
-u:CPU利用率
-v:进程、I节点、文件和锁表状态。
-d:硬盘使用报告。
-r:没有使用的内存页面和硬盘块。
-g:串口I/O的情况。
-b:缓冲区使用情况。
-a:文件读写情况。
-c:系统调用情况。
-R:进程的活动情况。
-y:终端设备活动情况。
-w:系统交换活动。

#在命令行中,n 和t 两个参数组合起来定义采样间隔和次数,t为采样间隔,是必须有的参数,n为采样次数,是可选的,默认值是1,-o file表示将命令结果以二进制格式存放在文件中,file 在此处不是关键字,是文件名。

四、mpstat工具

mpstat的全称为Multiprocessor Statistics,是一款常用的多核CPU性能分析工具,用来实时查询每个CPU的性能指标,以及所有CPU的平均指标。它是Linux性能工具集sysstat中的一个工具

mpstat [-P {|ALL}] [internal [count]]

参数解释:

  • -P: 指定要监控哪个CPU,范围是[0 ~ n-1], ALL表示监控所有CPU都监控
  • internal: 相邻两次采样的间隔时间
  • count: 采样次数

%user: 表示用户态所使用 CPU 的百分比。
%nice: 表示使用 nice 命令对进程进行降级时 CPU 的百分比。
%sys: 表示内核进程使用的 CPU 百分比。
%iowait: 表示等待进行 I/O 所使用的 CPU 时间百分比。
%irq: 表示用于处理系统中断的 CPU 百分比。
%soft: 表示用于软件中断的 CPU 百分比。
%steal:虚拟机强制CPU等待的时间百分比。
%guest: 虚拟机占用CPU时间的百分比。
%idle: CPU 的空闲时间的百分比。
例:

mpstat -P ALL    显示所有cpu使用情况

mpstat -P ALL 2 3 表示每各2s显示一次,共3次

五、使用uptime查看平均负载

uptime结果后面数字是过去1分钟、5分钟、15分钟的平均负载 

watch -d uptime 实时监控cpu平均负载

平均负载最理想等于CPU个数,所以要判断平均负载

六、动手实战

采用stress压力测试工具,模拟高计算,高IO的情况,使用uptime查看平均负载,使用mpstat和pidstat工具,找出平均负载高的根源。

1.模拟一个CPU使用率为100%的场景:

[root@localhost ~]# stress --cpu 1 --timeout 600

2.在第二个终端用uptime查看平均负载的变化情况:

[root@localhost ~]# watch -d uptime  # -d表示高亮显示变化区域

... load average : 1.00  0.66   0.45

3.在第三个终端使用mpstat查看CPU使用率的变化情况

4.通过uptime可以看到,1分钟的平均负载慢慢的增加到1.00,从第三个终端可以看到,有一个CPU的使用率99.67%了,iowait只有0.00。说明平均负载的增高是由于CPU的使用率高。

那么,到底是哪个进程导致了CPU使用率的增高,可以使用pidstat来查询:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值