linux 中的sar命令 与gnuplot绘图

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介:

一.简单介绍

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
1.安装软件
#yum install sysstat  
 
[root@node1 sa] # rpm -ql sysstat
/etc/cron .d /sysstat
/etc/rc .d /init .d /sysstat
/etc/sysconfig/sysstat
/etc/sysconfig/sysstat .ioconf
/usr/bin/cifsiostat
/usr/bin/iostat
...
 
 
2.安装sysstat包后,默认创建一个 /etc/cron .d /sysstat 文件,其默认内容为
[root@node1 sa] # cat /etc/cron.d/sysstat 
# Run system activity accounting tool every 10 minutes
* /10  * * * * root  /usr/lib64/sa/sa1  1 1
# 0 * * * * root /usr/lib64/sa/sa1 600 6 &
# Generate a daily summary of process accounting at 23:53
53 23 * * * root  /usr/lib64/sa/sa2  -A
 
在  cron  任务  /etc/cron .d /sysstat  中每隔10分钟执行一次  /usr/lib/sa/sa1
在  cron  任务  /etc/cron .d /sysstat  中每天 23:53执行一次  /usr/lib/sa/sa2
 
 
 
3.主要命令
/usr/lib64/sa 目录下有三个文件:
sa1  sa2  sadc
 
sa1:是调用sadc(二进制文件),将数据收集到二进制日志文件的一个Shell脚本。sa1命令还确保每天使用不同的文件。每隔十分钟运行一次该命令,最好不要改这个值,这是对一般系统折中的值。二进制日志文件存放在 /var/log/sa/ 目录下,命名为sa${DATE}。
 
sa2:是将当日二进制日志文件中所有的数据转储到文本文件(sar)的另一个Shell脚本,然后它将清除七天之前的所有日志文件。参数-A指定了从二进制文件中提取哪些数据转储到文本文件中。转储的文件存放在 /var/log/sa/ 目录下,命名为sar${DATE}。
 
 
文件  /var/log/sa/saDD  为二进制文件,不能使用 more less  等文本工具查看,必须用 sar 或 sadf 命令查看
文件  /var/log/sa/sarDD  为文本文件,可以使用 more cat  查看



二.查看cpu信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
1.进程队列长度和平均负载状态监控:
   
#每5s采样一次,连续采样10次,监控进程队列长度和平均负载状态
[root@node1 sa] # sar -q 5 10
Linux 2.6.32-642.el6.x86_64 (node1)     07 /12/2017       _x86_64_        (4 CPU)
 
08:44:50 PM   runq-sz  plist-sz   ldavg-1   ldavg-5  ldavg-15
08:44:55 PM         0       182      0.00      0.01      0.04
08:45:00 PM         0       182      0.00      0.01      0.04
08:45:05 PM         0       182      0.00      0.01      0.04
08:45:10 PM         0       182      0.00      0.01      0.04
08:45:15 PM         0       182      0.00      0.01      0.04
08:45:20 PM         0       182      0.00      0.01      0.04
....
 
runq-sz: 运行队列的长度(等待运行的进程数)
plist-sz:进程列表中进程(processes)和线程(threads)的数量
ldavg-1: 最近1分钟的系统平均负载(Systemload average)
ldavg-5: 过去5分钟的系统平均负载
ldavg-15:过去15分钟的系统平均负载
 
 
2.CPU资源监控
[root@node1 sa] # sar -u 1 10
Linux 2.6.32-642.el6.x86_64 (node1)     07 /12/2017       _x86_64_        (4 CPU)
 
08:47:45 PM     CPU     %user     % nice    %system   %iowait    %steal     %idle
08:47:46 PM     all      0.00      0.00      0.99      0.00      0.00     99.01
08:47:47 PM     all      0.00      0.00      1.25      0.00      0.00     98.75
08:47:48 PM     all      0.00      0.00      1.74      0.00      0.00     98.26
08:47:49 PM     all      0.25      0.00      1.49      0.00      0.00     98.26
08:47:50 PM     all      0.00      0.00      1.25      0.00      0.00     98.75
08:47:51 PM     all      0.00      0.00      1.50      0.00      0.00     98.50
...
 
 
输出项说明:
CPU:all      #表示统计信息为所有 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 的值持续低于 10,则系统的 CPU 处理能力相对较低,表明系统中最需要解决的资源是CPU。


三.查看磁盘I/O和传送速率的统计信息

1
2
3
4
5
6
7
8
[root@node1 sa] # sar -b
 
输出项说明:
tps             #每秒钟物理设备的 I/O 传输总量
rtps            #每秒钟从物理设备读入的数据总量
wtps            #每秒钟向物理设备写入的数据总量
bread /s         #每秒钟从物理设备读入的数据量,单位为 块/s
bwrtn /s         #每秒钟向物理设备写入的数据量,单位为 块/s


四.查看内存信息

1
2
3
4
5
6
7
8
9
sar -r
 
kbmemfree          #空余内存
kbmemused          #使用内存
%memused           #使用内存/总内存
kbbuffers  buffer
kbcached  cache
kbcommit            #保证正常工作的内存,保证不会内存溢出
%commitkbcommit/(RAM+SWAP)



五.利用gnuplot工具对sa文件进行画图

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
1.安装软件gnuplot
 
yum  install  gnuplot
 
2.对sa文件进行处理(取我们想得到的数据)
LANG=C  sar -f sa02 -q |  grep  - v  "Average:"  awk  'NR>3 {print $0}'  /tmp/111
 
3.编辑脚本(重点)
vim a.plt 
 
set  xdata  time                     #定义x轴数据格式
set  timefmt  '%H:%M:%S'             #定义x轴单位格式
set  xlabel  'Time'                  #定义显示标签
set  format  '%H:%M:%S'            
set  terminal png truecolor  size 1600,900
set  output  "/var/www/html/1.png"
set  ylabel  'Load Avg'
set  yrange [0:]
plot  '/tmp/111'  using 1:4 title  '1min'  with lines, '/tmp/111'  using 1:5 title     '5min'  with lines, '/tmp/111'  using 1:6 title  '15min'  with lines
 
 
4.执行脚本:
gnuplot a.plt
 
5.查看结果:
(1) ls  /var/www/html/1 .png   #在此目录下生成图片
(2)在浏览器中打开           #验证图片

六.使用 ksar 工具分析系统性能

1
2
3
4
5
6
7
8
9
yum  install  java
 
下载包
  wget     
  
  
  export  DISPLAY=192.168.193.1:0 
  
   sh run.sh


wKioL1lmIKqDAsw_AAA8zxuo1Co034.png-wh_50


Ttansfer/s: 每秒从物理磁盘 I/O 的次数 . 多个逻辑请求会被合并为一个 I/O 磁盘请求,一次传输的大小是不确定的 .

Read/s: 每秒的读请求数

Writer/s: 每秒的写请求数

Block bread/s: 每秒读磁盘的数据块数

Block wrtn/s: 每秒写磁盘的数据块数



https://www.ibm.com/developerworks/cn/linux/1303_caojh_ksar/

本文转自   a8757906   51CTO博客,原文链接:http://blog.51cto.com/nxyboy/1946877

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
2月前
|
Linux 网络安全 数据安全/隐私保护
Linux 超级强大的十六进制 dump 工具:XXD 命令,我教你应该如何使用!
在 Linux 系统中,xxd 命令是一个强大的十六进制 dump 工具,可以将文件或数据以十六进制和 ASCII 字符形式显示,帮助用户深入了解和分析数据。本文详细介绍了 xxd 命令的基本用法、高级功能及实际应用案例,包括查看文件内容、指定输出格式、写入文件、数据比较、数据提取、数据转换和数据加密解密等。通过掌握这些技巧,用户可以更高效地处理各种数据问题。
138 8
|
2月前
|
监控 Linux
如何检查 Linux 内存使用量是否耗尽?这 5 个命令堪称绝了!
本文介绍了在Linux系统中检查内存使用情况的5个常用命令:`free`、`top`、`vmstat`、`pidstat` 和 `/proc/meminfo` 文件,帮助用户准确监控内存状态,确保系统稳定运行。
548 6
|
2月前
|
Linux
在 Linux 系统中,“cd”命令用于切换当前工作目录
在 Linux 系统中,“cd”命令用于切换当前工作目录。本文详细介绍了“cd”命令的基本用法和常见技巧,包括使用“.”、“..”、“~”、绝对路径和相对路径,以及快速切换到上一次工作目录等。此外,还探讨了高级技巧,如使用通配符、结合其他命令、在脚本中使用,以及实际应用案例,帮助读者提高工作效率。
104 3
|
2月前
|
监控 安全 Linux
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景,包括 ping(测试连通性)、traceroute(跟踪路由路径)、netstat(显示网络连接信息)、nmap(网络扫描)、ifconfig 和 ip(网络接口配置)。掌握这些命令有助于高效诊断和解决网络问题,保障网络稳定运行。
88 2
|
29天前
|
Linux Shell
Linux 10 个“who”命令示例
Linux 10 个“who”命令示例
53 14
Linux 10 个“who”命令示例
|
9天前
|
Linux
linux查看目录下的文件夹命令,find查找某个目录,但是不包括这个目录本身?
通过本文的介绍,您应该对如何在 Linux 系统中查看目录下的文件夹以及使用 `find` 命令查找特定目录内容并排除该目录本身有了清晰的理解。掌握这些命令和技巧,可以大大提高日常文件管理和查找操作的效率。 在实际应用中,灵活使用这些命令和参数,可以帮助您快速定位和管理文件和目录,满足各种复杂的文件系统操作需求。
31 8
|
18天前
|
Ubuntu Linux
Linux 各发行版安装 ping 命令指南
如何在不同 Linux 发行版(Ubuntu/Debian、CentOS/RHEL/Fedora、Arch Linux、openSUSE、Alpine Linux)上安装 `ping` 命令,详细列出各发行版的安装步骤和验证方法,帮助系统管理员和网络工程师快速排查网络问题。
104 20
|
18天前
|
网络协议 Linux 应用服务中间件
kali的常用命令汇总Linux
kali的常用命令汇总linux
47 7
|
2月前
|
Linux 数据库
Linux中第一次使用locate命令报错?????
在Linux CentOS7系统中,使用`locate`命令时出现“command not found”错误,原因是缺少`mlocate`包。解决方法是通过`yum install mlocate -y`或`apt-get install mlocate`安装该包,并执行`updatedb`更新数据库以解决后续的“can not stat”错误。
37 9
|
2月前
|
监控 网络协议 Linux
Linux netstat 命令详解
Linux netstat 命令详解