linux命令sar linux命令sar详解

sar 命令sar(System Activity Reporter系统活动情况报告)是目前 Linux 上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告,包括:文件的读写情况、系统调用的使用情况、磁盘I/O、CPU效率、内存使用状况、进程活动及IPC有关的活动等 。本文主要以CentOS 6.3 x64系统为例,介绍sar命令 。
sar命令查看历史数据前言
有的时候linux命令sar , linux命令sar我们要通过对系统的cpu负载等性能数值的查看,来判排查系统产生某种故障(经常死机或者运行速度突然变慢)的原因 。但是 , 简单的top,uptime,w等命令只可以查看当前的负载,而无法查看过去的某一时间段的cpu的负载情况 。
下面就介绍一个用于性能分析的命令,其可以用于查看过去的某一时间段的cpu的负载情况(系统性能) 。
查看某一时间段的cpu使用情况,请直接跳到第七节 。
一、sar概念
sysstat是Linux 系统中的常用工具包,而sar 是 Linux中sysstat工具包中的用于监控Linux系统性能的工具之一 。
sysstat 工具包中包含两种类型的工具linux命令sar:即时查看工具(iostat、mpstat、sar);累计统计工具(sar)
因此sar命令,又叫做系统活动情况报告 。不仅可以实时查看服务器的性能,还可以做累计统计 。
二、sar可监控的范围
文件的读写情况
系统调用的使用情况
磁盘I/O使用情况
CPU的使用统计
内存使用状况
进程活动
IPC有关的活动
三、sar命令使用环境
sar命令使用格式:
sar命令行选项(可选)间隔时间(可选)次数(可选)
常用来判断一个系统瓶颈问题
查询CPU可用 sar -u 和 sar -q 等来查看查询内存可用 sar -B、sar -r 和 sar -W 等来查看查询io可用 sar -b、sar -u 和 sar -d 等来查看
四、sar命令累计统计的实现过程
系统会通过调用 /usr/lib64/sa/ 中的三个工具(sa1 sa2 sadc)来实现,周期地记录当时的系统性能的信息的功能 。
sa1 :收集并将每天的系统性能的信息写入一个二进制的文件中 , 它是sadc的前端程序
sa2 :收集每天的系统活跃的信息并写入总结性的文件中,其作为 sar的前端程序
sadc :收集系统的动态数据的数据并写入一个二进制的文件中,其作为 sar 工具的后端
五、sar的日志
sar是由有类似日志切割的功能的,它会依据/etc/cron.d/sysstat中的计划任务,将日志放入/var/log/sa/中
注:日志为二进制文件,不可使用more、less、vim工具查看 , 必须使用sar或sadf
可以根据需求修改该计划任务
如要查看某一时间段的服务器的性能的其中一个方法就是:使用sar命令,查看当天的日志文件
sar -f /var/log/sa/sa15
[root@lib64]#sar-f/var/log/sa/sa15Linux3.10.0-327.el7.x86_64(ops-node7)07/15/2018_x86_64_(24CPU)12:00:01AMCPU\user%nice%system%iowait%steal%idle12:10:01AMall1.350.000.850.120.0097.6712:20:01AMall1.320.000.860.110.0097.7112:30:02AMall1.370.000.870.110.0097.6512:40:01AMall1.320.000.910.110.0097.6612:50:01AMall1.350.000.890.110.0097.6501:00:01AMall1.360.000.870.110.0097.6601:10:01AMall1.360.000.850.110.0097.6801:20:01AMall1.350.000.890.100.0097.6601:30:01AMall1.320.000.890.110.0097.6801:40:01AMall1.290.000.950.110.0097.6501:50:01AMall1.350.000.880.120.0097.6402:00:01AMall1.340.000.880.110.0097.6802:10:01AMall1.330.000.900.110.0097.6502:20:01AMall1.360.000.870.120.0097.6502:30:01AMall1.350.000.850.120.0097.6802:40:01AMall1.410.000.920.120.0097.5602:50:01AMall1.570.000.950.130.0097.3503:00:01AMall4.210.000.810.160.0094.8103:10:01AMall2.500.000.870.130.0096.5003:20:01AMall1.370.000.870.120.0097.6503:30:01AMall1.360.000.950.130.0097.5603:40:01AMall1.480.000.970.240.0097.3003:50:01AMall1.350.010.910.130.0097.6004:00:01AMall1.390.000.950.190.0097.4704:10:01AMall1.360.000.990.130.0097.52
注意:
sar查看性能或其日志时,使用的12/24小时制;日志的切割是昨天晚上12点到今天12点为一天;默认只保留一个月的日志
六、sar命令参数及输出项详解
【1】格式
用法:sar选项时间间隔(可选)次数 (可选)
interval: 取样周期,单位是秒count:取样次数,默认值为1options:命令行选项
【2】常用选项
-A所有报告的总和-B输出内存页面的统计信息-b输出I/O和传送速率的统计信息-C输出进程统计信息及每秒创建的进程数-d输出每一个块设备的活动信息-H输出交换空间利用率信息-h输出帮助信息-p输出友好设备名字,以方便查看,常与-d和-n参数结合使用-q输出进程队列长度和系统平均负载状态统计信息-R输出内存页面的统计信息-r输出内存和交换空间的统计信息-S输出交换空间利用率信息-t读取 /var/log/sa/下的某日志的数据时显示其中记录的原始时间-u输出整体CPU使用情况的统计信息-V输出版本信息-v输出内核表状况统计信息(inode、文件和其linux命令sar他内核表的统计信息)-W输出系统交换的统计信息-w输出任务创建与系统转换统计信息-y输出终端设备的活动信息-----------I输出指定中断的统计信息 , 后方可加参数{...|SUM|ALL|XALL}...指定中断号SUM指定输出每秒接收到的中断总数ALL指定输出前16个中断XALL指定输出全部的中断信息-----------P输出指定的部分的CPU的统计信息,后方可加参数{cpu|ALL}cpu指定cpuALL输出单个和整体cpu的统计数据-----------n输出网络设备(网卡)状态统计信息 , 后方可加参数{DEV|EDEV|NFS|NFSD|SOCK|ALL}DEV输出网络设备的统计信息EDEV输出网络设备的错误统计信息NFS输出NFS客户端的活动统计信息NFSD输出NFS服务器的活动统计信息SOCK输出网络套接字的使用统计信息ALL输出所有类型的网络活动统计信息-----------f从文件中读取数据信息 。一般读取sar日志,也可读取-o选项生成的文件 , 后方要加文件名-o将sar的输出信息保存到文件中,后方要加文件名-i指定间隔时长,单位为秒-s指定输出统计数据的起始时间(格式为hh:mm:ss;例如01:00:00)-e指定输出统计数据的截至时间,通常与-S选项连用 。无数值时默认为18:00:00(格式为hh:mm:ss;例如09:00:00)
【3】输出项
1cpu的输出
sar -u
\usrCPU在用户模式下,执行进程的时间百分比 %niceCPU在用户模式下,用于nice操作 , 所占用CPU总时间的百分比 %systemCPU处在系统模式(内核态)下,执行进程的时间百分比 %iowaitCPU用于等待I/O操作完成(等待输入输出完成),占用CPU总时间的百分比 %steal管理程序为另一个虚拟进程提供服务而等待虚拟CPU的百分比%idleCPU空闲时间百分比
注意:
如果%iowait的值过高,表示硬盘存在I/O瓶颈 如果%idle值高,表示CPU较空闲如果%idle 的值高但系统响应慢时,有可能是 CPU 等待分配内存,此时应加大内存容量 如果%idle 的值持续低于10,则系统的 CPU 处理能力相对较低,表明系统中最需要解决的资源是 CPU
2I/O和传送速率输出
sar -b
tps每秒向磁盘设备请求数据的次数,包括读、写请求,其为rtps与wtps的和 。每一次IO下发后会先将多个请求合并为一个I/O磁盘请求 , 这里tps指请求合并后的请求计数rtps每秒向磁盘设备的读请求次数 wtps每秒向磁盘设备的写请求次数 bread/s每秒钟从物理设备读入的数据量,单位为 块/s bwrtn/s每秒钟向物理设备写入的数据量,单位为 块/s
3设备使用情况输出
sar -d
DEV磁盘设备,加上用参数-p可以打印出sda等磁盘设备名称;如不加参数-p,设备则显示为dev253-0等tps每秒向磁盘设备请求数据的次数 , 包括读、写请求,其为rtps与wtps的和 。每一次IO下发后会先将多个请求合并为一个I/O磁盘请求,这里tps指请求合并后的请求计数rd_sec/s每秒读扇区的次数wr_sec/s每秒写扇区的次数avgrq-sz平均每次设备I/O操作的数据大小(扇区)avgqu-sz磁盘请求队列的平均长度await从请求磁盘到系统处理完,每次请求的平均消耗时间,包括请求队列等待时间(单位是毫秒)svctm系统处理每次请求的平均时间,不包括在请求队列中消耗的时间\utilI/O请求占CPU的百分比
4网络设备统计信息输出
sar -n EDEV
IFACE网络设备名rxpck/s每秒接收的包数量txpck/s每秒传输的包数量rxbyt/s每秒接收的字节数(单位为byte)txbyt/s每秒传输的字节数(单位为byte)rxkB/s每秒收的数据量(单位为kB)txkB/s每秒发的数据量(单位为kB)rxcmp/s每秒接收压缩包的数量txcmp/s每秒传输压缩包的数量rxmcst/s每秒接收的多播(multicast)包的总数排查网络设备故障
5网络设备故障信息输出
EDEV |egrep ‘eth0|IFACE’ (本次指定了网卡etho0,可填入其他网卡)
IFACE网络设备名rxerr/s每秒接收的坏包数量txerr/s传输包时每秒发生错误的数量coll/s传输包时每秒发生冲突的数量rxdrop/s接收包时,每秒丢弃的包的数量(缺乏缓存导致)txdrop/s传输包时,每秒丢弃的包的数量(缺乏缓存导致)txcarr/s传输包时,每秒发生的传输错误的数量rxfram/s接收包时,每秒发生帧校验错误的数量rxfifo/s接收包时,每秒钟缓冲区溢出错误的数量txfifo/s传输包时,每秒钟缓冲区溢出错误的数量
6内存分页状态输出
sar -B
pgpgin/s每秒从磁盘空间或交换空间置换到内存的字节数(单位为KB)pgpgout/s每秒从内存置换到磁盘空间或交换空间的字节数(单位为KB)fault/s每秒钟系统产生的缺页数(主缺页加次缺页)majflt/s每秒钟产生的主缺页数pgfree/s每秒被放入空闲队列中的页个数pgscank/s每秒被kswapd扫描的页个数pgscand/s每秒直接被扫描的页个数pgsteal/s每秒钟从cache中被清除来满足内存需要的页个数%vmeff每秒清除的页占总扫描页的百分比
7进程队列长度和平均负载状态输出
sar -q
runq-sz运行队列的长度,等待运行的进程数量
plist-sz进程列表中进程和线程的数量
ldavg-1最后1分钟的系统平均负载
ldavg-5过去5分钟的系统平均负载
ldavg-15过去15分钟的系统平均负载
8内存和交换空间状态输出
sar -r
kbmemfree空闲的内存数量(单位为KB)kbmemused已使用的内存数量,不包含内核使用的内存(单位为KB)%memused已使用内存的百分数kbbuffers内核缓冲区buffer,使用的内存数量(单位为KB)kbcached内核高速缓存cache数据使用的内存数量(单位为KB)kbcommit保证当前系统所需要的内存,即为了确保不溢出而需要的内存(RAM swap)%commitkbcommit与所有内存总量的百分比
9系统交换活动信息输出
sar -W
pswpin/s每秒系统换入的交换页面数量
pswpout/s每秒系统换出的交换页面数量
七、sar使用实例-查看某一时间段的情况
1查看凌晨1点到3点的cpu
sar -s 01:00:00 -e 03:00:00
2查看凌晨1点到3点的系统的平均负载
若要看某时间段其他性能,加上对应选项
sar -s 01:00:00 -e 03:00:00 -q
3查看本月3号的cpu
注意:
该操作需要去查看sar的日志(第五节已经介绍一次)
默认只保存一个月的
sar查看性能或其日志时,注意自己的使用的是12还是24小时制
日志的切割是昨天晚上12点到今天12点为一天
cd/var/log/sa/sar -f sa03
linux常用的命令有哪些Linux运维人员必会的120个命令
来自《跟老男孩学Linux运维:核心系统命令实战》一书
前言
第1章 Linux命令行简介 / 1
1.1Linux命令行概述 / 1
1.2在Linux命令行下查看命令帮助 / 4
1.3Linux shutdown reboot halt / 9
关机:
shutdown -h now
halt
init 0
第2章 文件和目录操作命令 / 13
2.1pwd:显示当前所在的位置 / 13
2.2cd:切换目录 / 16
2.3tree:以树形结构显示目录下的内容 / 18
2.4mkdir:创建目录 / 22
2.5touch:创建空文件或改变文件的时间戳属性 / 27
2.6ls:显示目录下的内容及相关属性信息 / 30
2.7cp:复制文件或目录 / 39
2.8mv:移动或重命名文件 / 42
2.9rm:删除文件或目录 / 45
2.10rmdir:删除空目录 / 48
2.11ln:硬链接与软链接 / 49
2.12readlink:查看符号链接文件的内容 / 54
2.13find:查找目录下的文件 / 55
2.14xargs:将标准输入转换成命令行参数 / 68
2.15rename:重命名文件 / 71
2.16basename:显示文件名或目录名 / 72
2.17dirname:显示文件或目录路径 / 72
2.18chattr:改变文件的扩展属性 / 73
2.19lsattr:查看文件扩展属性 / 75
2.20file:显示文件的类型 / 76
2.21md5sum:计算和校验文件的MD5值 / 77
2.22chown:改变文件或目录的用户和用户组 / 80
2.23chmod:改变文件或目录权限 / 81
2.24chgrp:更改文件用户组 / 85
2.25umask:显示或设置权限掩码 / 86
2.26老男孩从新手成为技术大牛的心法 / 90
第3章 文件过滤及内容编辑处理命令 / 91
3.1cat:合并文件或查看文件内容 / 91
3.2tac:反向显示文件内容 / 103
3.3more:分页显示文件内容 / 104
3.4less:分页显示文件内容 / 107
3.5head:显示文件内容头部 / 109
3.6tail:显示文件内容尾部 / 111
3.7tailf:跟踪日志文件 / 114
3.8cut:从文本中提取一段文字并输出 / 115
3.9split:分割文件 / 117
3.10paste:合并文件 / 118
3.11sort:文本排序 / 123
3.12join:按两个文件的相同字段合并 / 127
3.13uniq:去除重复行 / 129
3.14wc:统计文件的行数、单词数或字节数 / 131
3.15iconv:转换文件的编码格式 / 133
3.16dos2unix:将DOS格式文件转换成UNIX格式 / 134
3.17diff:比较两个文件的不同 / 135
3.18vimdiff:可视化比较工具 / 138
3.19rev:反向输出文件内容 / 139
3.20tr:替换或删除字符 / 140
3.21od:按不同进制显示文件 / 143
【linux命令sar linux命令sar详解】3.22tee:多重定向 / 145
3.23vi/vim:纯文本编辑器 / 147
3.24老男孩逆袭思想:做Linux运维的多个好处 / 152
第4章 文本处理三剑客 / 153
4.1grep:文本过滤工具 / 153
4.2sed:字符流编辑器 / 159
4.3awk基础入门 / 165
第5章 Linux信息显示与搜索文件命令 / 176
5.1uname:显示系统信息 / 176
5.2hostname:显示或设置系统的主机名 / 178
5.3dmesg:系统启动异常诊断 / 179
5.4stat:显示文件或文件系统状态 / 181
5.5du:统计磁盘空间使用情况 / 183
5.6date:显示与设置系统时间 / 186
5.7echo:显示一行文本 / 190
5.8watch:监视命令执行情况 / 193
5.9which:显示命令的全路径 / 195
5.10whereis:显示命令及其相关文件全路径 / 196
5.11locate:快速定位文件路径 / 197
5.12updatedb:更新mlocate数据库 / 199
5.13老男孩逆袭思想:新手在工作中如何问问题不会被鄙视 / 200
第6章 文件备份与压缩命令 / 201
6.1tar:打包备份 / 201
6.2gzip:压缩或解压文件 / 208
6.3zip:打包和压缩文件 / 211
6.4unzip:解压zip文件 / 212
6.5scp:远程文件复制 / 214
6.6rsync:文件同步工具 / 216
6.7老男孩逆袭思想:新手如何高效地提问 / 220
第7章 Linux用户管理及用户信息查询命令 / 222
7.1 useradd:创建用户 / 222
7.2usermod:修改用户信息 / 227
7.3userdel:删除用户 / 229
7.4groupadd:创建新的用户组 / 230
7.5groupdel:删除用户组 / 231
7.6passwd:修改用户密码 / 232
7.7chage:修改用户密码有效期 / 237
7.8chpasswd:批量更新用户密码 / 238
7.9su:切换用户 / 240
7.10visudo:编辑sudoers文件 / 242
7.11sudo:以另一个用户身份执行命令 / 244
7.12id:显示用户与用户组的信息 / 248
7.13w:显示已登录用户信息 / 249
7.14who:显示已登录用户信息 / 250
7.15users:显示已登录用户 / 252
7.16whoami:显示当前登录的用户名 / 253
7.17last:显示用户登录列表 / 253
7.18lastb:显示用户登录失败的记录 / 254
7.19lastlog:显示所有用户的最近登录记录 / 255
第8章 Linux磁盘与文件系统管理命令 / 257
8.1fdisk:磁盘分区工具 / 257
8.2partprobe:更新内核的硬盘分区表信息 / 265
8.3tune2fs:调整ext2/ext3/ext4文件系统参数 / 266
8.4parted:磁盘分区工具 / 268
8.5mkfs:创建Linux文件系统 / 272
8.6dumpe2fs:导出ext2/ext3/ext4文件系统信息 / 274
8.7resize2fs:调整ext2/ext3/ext4文件系统大小 / 275
8.8fsck:检查并修复Linux文件系统 / 278
8.9dd:转换或复制文件 / 281
8.10mount:挂载文件系统 / 284
8.11umount:卸载文件系统 / 288
8.12df:报告文件系统磁盘空间的使用情况 / 289
8.13mkswap:创建交换分区 / 293
8.14swapon:激活交换分区 / 294
8.15swapoff:关闭交换分区 / 295
8.16sync:刷新文件系统缓冲区 / 296
第9章 Linux进程管理命令 / 298
9.1ps:查看进程 / 298
9.2pstree:显示进程状态树 / 305
9.3pgrep:查找匹配条件的进程 / 306
9.4kill:终止进程 / 307
9.5killall:通过进程名终止进程 / 310
9.6pkill:通过进程名终止进程 / 311
9.7top:实时显示系统中各个进程的资源占用状况 / 313
9.8nice:调整程序运行时的优先级 / 320
9.9renice:调整运行中的进程的优先级 / 323
9.10nohup:用户退出系统进程继续工作 / 324
9.11strace:跟踪进程的系统调用 / 325
9.12ltrace:跟踪进程调用库函数 / 332
9.13runlevel:输出当前运行级别 / 334
9.14init:初始化Linux进程 / 335
9.15service:管理系统服务 / 335
第10章 Linux网络管理命令 / 338
10.1ifconfig:配置或显示网络接口信息 / 338
10.2ifup:激活网络接口 / 343
ifup eth0
10.3ifdown:禁用网络接口 / 343
ifdown eth0
service network restart(/etc/init.d/network restart) 激活整个网络,所有网卡 。
10.4route:显示或管理路由表 / 344
10.5arp:管理系统的arp缓存 / 350
10.6ip:网络配置工具 / 351
10.7netstat:查看网络状态 / 358
10.8ss:查看网络状态 / 362
10.9ping:测试主机之间网络的连通性 / 363
10.10traceroute:追踪数据传输路由状况 / 366
10.11arping:发送arp请求 / 367
10.12telnet:远程登录主机 / 369
10.13nc:多功能网络工具 / 370
10.14ssh:安全地远程登录主机 / 373
10.15wget:命令行下载工具 / 376
10.16mailq:显示邮件传输队列 / 379
10.17mail:发送和接收邮件 / 381
10.18nslookup:域名查询工具 / 386
10.19dig:域名查询工具 / 389
10.20host:域名查询工具 / 393
10.21nmap:网络探测工具和安全/端口扫描器 / 394
10.22tcpdump:监听网络流量 / 398
第11章 Linux系统管理命令 / 407
11.1lsof:查看进程打开的文件 / 407
11.2uptime:显示系统的运行时间及负载 / 411
11.3free:查看系统内存信息 / 411
11.4iftop:动态显示网络接口流量信息 / 413
11.5vmstat:虚拟内存统计 / 415
11.6mpstat:CPU信息统计 / 419
11.7iostat:I/O信息统计 / 420
11.8iotop:动态显示磁盘I/O统计信息 / 423
11.9sar:收集系统信息 / 425
11.10chkconfig:管理开机服务 / 430
11.11ntsysv:管理开机服务 / 433
11.12 setup:系统管理工具 / 434
11.13ethtool:查询网卡参数 / 436
11.14mii-tool:管理网络接口的状态 / 437
11.19rpm:RPM包管理器 / 443
11.20yum:自动化RPM包管理工具 / 446
top命令
第12章 Linux系统常用内置命令 / 450
12.1Linux内置命令概述 / 450
12.2Linux内置命令简介 / 450
12.3Linux常用内置命令实例 / 452
【sar】Linux上sar的安装和使用sysstat是Linux系统中的常用工具包 。它的主要用途是观察服务负载,比如CPU和内存的占用率、网络的使用率以及磁盘写入和读取速度等 。
在使用 Linux系统时,常常会遇到各种各样的问题,比如系统容易死机或者运行速度突然变慢,这时我们常常猜测:是否硬盘空间不足,是否内存不足 , 是否 I/O出现瓶颈,还是系统的核心参数出了问题?这时,我们应该考虑使用 sar工具对系统做一个全面了解,分析系统的负载状况 。
sar(System ActivityReporter)是系统活动情况报告的缩写 。sar工具将对系统当前的状态进行取样,然后通过计算数据和比例来表达系统的当前运行状态 。
它的特点是可以连续对系统取样,获得大量的取样数据;取样数据和分析的结果都可以存入文件,所需的负载很小 。sar是目前 Linux上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告,包括:文件的读写情况、系统调用的使用情况、磁盘I/O、CPU效率、内存使用状况、进程活动及IPC有关的活动等 。
为了提供不同的信息,sar提供了丰富的选项、因此使用较为复杂 。
#hping3 -S -p 80 -i u100192.168.1.106
#sshroot@192.168.1.106
软终端不高导致系统卡顿,其实不是系统卡顿 , 而是由于使用ssh远程登录,在这期间hping3大量发包 , 导致其他网络连接延迟,ssh通过网络连接,使ssh客户端感觉卡顿现象 。
ssh的tty其实也是通过网络传输的,既然是经过网卡 , 当然会卡,这就是网络攻击所带来的结果 。
1. 找系统类的错误,dmesg | tail
2. 直接的网络错误 sar -n ETCP 1 或者 sar -n EDEV 1
3.查看网络状态,netstat -s 或者 watch -d netstat -s
4.网络状态的统计 ss -ant | awk '{s[$1]} END {for(k in s) print k,s[k]}'
Linux系列之SAR命令使用详解
sar命令使用详解
SAR命令详细用法
sar , Linux 上最为全面的系统性能分析工具之一
Linux sar命令有什么用sar命令的用法很多,有时判断一个问题,需要几个sar命令结合起来使用,比如,怀疑
CPU存在瓶颈,可用sar
-u
和sar
-q来看 , 怀疑I/O存在瓶颈,可用sar
-b、sar
-u和
sar-d来看
关于linux命令sar和linux命令sar详解的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息 , 记得收藏关注本站 。

    推荐阅读