sysstat 是 Linux 系统中的常用工具包。它的主要用途是观察服务负载,比如CPU和内存的占用率、网络的使用率以及磁盘写入和读取速度等。
sysstat 工具包中包含两类工具:
-
即时查看工具:iostat、mpstat、sar
-
累计统计工具:sar
也就是说,sar 具有这两种功能。因此,sar 是 sysstat 中的核心工具。
为了实现 sar 的累计统计,系统必须周期地记录当时的信息,这是通过调用 /usr/lib/sa/ 中的三个工具实现的:
-
sa1 :收集并存储每天系统动态信息到一个二进制的文件中,用作 sadc 的前端程序
-
sa2 :收集每天的系统活跃信息写入总结性的报告,用作 sar 的前端程序
-
sadc :系统动态数据收集工具,收集的数据被写入一个二进制的文件中,它被用作 sar 工具的后端
在 CentOS 系统的默认设置中,以如下的方式使用这三个工具:
-
在守护进程 /etc/rc.d/init.d/sysstat 中使用
/usr/lib/sa/sadc -F -L -
命令创建当日记录文件,文件为
/var/log/sa/saDD
,其中 DD 为当天的日期。当系统重新启动后,会向文件
/var/log/sa/saDD
输出类似
11:37:16 AM LINUX RESTART
这样的行信息。
-
在 cron 任务 /etc/cron.d/sysstat 中每隔10分钟执行一次 /usr/lib/sa/sa1 1 1
命令,将信息写入文件 /var/log/sa/saDD
-
在 cron 任务 /etc/cron.d/sysstat 中每天 23:53 执行一次 /usr/lib/sa/sa2 -A
命令,将当天的汇总信息写入文件 /var/log/sa/saDD
您可以修改 /etc/cron.d/sysstat 以适合您的需要。
另外,文件 /var/log/sa/saDD
为二进制文件,不能使用 more、less 等文本工具查看,必须用 sar 或 sadf 命令查看。
1、输出CPU使用情况的统计信息
[root@cnetos5 ~]# sar
[root@cnetos5 ~]# sar -u
Linux 2.6.18-53.el5 (cnetos5) 01/22/2008
12:00:01 AM CPU %user %nice %system %iowait %steal %idle
12:10:01 AM all 0.02 0.00 0.14 0.01 0.00 99.84
12:20:01 AM all 0.02 0.00 0.12 0.01 0.00 99.86
12:30:01 AM all 0.01 0.00 0.12 0.01 0.00 99.86
Average: all 0.03 0.00 0.13 0.01 0.00 99.84
输出项说明:
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。
2、显示I/O和传送速率的统计信息
[root@cnetos5 ~]# sar -b
Linux 2.6.18-53.el5 (cnetos5) 01/22/2008
12:00:01 AM tps rtps wtps bread/s bwrtn/s
12:10:01 AM 1.58 0.00 1.58 0.00 16.71
12:20:01 AM 1.09 0.00 1.09 0.00 10.85
12:30:01 AM 1.08 0.00 1.08 0.00 10.74
Average: 1.24 0.00 1.24 0.00 12.70
输出项说明:
tps |
每秒钟物理设备的 I/O 传输总量 |
rtps |
每秒钟从物理设备读入的数据总量 |
wtps |
每秒钟向物理设备写入的数据总量 |
bread/s |
每秒钟从物理设备读入的数据量,单位为 块/s |
bwrtn/s |
每秒钟向物理设备写入的数据量,单位为 块/s |
3、输出内存页面的统计信息
[root@cnetos5 ~]# sar -B
Linux 2.6.18-53.el5 (cnetos5) 01/22/2008
12:00:01 AM pgpgin/s pgpgout/s fault/s majflt/s
12:10:01 AM 0.00 4.17 9.74 0.00
12:20:01 AM 0.00 2.71 2.24 0.00
12:30:01 AM 0.00 2.69 2.25 0.00
Average: 0.00 3.17 4.07 0.00
输出项说明:
pgpgin/s |
每秒钟从磁盘读入的系统页面的 KB 总数 |
pgpgout/s |
每秒钟向磁盘写出的系统页面的 KB 总数 |
fault/s |
系统每秒产生的页面失效(major + minor)数量 |
majflt/s |
系统每秒产生的页面失效(major)数量 |
4、输出每秒创建的进程数的进程统计信息
[root@cnetos5 ~]# sar -c
Linux 2.6.18-53.el5 (cnetos5) 01/22/2008
12:00:01 AM proc/s
12:10:01 AM 0.05
12:20:01 AM 0.03
12:30:01 AM 0.03
Average: 0.03
输出项说明:
5、输出网络设备状态的统计信息
[root@cnetos5 ~]# sar -n DEV |grep eth0
12:00:01 AM IFACE rxpck/s txpck/s rxbyt/s txbyt/s rxcmp/s txcmp/s rxmcst/s
12:10:01 AM eth0 0.59 0.92 41.57 893.98 0.00 0.00 0.00
12:20:01 AM eth0 0.55 0.88 37.50 859.56 0.00 0.00 0.00
12:30:01 AM eth0 0.55 0.86 38.17 871.98 0.00 0.00 0.00
Average: eth0 0.29 0.42 21.05 379.29 0.00 0.00 0.00
输出项说明:
IFACE |
网络设备名 |
rxpck/s |
每秒接收的包总数 |
txpck/s |
每秒传输的包总数 |
rxbyt/s |
每秒接收的字节(byte)总数 |
txbyt/s |
每秒传输的字节(byte)总数 |
rxcmp/s |
每秒接收压缩包的总数 |
txcmp/s |
每秒传输压缩包的总数 |
rxmcst/s |
每秒接收的多播(multicast)包的总数 |
6、输出网络设备状态的统计信息(查看网络设备故障)
[root@cnetos5 ~]# sar -n EDEV |egrep 'eth0|IFACE'
12:00:01 AM IFACE rxerr/s txerr/s coll/s rxdrop/s txdrop/s txcarr/s rxfram/s rxfifo/s txfifo/s
12:10:01 AM eth0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
12:20:01 AM eth0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
12:30:01 AM eth0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: eth0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
输出项说明:
IFACE |
网络设备名 |
rxerr/s |
每秒接收的坏包总数 |
txerr/s |
传输包时每秒发生错误的总数 |
coll/s |
传输包时每秒发生冲突(collision)的总数 |
rxdrop/s |
接收包时,由于缺乏缓存,每秒丢弃(drop)包的数量 |
txdrop/s |
传输包时,由于缺乏缓存,每秒丢弃(drop)包的数量 |
txcarr/s |
传输包时,每秒发生的传输错误(carrier-error)的数量 |
rxfram/s |
接收包时,每秒发生帧校验错误(frame alignment error)的数量 |
rxfifo/s |
接收包时,每秒发生队列(FIFO)一出错误的数量 |
txfifo/s |
传输包时,每秒发生队列(FIFO)一出错误的数量 |
7、输出进程队列长度和平均负载状态统计信息
[root@cnetos5 ~]# sar -q
Linux 2.6.18-53.el5 (cnetos5) 01/22/2008
12:00:01 AM runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15
12:10:01 AM 0 85 0.02 0.01 0.00
12:20:01 AM 0 85 0.01 0.00 0.00
12:30:01 AM 0 85 0.03 0.01 0.00
Average: 0 85 0.01 0.00 0.00
输出项说明:
runq-sz |
运行队列的长度(等待运行的进程数) |
plist-sz |
进程列表中进程(processes)和线程(threads)的数量 |
ldavg-1 |
最后1分钟的系统平均负载(System load average) |
ldavg-5 |
过去5分钟的系统平均负载 |
ldavg-15 |
过去15分钟的系统平均负载 |
8、输出内存和交换空间的统计信息
[root@cnetos5 ~]# sar -r
Linux 2.6.18-53.el5 (cnetos5) 01/22/2008
12:00:01 AM kbmemfree kbmemused %memused kbbuffers kbcached kbswpfree kbswpused %swpused kbswpcad
12:10:01 AM 262068 253408 49.16 43884 156456 1048568 0 0.00 0
12:20:01 AM 261572 253904 49.26 44580 156448 1048568 0 0.00 0
12:30:01 AM 260704 254772 49.42 45124 156472 1048568 0 0.00 0
Average: 259551 255925 49.65 46453 156470 1048568 0 0.00 0
输出项说明:
kbmemfree |
可用的空闲内存数量,单位为 KB |
kbmemused |
已使用的内存数量(不包含内核使用的内存),单位为 KB |
%memused |
已使用内存的百分数 |
kbbuffers |
内核缓冲区(buffer)使用的内存数量,单位为 KB |
kbcached |
内核高速缓存(cache)数据使用的内存数量,单位为 KB |
kbswpfree |
可用的空闲交换空间数量,单位为 KB |
kbswpused |
已使用的交换空间数量,单位为 KB |
%swpused |
已使用交换空间的百分数 |
kbswpcad |
交换空间的高速缓存使用的内存数量 |
9、输出内存页面的统计信息
[root@cnetos5 ~]# sar -R
Linux 2.6.18-53.el5 (cnetos5) 01/22/2008
12:00:01 AM frmpg/s bufpg/s campg/s
12:10:01 AM -0.10 0.23 0.01
12:20:01 AM -0.21 0.29 -0.00
12:30:01 AM -0.36 0.23 0.01
Average: -0.21 0.22 0.00
输出项说明:
frmpg/s |
每秒系统中空闲的内存页面(memory page freed)数量 |
bufpg/s |
每秒系统中用作缓冲区(buffer)的附加内存页面(additional memory page)数量 |
campg/s |
每秒系统中高速缓存的附加内存页面(additional memory pages cached)数量 |
10、输出inode、文件和其他内核表的信息
[root@cnetos5 ~]# sar -v
Linux 2.6.18-53.el5 (cnetos5) 01/22/2008
12:00:01 AM dentunusd file-sz inode-sz super-sz %super-sz dquot-sz %dquot-sz rtsig-sz %rtsig-sz
12:10:01 AM 7253 576 5126 0 0.00 0 0.00 0 0.00
12:20:01 AM 7253 576 5126 0 0.00 0 0.00 0 0.00
12:30:01 AM 7253 576 5126 0 0.00 0 0.00 0 0.00
Average: 7253 589 5125 0 0.00 0 0.00 0 0.00
输出项说明:
dentunusd |
目录高速缓存中未被使用的条目数量 |
file-sz |
文件句柄(file handle)的使用数量 |
inode-sz |
i节点句柄(inode handle)的使用数量 |
super-sz |
由内核分配的超级块句柄(super block handle)数量 |
%super-sz |
已分配的超级块句柄占总超级块句柄的百分比 |
dquot-sz |
已经分配的磁盘限额条目数量 |
%dquot-sz |
分配的磁盘限额条目数量占总磁盘限额条目的百分比 |
rtsig-sz |
已排队的 RT 信号的数量 |
%rtsig-sz |
已排队的 RT 信号占总 RT 信号的百分比 |
11、输出系统交换活动信息
[root@cnetos5 ~]# sar -w
Linux 2.6.18-53.el5 (cnetos5) 01/22/2008
12:00:01 AM cswch/s
12:10:01 AM 44.74
12:20:01 AM 44.41
12:30:01 AM 44.41
Average: 44.50
输出项说明:
12、 输出系统交换的统计信息
[root@cnetos5 ~]# sar -W
Linux 2.6.18-53.el5 (cnetos5) 01/22/2008
12:00:01 AM pswpin/s pswpout/s
12:10:01 AM 0.00 0.00
12:20:01 AM 0.00 0.00
12:30:01 AM 0.00 0.00
Average: 0.00 0.00
输出项说明:
pswpin/s |
每秒系统换入的交换页面(swap page)数量 |
pswpout/s |
每秒系统换出的交换页面(swap page)数量 |
13、输出TTY设备的活动信息
[root@cnetos5 ~]# sar -y
Linux 2.6.18-53.el5 (cnetos5) 01/22/2008
12:00:01 AM TTY rcvin/s xmtin/s framerr/s prtyerr/s brk/s ovrun/s
12:10:01 AM 0 0.00 0.00 0.00 0.00 0.00 0.00
12:10:01 AM 1 0.00 0.00 0.00 0.00 0.00 0.00
12:20:01 AM 0 0.00 0.00 0.00 0.00 0.00 0.00
12:20:01 AM 1 0.00 0.00 0.00 0.00 0.00 0.00
12:30:01 AM 0 0.00 0.00 0.00 0.00 0.00 0.00
12:30:01 AM 1 0.00 0.00 0.00 0.00 0.00 0.00
………………
Average: 0 0.00 0.00 0.00 0.00 0.00 0.00
Average: 1 0.00 0.00 0.00 0.00 0.00 0.00
输出项说明:
TTY |
TTY 串行设备号 |
rcvin/s |
每秒接收的中断数量 |
xmtin/s |
每秒传送的中断数量 |
framerr/s |
每秒发生的帧错误数(frame error)量 |
prtyerr/s |
每秒发生的奇偶校验错误(parity error)数量 |
brk/s |
每秒发生的暂停(break)数量 |
ovrun/s |
每秒发生的溢出错误(overrun error)数量 |
14、显示全面的累计统计信息
# sar -A
15、默认配置不提供的累计统计信息
[root@cnetos5 ~]# sar -d
Requested activities not available in file
[root@cnetos5 ~]# sar -x ALL
Requested activities not available in file
[root@cnetos5 ~]# sar -X ALL
Requested activities not available in file
-
默认情况下,为了防止统计数据文件 /var/log/sa/saDD 迅速增大,/usr/lib/sa/sadc 没有记录每个块设备的统计信息。
-
可以在 -d -x -X 参数后添加取样参数获得即时统计信息。
-
带有 -x -X 选项的 sar 命令从来不能记录到二进制统计数据文件 。
1、使用取样选项查看即时统计信息
例如:每30秒取样一次,连续取样5次
# sar -n DEV 30 5
# sar -u 30 5
2、输出和读取统计信息文件
例如:
# sar -u 30 5 -o sar-dump-001
# sar -u -f sar-dump-001
3、输出每一个块设备的活动信息
# sar -dp 5 2
Linux 2.6.18-53.el5 (cnetos5) 01/22/2008
07:12:11 AM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
07:12:16 AM sda 0.40 0.00 17.56 44.00 0.00 1.00 1.00 0.04
07:12:16 AM sdb 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
07:12:16 AM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
07:12:21 AM sda 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
07:12:21 AM sdb 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
Average: sda 0.20 0.00 8.78 44.00 0.00 1.00 1.00 0.02
Average: sdb 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
输出项说明:
DEV |
正在监视的块设备 |
tps |
每秒钟物理设备的 I/O 传输总量 |
rd_sec/s |
每秒从设备读取的扇区(sector)数量 |
wr_sec/s |
每秒向设备写入的扇区(sector)数量 |
avgrq-sz |
发给设备请求的平均扇区数 |
avgqu-sz |
发给设备请求的平均队列长度 |
await |
设备 I/O 请求的平均等待时间(单位为毫秒) |
svctm |
设备 I/O 请求的平均服务时间(单位为毫秒) |
%util |
在 I/O 请求发送到设备期间,占用 CPU 时间的百分比。用于体现设备的带宽利用率。 |
-
avgqu-sz 的值较低时,设备的利用率较高。
-
当 %util 的值接近 100% 时,表示设备带宽已经占满。
要判断一个系统瓶颈问题,有时需要几个 sar 命令选项结合起来使用,例如:
-
怀疑CPU存在瓶颈,可用 sar -u
和 sar -q
deng 等来查看
-
怀疑内存存在瓶颈,可用 sar -B
、sar -r
和 sar -W
等来查看
-
怀疑I/O存在瓶颈,可用 sar -b
、sar -u
和 sar -d
等来查看
相关推荐
在安装Oracle数据库时,sysstat工具包是必不可少的。这是因为Oracle数据库对系统性能要求较高,需要监控系统资源的使用情况以确保稳定运行。通过sysstat,管理员可以实时查看数据库运行时的系统状态,及时发现和解决...
通过网上收集和对LINUX服务器性能的分析和体验,整理了几个比较实用,功能比较强大的性能测试工具供亲们下载,虽然网络上都对每个工具做了详细的功能介绍和文档说明,但分得很散,所以, 在此本人将各个比较实用的...
最后,`sysstat/sar` 是一个综合的系统性能分析工具套件,包含了多个子命令,如mpstat(多处理器状态报告)、iostat和vmstat。sar可以定期收集系统性能数据,并在后期进行分析,生成详细的报告,为性能调优提供依据...
在说明文档中,可能会详细解释如何使用这些工具,包括参数设置、输出解析以及如何根据监控结果进行问题定位。比如,当发现内存占用过高,可能需要查看是否有内存泄漏,或者哪个进程占用了大量内存。此外,文档还可能...
nmon(Nigel's Performance Monitor)是一款功能强大的命令行工具,专为Linux系统设计,用于实时监控和记录CPU、内存、磁盘I/O以及网络等关键资源的使用情况。这款工具简洁易用,且附带说明文档,使得初学者也能快速...
SysStat Charts是一款开源的命令行工具,专门设计用于处理SysStat工具所收集的系统性能数据,并将这些数据转化为直观的图表,便于用户分析和理解。SysStat是一个广泛使用的Linux系统监控工具,它提供了丰富的系统...
第一篇--v$sysstat 2007.5.23 按照OracleDocument中的描述,v$sysstat存储自数据库实例运行那刻起就开始累计全实例(instance-wide)的资源使用情况。 类似于v$sesstat,该视图存储下列的统计信息: 1>.事件发生...
以下是对其中四个工具的详细说明: 1. **Top - Linux进程监控** `top`命令是一个实时的性能监控工具,它显示了系统中正在运行的进程及其资源占用情况,如CPU利用率、内存使用、交换内存、缓冲区等。通过`top`,...
以下是一些主要工具的详细说明: 1. **top**:top命令提供了一个实时的系统状态视图,展示当前运行的进程以及它们的资源占用情况。通过不同的开关选项(如-m、-A、-f、-o、-r、-k、-z),你可以定制显示内容,如...
"Linux系统参数说明.pdf"可能详细介绍了这些参数的含义和调整方法,包括内存管理、调度策略、网络配置等方面的参数。"Linux性能测试工具.pdf"和"linux性能优化和分析.ppt"可能提供了更深入的工具使用教程和案例分析...
SysStats.rar中的"PCHome_download.html"文件可能是一个下载记录或说明文档,可能是用户在PCHome网站上下载"objeckdock"时的记录,或者是关于如何安装和使用的指导。这样的文件通常包含了软件的详细信息,包括系统...
工具说明dstat是一个用来替换 vmstat,iostat netstat,nfsstat和ifstat这些命令的工具, 是一个全能系统信息统计工具. 与sysstat相比
`iostat`是sysstat工具集的一部分,用于监测系统I/O性能。安装后,可以使用`iostat -dx`来获取磁盘的详细I/O统计信息。`r/s`和`w/s`分别表示每秒的读取和写入操作次数,`rKB/s`和`wKB/s`表示以千字节每秒为单位的...
一、Oracle数据字典说明 1. V$ACCESS视图 V$ACCESS视图提供了关于数据库对象的访问信息,具体包括: - SID:访问对象的会话号。 - OWNER:对象的拥有者。 - OBJECT:对象名。 - TYPE:对象的类型。 这些信息对于...
### CentOS 安装 Oracle12c 详细过程 #### 关键步骤详解 ##### 一、关闭防火墙与 SELinux 1. **关闭防火墙**: - 使用 `systemctl stop firewalld.service` 命令停止防火墙服务。 - 使用 `systemctl disable ...
### Oracle常用的系统表说明 Oracle 数据库通过一系列的系统表来存储有关数据库元数据的信息,这些表对于数据库管理员(DBA)来说极为重要,因为它们提供了数据库内部结构、配置及性能状态的关键信息。下面将详细...
以下是详细的安装步骤和关键知识点: 1. **下载与解压Oracle 11g**: 首先,你需要从Oracle官方网站下载适合Linux CentOS 5.2的Oracle 11g安装文件,通常是一个ZIP压缩包。确保在CentOS 5.2上安装时包含所有必要的...
`mpstat`(MultiProcessor Statistics)是`sysstat`包的一部分,它提供了更详细的多核/多CPU的统计信息。通过运行`mpstat [interval] [count]`,你可以周期性地查看CPU使用率,`interval`指每次更新的时间间隔,`...
以下是对这个安装过程的详细说明: 1. **系统准备**: - 首先,确保你的CentOS 4.7系统是最新的,通过`yum update`命令更新所有系统包。 - 确认系统满足Oracle 9i的硬件和内存要求,通常需要一定的内存空间(如...
以下是对Oracle 9i中一些常见动态性能表(视图)的详细说明: 1. **V$SESSION**:此视图提供了当前会话的信息,包括用户SID(系统标识符)、登录时间、当前SQL语句等。通过分析V$SESSION,可以找出资源占用高的会话...