IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Linux:使用 sar、kSar 监控系统性能 -> 正文阅读

[系统运维]Linux:使用 sar、kSar 监控系统性能

概况

????????sar是老牌和著名的命令行工具之一,经常被忽视。 当遇到性能瓶颈时,它提供了丰富的信息。 它本身只提供冗长的数字数据列,很难解释。 sar存在于大多数Linux发行版上,例如Ubuntu,Debian,CentOS,Gentoo,也可在Solaris,AIX和其他商业Unices上使用。

????????ksar是用于sar数值数据的基于Java的前端。 它生成可以导出为.pdf和其他格式的友好图形。

SAR

????????sar(System Activity Reporter,系统活动情况报告)是Linux下系统运行状态统计工具,可从多方面对系统的活动进行报告,包括:文件的读写情况、系统调用的使用情况、磁盘I/O、CPU效率、内存使用状况、进程活动及IPC有关的活动等。算是一个万能的小能手。

sar是sysstat中的一个工具之一,sysstat里面包含了很多工具,可以对系统进行详细的统计。

sysstat 包

????????sysstat 包含sar、sa1、和 sa2 命令,是 Linux 包含的性能监视工具集合。

  • sar :? ?显示数据
  • sa1:是调用sadc(二进制文件),将数据收集到二进制日志文件的一个Shell脚本。它调用 sadc 去记录报告到 /var/log/sa/sadX 格式。

? ? ? ? ? ? ? ? sa1命令还确保每天使用不同的文件每隔十分钟运行一次该命令,最好不要改这个值,这是对一般系统折中的值。

????????????????二进制日志文件存放在/var/log/sa/目录下,命名为sa${DATE}。

  • sa2:是将当日二进制日志文件中所有的数据转储到文本文件(sar)的另一个Shell脚本,然后它将清除七天之前的所有日志文件。它调用 sar 去记录报告到 /var/log/sa/sarX 格式。

????????????????参数-A指定了从二进制文件中提取哪些数据转储到文本文件中。

????????????????转储的文件存放在/var/log/sa/目录下,命名为sar${DATE}。

安装sysstat

yum install sysstat? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? -----centos7

sudo apt install sysstat? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ------ubuntu

github参考

配置文件

? ? ? ? 配置文件所在目录:

/etc/sysconfig/sysstat

  1 # sysstat-10.1.5 configuration file.
  2 
  3 # How long to keep log files (in days).
  4 # If value is greater than 28, then log files are kept in
  5 # multiple directories, one for each month.
  6 HISTORY=28
  7 
  8 # Compress (using gzip or bzip2) sa and sar files older than (in days):
  9 COMPRESSAFTER=31
 10 
 11 # Parameters for the system activity data collector (see sadc manual page)
 12 # which are used for the generation of log files.
 13 SADC_OPTIONS="-S DISK"
 14 
 15 # Compression program to use.
 16 ZIP="bzip2"

定时任务文件

? ? ? ? 定时任务文件所在:

/etc/cron.d/sysstat

[root@localhost hhd]# 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

设置为开机启动

systemctl enable sysstat? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? -----开机启动
systemctl start sysstat.service? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?-----开启服务
systemctl status sysstat.service? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?-----查看状态

状态信息示例:

[root@localhost hhd]# systemctl status sysstat.service
● sysstat.service - Resets System Activity Logs
   Loaded: loaded (/usr/lib/systemd/system/sysstat.service; enabled; vendor preset: enabled)
   Active: active (exited) since Mon 2022-06-20 09:48:00 CST; 1 day 4h ago
 Main PID: 968 (code=exited, status=0/SUCCESS)
   CGroup: /system.slice/sysstat.service

Jun 20 09:48:00 localhost.localdomain systemd[1]: Starting Resets System Activity Logs...
Jun 20 09:48:00 localhost.localdomain systemd[1]: Started Resets System Activity Logs.

sar命令详解

?

Usage: sar [ options ] [ <interval> [ <count> ] ]

Options are:

[ -A ] [ -B ] [ -b ] [ -C ] [ -d ] [ -H ] [ -h ] [ -p ] [ -q ] [ -R ]

[ -r ] [ -S ] [ -t ] [ -u [ ALL ] ] [ -V ] [ -v ] [ -W ] [ -w ] [ -y ]

[ -I { <int> [,...] | SUM | ALL | XALL } ] [ -P { <cpu> [,...] | ALL } ]

[ -m { <keyword> [,...] | ALL } ] [ -n { <keyword> [,...] | ALL } ]

[ -j { ID | LABEL | PATH | UUID | ... } ]

[ -f [ <filename> ] | -o [ <filename> ] | -[0-9]+ ]

[ -i <interval> ] [ -s [ <hh:mm:ss> ] ] [ -e [ <hh:mm:ss> ] ]

-A:所有报告的总和

-u:输出CPU使用情况的统计信息

-v:输出inode、文件和其他内核表的统计信息

-d:输出每一个块设备的活动信息,类似iostat

-r:输出内存和交换空间的统计信息

-b:显示I/O和传送速率的统计信息

-B:显示内存与“磁盘或SWAP空间”交换情况,监控分页情况

-a:文件读写情况

-c:输出进程统计信息,每秒创建的进程数

-R:输出内存页面的统计信息

-y:终端设备活动情况

-w:输出每秒上下文切换数

-W:输出系统交换活动信息

下面列举几个例子

获取cpu信息

????????使用 sar 命令去显示操作系统中选定的累积活动计数器输出。在这个示例中,运行 sar 命令行,去实时获得 CPU 使用率的报告:

其中:

  • 3 表示间隔时间
  • 10 表示次数
[root@localhost hhd]# sar -u 3 10
Linux 3.10.0-1127.19.1.rt56.1116.el7.x86_64 (localhost.localdomain) 	06/21/2022 	_x86_64_	(14 CPU)

02:29:35 PM     CPU     %user     %nice   %system   %iowait    %steal     %idle
02:29:38 PM     all     13.22      0.00     13.88      0.00      0.00     72.90
02:29:41 PM     all     13.14      0.00     13.90      0.00      0.00     72.96
02:29:44 PM     all     13.24      0.00     13.89      0.00      0.00     72.86
02:29:47 PM     all     13.24      0.00     13.90      0.00      0.00     72.86
02:29:50 PM     all     13.26      0.00     13.89      0.00      0.00     72.85
02:29:53 PM     all     13.27      0.00     13.87      0.00      0.00     72.86
02:29:56 PM     all     13.24      0.00     13.94      0.00      0.00     72.82
02:29:59 PM     all     13.22      0.00     13.92      0.00      0.00     72.86
02:30:02 PM     all     13.65      0.00     14.30      0.00      0.00     72.06
02:30:05 PM     all     13.24      0.00     13.92      0.00      0.00     72.85
Average:        all     13.27      0.00     13.94      0.00      0.00     72.79

查看 I/O 和传输率统计数据

[root@localhost hhd]# sar -b 3  10
Linux 3.10.0-1127.19.1.rt56.1116.el7.x86_64 (localhost.localdomain) 	06/21/2022 	_x86_64_	(14 CPU)

02:33:05 PM       tps      rtps      wtps   bread/s   bwrtn/s
02:33:08 PM      0.67      0.00      0.67      0.00     10.67
02:33:11 PM      0.00      0.00      0.00      0.00      0.00
02:33:14 PM      0.00      0.00      0.00      0.00      0.00
02:33:17 PM      2.00      0.00      2.00      0.00     21.33
02:33:20 PM      0.00      0.00      0.00      0.00      0.00
02:33:23 PM      1.00      0.00      1.00      0.00     16.00
02:33:26 PM      2.33      0.00      2.33      0.00     32.00
02:33:29 PM      0.00      0.00      0.00      0.00      0.00
02:33:32 PM      1.00      0.00      1.00      0.00      8.00
02:33:35 PM      0.00      0.00      0.00      0.00      0.00
Average:         0.70      0.00      0.70      0.00      8.80

生成服务器所有数据

kSar 介绍

????????sar 和 sadf 提供了基于命令行界面的输出。这种输出可能会使新手用户/系统管理员感到无从下手。

????????因此,你需要使用 kSar,它是一个图形化显示你的 sar 数据的 Java 应用程序。它也允许你以 PDF/JPG/PNG/CSV 格式导出数据。你可以用三种方式去加载数据:本地文件、运行本地命令、以及通过 SSH 远程运行的命令。

????????如果你的Linux系统是可以安装图形界面的话,可以在该机上安装该工具,否则,建议在windows电脑上安装该工具

????????使用ksar的前提是该机安装了java,如果没安装,请自行安装。

安装

? ? ?kSar链接:

????????github链接

? ? ?java链接(windows):

? ? ??? jdk下载链接

? ? ?windows安装jdk参考

启动ksar

? ?java -jar ksar-5.2.4-b396_gf0680721-SNAPSHOT-all.jar

启动后欢迎界面:

主窗口:

三种加载数据方式:

使用 kSar 去生成 sar 图表

? ? ? ? ?sar直接生成过sa<xx>的文件,无法直接为ksar所用,要想生成可用的数据,我们需要导出sar为txt。

其中

?-A 表示导出所有数据,包括CPU、内存、IO、网络等等所有数据

LC_ALL=C sar -A  > /tmp/sar.IP.202XXXXX.data.txt

然后拷贝到ksar所在设备。

数据文件的其他操作

1、将多个日期的整合为一个

????????如果我们要查看指定时间间隔的数据。

ls -tr /var/log/sysstat/sa[0-9][0-9] | while read safile   ; do LC_TIME=en_UK.utf8 sar -r -f "$safile"  ;done  | sudo tee  "$(date +'%Y-%m-%d')"_"$(hostname -I)_"
ls -tr /var/log/sysstat/sa202[1-9][0-1][0-9][0-3][0-9] | while read safile   ; do LC_TIME=en_UK.utf8 sar -r -f "$safile"  ;done  | sudo tee  "$(date +'%Y-%m-%d')"_"$(hostname -I)_"

其中?

  • sa[0-9][0-9]表示?sa00至sa99所有文件
  • ?LC_TIME=en_UK.utf8意思是以24小时格式输出,没有它将会存在PM/AM

? ??

? ? ? ? 也可通过find 和grep找到相关文件

? ? ? ?例如:找到最近28天内的数据并整合为一个文件

ls -tr $(find -type f -mtime -28) | grep -E 'sa[0-9]{8}$' | while read safile   ; do LC_TIME=en_UK.utf8 sar -r -f "$safile"  ;done  | sudo tee  "$(date +'%Y-%m-%d')"_"$(hostname -I)_"

其中?

  • ls -tr $(find -type f -mtime -28) | grep -E 'sa[0-9]{8}$', 是查询最近28天内的所有文件,例如今天是2022年3月28日,那么将会查询sa20220228 至20220328的文件
  • find -mtime -n ?代表查询今天往前减n天(包含n天前)后所有的文件,

????????例如:今天日期为2022年3月28日,n为1,则查询2022年3月27日后创建(包含27日)的到当前时间的所有文件;find -mtime n 代表查询今天往前n+1天当天的所有文件,如上条件,则查询2022年3月26日当天的所有文件;find -mtime +n代表今天往前n+1天前的所有文件(不包含n+1天),如山条件,则查询2022年3月26前(不包含26日)之前日期的所有文件。

  • grep -E regex 是grep的延伸型正規表示法
    ?

????????经过上面的步骤,会生成一个‘日期_IP_‘格式的文件,将改文件传输到本地,后面可以放到本地电脑的软件中生成图形样式

导入数据

????????点击 “Data” > “Load from a file” > 从 /tmp/ 中选择 sar.data.txt > 点击 “Open” 按钮。

cpu0的示例数据

  1. 若 %iowait 的值过高,表示硬盘存在I/O瓶颈
  2. 若 %idle 的值高但系统响应慢时,有可能是 CPU 等待分配内存,此时应加大内存容量
  3. 若 %idle 的值持续低于 10,则系统的 CPU 处理能力相对较低,表明系统中最需要解决的资源是 CPU。

了解 kSar 图像和 sar 数据

????????强烈建议你去阅读 sar 和 sadf 命令的 man 页面。

$ man sar
$ man sadf

?

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-06-25 18:26:09  更:2022-06-25 18:29:16 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/30 2:13:26-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码