sar(System Activity Reporter系统活动情况报告)是目前 Linux 上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告,

包括:文件的读写情况、系统调用的使用情况、磁盘I/OCPU效率、内存使用状况、进程活动及IPC有关的活动等

IPC(Inter-Process Communication)进程间通信,提供了各种进程间通信的方法。在Linux C编程中有几种方法
(1) 半双工Unix管道
  (2) FIFOs(命名管道)
  (3) 消息队列
  (4) 信号量
  (5) 共享内存
  (6) 网络Socket

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

t为采样间隔,n为采样次数,默认值是1;

-o file表示将命令结果以二进制格式存放在文件中,file 是文件名。

常用选项如下:
-A:所有报告的总和
-r:输出内存和交换空间的统计信息
-u:输出CPU使用情况的统计信息
-c:输出进程统计信息,每秒创建的进程数
-R:输出内存页面的统计信息
-v:输出inode、文件和其他内核表的统计信息 -d:输出每一个块设备的活动信息
-b:显示I/O和传送速率的统计信息
-a:文件读写情况
-y:终端设备活动情况
-w:输出系统交换活动信息

注意:-o 文件名,可以将显示的数据放在文件里

可以使用sar -f 文件名  查看

CPU

[root@VM_0_10_centos ~]# sar -u 5 3
Linux 2.6.32-696.el6.x86_64 (VM_0_10_centos) 05/15/2020 _x86_64_ (1 CPU) 10:38:38 PM CPU %user %nice %system %iowait %steal %idle
10:38:43 PM all 0.60 0.00 0.40 0.00 0.00 99.00
10:38:48 PM all 0.60 0.00 0.20 0.00 0.00 99.20
10:38:53 PM all 0.60 0.00 0.40 0.20 0.00 98.80
Average: all 0.60 0.00 0.33 0.07 0.00 99.00
每个5秒测一测
all 表示统计信息为所有 CPU 的平均值。(多个cpu的情况下)
%user:显示在用户级别(application)运行使用 CPU 总时间的百分比。
%nice:显示在用户级别,用于nice操作,所占用 CPU 总时间的百分比。
%system:在核心级别(kernel)运行所使用 CPU 总时间的百分比。
%iowait:显示用于等待I/O操作占用 CPU 总时间的百分比。
%steal:管理程序(hypervisor)为另一个虚拟进程提供服务而等待虚拟 CPU 的百分比。
%idle:显示 CPU 空闲时间占用 CPU 总时间的百分比。 注意性能:
%iowait 的值过高,表示硬盘存在I/O瓶颈
%idle 的值高但系统响应慢时,有可能是 CPU 等待分配内存,此时应加大内存容量
%idle 的值持续低于1,则系统的 CPU 处理能力相对较低,表明系统中最需要解决的资源是 CPU 。

内存

[root@VM_0_10_centos ~]# sar -r 5 3
Linux 2.6.32-696.el6.x86_64 (VM_0_10_centos) 05/15/2020 _x86_64_ (1 CPU) 10:46:17 PM kbmemfree kbmemused %memused kbbuffers kbcached kbcommit %commit
10:46:22 PM 87556 1834692 95.45 72188 325300 1941736 101.01
10:46:27 PM 90116 1832132 95.31 72196 325296 1934324 100.63
10:46:32 PM 90100 1832148 95.31 72196 325300 1934328 100.63
Average: 89257 1832991 95.36 72193 325299 1936796 100.76
kbmemfree:它不包括buffer和cache的空间.和free命令的free一样
kbmemused:它包括buffer和cache的空间.
%memused:kbmemused/内存总量(不包括swap)
kbbuffers和kbcached:是free命令中的buffer和cache.
kbcommit:保证当前系统所需要的内存,即为了确保不溢出而需要的内存(RAM+swap).
%commit:这个值是kbcommit与内存总量(包括swap)的一个百分比.

I/O

[root@VM_0_10_centos ~]# sar -b 5 3
Linux 2.6.32-696.el6.x86_64 (VM_0_10_centos) 05/15/2020 _x86_64_ (1 CPU) 10:50:12 PM tps rtps wtps bread/s bwrtn/s
10:50:17 PM 2.21 0.00 2.21 0.00 41.77
10:50:22 PM 1.80 0.00 1.80 0.00 35.20
10:50:27 PM 4.62 0.00 4.62 0.00 54.62
Average: 2.87 0.00 2.87 0.00 43.85
tps:每秒钟物理设备的 I/O 传输总量
rtps:每秒钟从物理设备读入的数据总量
wtps:每秒钟向物理设备写入的数据总量
bread/s:每秒钟从物理设备读入的数据量,单位为 块/s
bwrtn/s:每秒钟向物理设备写入的数据量,单位为 块/s

inode ,file,其他内核

[root@VM_0_10_centos ~]# sar -v 5 3
Linux 2.6.32-696.el6.x86_64 (VM_0_10_centos) 05/15/2020 _x86_64_ (1 CPU) 10:52:17 PM dentunusd file-nr inode-nr pty-nr
10:52:22 PM 6552 928 9491 1
10:52:27 PM 6524 832 9445 1
10:52:32 PM 6524 832 9445 1
Average: 6533 864 9460 1
dentunusd:目录高速缓存中未被使用的条目数量
file-nr:文件句柄(file handle)的使用数量
inode-nr:索引节点句柄(inode handle)的使用数量
pty-nr:使用的pty数量,这就是虚拟终端pty(pseudo-tty)

进程队列长度和平均负载

[root@VM_0_10_centos ~]# sar -q 5 3
Linux 2.6.32-696.el6.x86_64 (VM_0_10_centos) 05/16/2020 _x86_64_ (1 CPU) 10:38:39 AM runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15
10:38:44 AM 0 154 0.00 0.00 0.00
10:38:49 AM 0 151 0.00 0.00 0.00
10:38:54 AM 0 152 0.00 0.00 0.00
Average: 0 152 0.00 0.00 0.00
runq-sz:运行队列的长度(等待运行的进程数)
plist-sz:进程列表中进程(processes)和线程(threads)的数量
ldavg-1:最后1分钟的系统平均负载(System load average)
ldavg-5:过去5分钟的系统平均负载
ldavg-15:过去15分钟的系统平均负载

最新文章

  1. Kafka1 利用虚拟机搭建自己的Kafka集群
  2. java中执行系统命令
  3. HttpEntity转换Inputstream(红色)加XmlPull解析
  4. nginx入门篇----负载均衡策略
  5. Xamarin Android自学和实践步骤
  6. ASP.NET分页
  7. 【转载】理解OAuth 2.0
  8. STM32 IAP 在线更新程序 为什么有时行 有时又不行 感觉不可靠 问题解决
  9. 使用ant自动编译、打包生成apk文件
  10. File类与FileInfo类
  11. Python 整理一
  12. 开源第三方登录组件OAuthLogin2.0 解析及开源地址
  13. 【功能代码】---3 JS判断字符串是否包含某个字符串
  14. How Tomcat Works读书笔记三-------连接器
  15. vue.js基础
  16. 推荐!PlayGround:可视化神经网络
  17. CentOS7设置固定IP
  18. 【学习总结】Master课程 之 虚拟化与云计算
  19. G - Balanced Lineup POJ - 3264 线段树最大最小值区间查询模版题
  20. Logstash配置文件介绍

热门文章

  1. Java多线程中的死锁
  2. [no code][scrum meeting] Alpha 8
  3. 单片机stm32串口分析
  4. Spring Cloud Alibaba 使用Nacos作为配置管理中心
  5. 『学了就忘』Linux基础命令 — 28、别名和常用快捷键
  6. ACL实验
  7. pip 更新方法
  8. Screenshot 库和Collections 库
  9. RF运行之后控制信息日志显示乱码(解决方法)
  10. (数据科学学习手札130)利用geopandas快捷绘制在线地图