使用sysstat(sar命令)对Linux性能进行测量的笔记(CentOS7、CentOS8)
首先
sysstat是一种用于分析Linux服务器负载的监控工具,可以用来调查CPU负载、磁盘I/O使用率、内存使用情况和网络设备状态。
环境
-
- 【CentOS7】
-
- CentOS Linux release 7.8.2003
- sysstat バージョン 10.1.5
[[root@CENTOS7 ~]# cat /etc/redhat-release
CentOS Linux release 7.8.2003 (Core)
[root@CENTOS7 ~]# sar -V
sysstat バージョン 10.1.5
(C) Sebastien Godard (sysstat <at> orange.fr)
[root@CENTOS7 ~]#
请用中文进行释义:
以下是一种选择:
请用中文进行释义:
-
- 【CentOS8】
-
- CentOS Linux release 8.1.1911
- sysstat バージョン 11.7.3
[root@centos8 ~]# cat /etc/redhat-release
CentOS Linux release 8.1.1911 (Core)
[root@centos8 ~]# sar -V
sysstat バージョン 11.7.3
(C) Sebastien Godard (sysstat <at> orange.fr)
[root@centos8 ~]#
1. 安装sysstat
yum install -y sysstat
2. 设置文件的位置
在CentOS7中,启动sa1命令和sa2命令是由corn进行配置的,而在CentOS8中是由systemd的timer进行配置的。
2.1. CentOS7
2.1. 红帽企业版Linux7
在CentOS7(sysstat版本10.1.5)上,sysstat的配置文件有以下两个文件。
-
- /etc/cron.d/sysstat
- /etc/sysconfig/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
使用sa1命令以10分钟为单位将资源信息保存到“/var/log/sa/saXX”中
使用sa2命令在23时53分将保存的信息格式化为报告形式,并保存到“/var/log/sa/sarXX”中
※其中XX代表日期
※如果更改了cron设置,请使用以下命令使其生效。
systemctl restart crond
请用中文进行重述,只需要一个选项:
I want to go to the supermarket to buy some groceries.
# sysstat-10.1.5 configuration file.
# How long to keep log files (in days).
# If value is greater than 28, then log files are kept in
# multiple directories, one for each month.
HISTORY=28
# Compress (using gzip or bzip2) sa and sar files older than (in days):
COMPRESSAFTER=31
# Parameters for the system activity data collector (see sadc manual page)
# which are used for the generation of log files.
SADC_OPTIONS="-S DISK"
# Compression program to use.
ZIP="bzip2"
2.2. CentOS8
2.2. CentOS8的版本
CentOS8(sysstat版本11.7.3)中sysstat的配置文件有以下6个文件。
-
- /usr/lib/systemd/system/sysstat.service
-
- /usr/lib/systemd/system/sysstat-collect.service
-
- /usr/lib/systemd/system/sysstat-collect.timer
-
- /usr/lib/systemd/system/sysstat-summary.service
-
- /usr/lib/systemd/system/sysstat-summary.timer
- /etc/sysconfig/sysstat
# /usr/lib/systemd/system/sysstat.service
# (C) 2012 Peter Schiffer (pschiffe <at> redhat.com)
#
# sysstat-11.7.3 systemd unit file:
# Insert a dummy record in current daily data file.
# This indicates that the counters have restarted from 0.
[Unit]
Description=Resets System Activity Logs
[Service]
Type=oneshot
RemainAfterExit=yes
User=root
ExecStart=/usr/lib64/sa/sa1 --boot
[Install]
WantedBy=multi-user.target
Also=sysstat-collect.timer
Also=sysstat-summary.timer
请使用汉语母语重新表达以下内容,只需提供一种选项:
# /usr/lib/systemd/system/sysstat-collect.service
# (C) 2014 Tomasz Torcz <tomek@pipebreaker.pl>
#
# sysstat-11.7.3 systemd unit file:
# Collects system activity data
# Activated by sysstat-collect.timer unit
[Unit]
Description=system activity accounting tool
Documentation=man:sa1(8)
After=sysstat.service
[Service]
Type=oneshot
User=root
ExecStart=/usr/lib64/sa/sa1 1 1
请用中文将以下句子改写成本地化的表达方式:
“Can you please turn off the lights before leaving?”
# /usr/lib/systemd/system/sysstat-collect.timer
# (C) 2014 Tomasz Torcz <tomek@pipebreaker.pl>
#
# sysstat-11.7.3 systemd unit file:
# Activates activity collector every 10 minutes
[Unit]
Description=Run system activity accounting tool every 10 minutes
[Timer]
OnCalendar=*:00/10
[Install]
WantedBy=sysstat.service
用sa1命令将资源信息按10分钟单位保存到”/var/log/sa/saXX”。
请用中文将以下句子进行同义改写:
请只提供一种选项:
# /usr/lib/systemd/system/sysstat-summary.service
# (C) 2014 Tomasz Torcz <tomek@pipebreaker.pl>
#
# sysstat-11.7.3 systemd unit file:
# Generates daily summary of process accounting
[Unit]
Description=Generate a daily summary of process accounting
Documentation=man:sa2(8)
After=sysstat.service
[Service]
Type=oneshot
User=root
ExecStart=/usr/lib64/sa/sa2 -A
请以中文来释义以下内容,只需要一个版本:
“The Great Wall of China is a historical landmark that stretches across the country, serving as a symbol of China’s rich history and cultural heritage. It was built as a defensive structure to protect the Chinese Empire from invasions and played a significant role in shaping China’s identity.”
# /usr/lib/systemd/system/sysstat-summary.timer
# (C) 2014 Tomasz Torcz <tomek@pipebreaker.pl>
#
# sysstat-11.7.3 systemd unit file:
# Triggers daily summary generation.
# Activates sysstat-summary.service
[Unit]
Description=Generate summary of yesterday's process accounting
[Timer]
OnCalendar=00:07:00
[Install]
WantedBy=sysstat.service
7点整,将通过sa2命令保存的信息整理为报告格式,并保存到”/var/log/sa/sarXX”。
*XX代表日期
*如果更改了systemd的timer设置,请使用以下命令使其生效。
systemctl daemon-reload
请将以下句子用中文进行本地化改写,只需要提供一种选项:
“Can you please help me with my homework?”
# sysstat-11.7.3 configuration file.
# How long to keep log files (in days).
# If value is greater than 28, then use sadc's option -D to prevent older
# data files from being overwritten. See sadc(8) and sysstat(5) manual pages.
HISTORY=28
# Compress (using xz, gzip or bzip2) sa and sar files older than (in days):
COMPRESSAFTER=31
# Parameters for the system activity data collector (see sadc manual page)
# which are used for the generation of log files.
SADC_OPTIONS=" -S DISK"
# Directory where sa and sar files are saved. The directory must exist.
SA_DIR=/var/log/sa
# Compression program to use.
ZIP="xz"
# By default sa2 script generates yesterday's summary, since the cron job
# usually runs right after midnight. If you want sa2 to generate the summary
# of the same day (for example when cron job runs at 23:53) set this variable.
#YESTERDAY=no
# By default sa2 script generates reports files (the so called sarDD files).
# Set this variable to false to disable reports generation.
#REPORTS=false
3. 日志文件的位置
日志文件(资源信息)存储在var/log/sa目录下。
“saXX”文件是定期获取的资源信息保存为二进制文件,”sarXX”是基于”saXX”的信息生成的文本文件。
*XX表示日期。
[root@CENTOS7 ~]# ls /var/log/sa
sa19 sa20 sa21 sar19 sar20
[root@CENTOS7 ~]#
4. 查看sa文件(通过sar命令)
要浏览sa文件并将其转换为文本文件进行保存,可以使用以下命令:
sar -A -f 【sa文件(二进制文件)】
sar -A -f 【sa文件(二进制文件)】 > 【输出文件】
※-A表示显示所有信息。还可以进行以下指定。
[root@CENTOS7 ~]# sar -A -f /var/log/sa/sa19 > /tmp/sar19.txt
[root@CENTOS7 ~]#
对于CentOS7(sysstat版本10.1.5),您也可以使用KSar(可以从「ksar项目日本语顶页 – OSDN」下载)来查看图表。
在那时候,您可以使用以下命令将文件导出。
env LANG=C sar -A -f 【sa文件(二进制)】 > 【输出文件】
[root@CENTOS7 ~]# env LANG=C sar -A -f /var/log/sa/sa19 > /tmp/sar19_lang_c.txt
[root@CENTOS7 ~]#
5. 使用sadf命令将sa文件以TSV格式输出。
如果要用sar命令进行浏览和文件输出,需要以空格作为分隔符。如果想要以TSV格式输出,则可以使用sadf命令。
sadf -T -p — -A 【.sa文件(二进制)】 > 【输出文件】
-T:時刻をローカル時刻で出力する
-p:TSV形式で出力する
–:これ以降にsarコマンド用のオプションを渡せるようにする
-A:すべての情報を出力
[root@CENTOS7 ~]# sadf -T -p -- -A /var/log/sa/sa19 > /tmp/sadf19.txt
[root@CENTOS7 ~]#
sadf命令还可以通过选项输出JSON格式(-j)或XML格式(-x),而不仅限于TSV格式。
另外,在CentOS8(sysstat版本为11.7.3)的情况下,可以使用-g选项以SVG格式输出图表。SVG格式的图表可以在浏览器中查看。
sadf -T -g — -A 【sa file (binary)】 > 【output file (in SVG format)】
悲伤 -T -g — -A【sa文件(二进制)】>【输出文件(SVG格式)】
[root@centos8 ~]# sadf -T -g -- -A /var/log/sa/sa19 > /tmp/sadf19.svg
[root@centos8 ~]#

6. 使用命令记录日志
除了cron和systemd的定时器设置之外,还可以使用命令来获取类似sa文件的资源信息。
在中文中,只需要一个选项来转述以下命令:
sar -o datafile interval count > /dev/null 2>&1 &
sar -o datafile 每隔 interval 秒记录一次数据,记录 count 次,将输出重定向到 /dev/null,并且将错误信息也重定向到 /dev/null,然后在后台运行。
-
- interval:間隔(秒)
- count:回数
如果想要以1秒的间隔获取所有资源信息,请执行以下命令:
sar -o /tmp/sa.out 1 > /dev/null 2>&1 &
[root@centos8 ~]# sar -o /tmp/sa.out 1 > /dev/null 2>&1 &
[1] 2619
[root@centos8 ~]#
获取资源信息后,结束任务。
[root@centos8 ~]# jobs
[1]+ 実行中 sar -o /tmp/sa.out 1 > /dev/null 2>&1 &
[root@centos8 ~]# kill %1
[root@centos8 ~]#
与常规的sa文件一样,可以使用sar命令或sdaf命令进行查看和文件输出。
[root@centos8 ~]# sar -A -f /tmp/sa.out > /tmp/sar.txt
[root@centos8 ~]# env LANG=C sar -A -f /tmp/sa.out > /tmp/sar_lang_c.txt
[root@centos8 ~]# sadf -T -p -- -A /tmp/sa.out > /tmp/sadf19.txt
[root@centos8 ~]# sadf -T -g -- -A /tmp/sa.out > /tmp/sadf19.svg
[root@centos8 ~]#