- 浏览: 197252 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (391)
- java (18)
- python (3)
- ruby (4)
- linux (48)
- 网络 (9)
- 前端 (2)
- 社会、文化、哲学、人生、百态 (0)
- 工具 (10)
- 下载 (0)
- 常用地址 (0)
- tracert (0)
- mysql (8)
- 开源相关收藏 (1)
- 模块查看依懒 (1)
- watch使用 (1)
- Tcpdump (2)
- easy_install安装 (1)
- 构造redis批量删除脚本 (1)
- MYSQL 性能测试 (1)
- JAVA code encode utf-8 (1)
- linux nginx awk 实时 每妙 (1)
- mkpasswd (1)
- spring security oauth (1)
- jmap dump java memory Analyzer (1)
- JAVA DUMP (1)
- swap linux 过高 解决 (1)
- SWAP (1)
- jmap jstat jstack dump (1)
- java jconsole 的使用 (1)
- git 常用 (1)
- MYSQL 索引 动态 唯一 (1)
- TCP 三次握手 四次挥手 (1)
- linux date (1)
- 删除 空行 注释行 (1)
- maven3 yum linux install repository (1)
- linux git 搭建 (1)
- linux sar eth1 查看 流量 (1)
- sar (1)
- netstat ip 过滤 常用脚本 (1)
- Tcpdump 包分析网络连接过程 (1)
- net ipv4 tcp time wait tw recycle (0)
- /etc/sysctl.conf linux 网络 配置 (1)
- ss 网络连接查看 (比netstat 快很多,实时性牺牲) (1)
- MYSQL 关键字 (1)
- Linux 下多核CPU知识 (1)
- top (1)
- 令牌 证书 (1)
- mysql unix timestamp (1)
- 端口扫描 nc nmap (1)
- 204 http code 状态码 (1)
- ss -s ss -l (1)
- linux 常用 curl (1)
- linux sed 替换 换行 (1)
- centos yum install rpm install (1)
- spring-mvc源码解读 (1)
- 使用iftop查看实时的网络流量 (0)
- linux 命令 expect (1)
- HTTP (1)
- openssl ddif 加密 (1)
- iptables 详解 (1)
- python 虚拟化 VirtualEnv virtualenvwrapper (1)
- nginx (2)
- more less 实用技巧 (1)
- linux nginx (2)
- linux curl https ssl 证书 ca (1)
- openssl (1)
- php mysql linux (1)
- linux 虚拟机 虚拟 xen (0)
- linux 虚拟机 虚拟 xen kvm (1)
- linux perl 单行执行技巧 (1)
- mysql 查看库占用空间 表查用空间 (1)
- linux tcpdump (1)
- maven (1)
- sun.misc.Unsafe (1)
- OpenSSL生成证书 (1)
- http://blog.csdn.net/zzulp/article/details/8018751 (1)
- maven 本地 jar dependency (1)
- 计算JAVA代码行数最简单命令 sed (1)
- 常用的证书格式转换 rsa eg (1)
- 加密 解密 签名 (1)
- 分析jar包冲突 (1)
- 使用JMockit编写java单元测试 (1)
- Linux 技巧:让进程在后台可靠运行的几种方法 (1)
- 环境变量控制 (1)
- 5+ 个 tar 命令的用法,附示例 (1)
- scp自动输入密码 (1)
- ps axo pid (1)
- ppid (1)
- comm (1)
- pmem (1)
- lstart|grep mysql (0)
- lstart (1)
- etime|grep mysql (1)
- UML类图字少好理解 (1)
- HTTP经典文章 (1)
- git (1)
- Git常用命令 (1)
- LINUX 系统被攻击的分析过程 (1)
- NIO (1)
- LINUX 操作快捷键使用 (1)
- openSSL命令、PKI、CA、SSL证书原理 (1)
- shell (2)
- 转载 (1)
- mysqldump 可以直接dump->xml (1)
- VIM比较全面的文章 (1)
- eclipse regex 正则表达式 (1)
- synchronized (1)
- 锁 (1)
- java 正则表达式 regex (1)
- Reference Queue 引用 源码 (1)
- spring aop 源码 分析 (1)
- java @Cache @Transaction 注解 (1)
- spring aop (1)
- spring jdk proxy cglib 动态代理 性能比较 (1)
- spring proxy private public 代理限制 (1)
- spring transaction aop 事务 (1)
- spring autowire 注解注入 (1)
- 桥接 NAT NAT地址转换 内部网络 虚拟网络 (1)
- spring-web-mvc 源码解读 之 RequestMappingHandlerMapping (1)
- find atime mtime ctime -n n +n (1)
- android studio 快捷键初探 (1)
- android 源码阅读的计划 (1)
- 计算机网络学习-VLAN (1)
- sed 高级 合并行 (1)
- CAP 一致性 可用性 分布式容错性 (1)
- android lib so 库文件 (0)
- android lib so 库文件 移植 (1)
- android 不错的博文 (1)
- sourceinsight 源码 阅读 (1)
- Android Tab UI (1)
- 诗 (1)
- mysql 批处理 (0)
- netty 堆外内存 DirectByteBuffer (1)
- netty 并发 百万 推送 (1)
- Linux操作系统中内存buffer和cache的区别 (1)
- maven intellij target bytecode version (1)
- linux sleep()的实现原理 (1)
- android (2)
- javadoc 代码注释规范 (1)
- spring 自动注入bean auto (1)
- Photoshop CS6常用快捷键 (1)
- 股票 数据 机器 分析 (1)
- 批处理 (1)
- mysql -e (1)
- char (1)
- Unicode (1)
- 编码 (1)
- utf8 (1)
- utf-8 (1)
- utf16 (1)
- utf-16 (1)
- IntelliJ IDEA (1)
- ide (1)
- idea (1)
- intellij (1)
- 文件 (1)
- 目录 (1)
- 源代码 (1)
- CountDownLatch (1)
- CyclicBarrier (1)
- Semaphore (1)
- spring (1)
- linux 查看不同进制文件 (1)
- WebMvcConfigurationSupport (1)
- sdkman工具的使用 (1)
- http header (1)
- LINUX系统优化 (1)
最新评论
-
gelongmei:
威武我大酒神
shell脚本不换行刷新数据
oracle磁盘linuxbuffersystemcache
前面已经介绍了 vmstat和top命令的解析及使用,下面我们来学习一个更重要的命令sar
sar命令可以通过参数单独查看系统某个局部的使用情况
sar 命令行的常用格式:
sar [options] [-A] [-o file] t [n]
在命令行中,n 和t 两个参数组合起来定义采样间隔和次数,t为采样间隔,是必须有的参数,n为采样次数,是可选的,默认值是1,-o file表示将命令结果以二进制格式存放在文件中,
file 在此处不是关键字,是文件名。options 为命令行选项,sar命令的选项很多,下面只列出常用选项:
-A:所有报告的总和。
-u:CPU利用率
-v:进程、I节点、文件和锁表状态。
-d:硬盘使用报告。
-r:没有使用的内存页面和硬盘块。
-g:串口I/O的情况。
-b:缓冲区使用情况。
-a:文件读写情况。
-c:系统调用情况。
-R:进程的活动情况。
-y:终端设备活动情况。
-w:系统交换活动。
-n: 记录网络使用情况
默认监控: sar 5 5 // CPU和IOWAIT统计状态
(1) sar -b 5 5 // IO传送速率
(2) sar -B 5 5 // 页交换速率
(3) sar -c 5 5 // 进程创建的速率
(4) sar -d 5 5 // 块设备的活跃信息
(5) sar -n DEV 5 5 // 网路设备的状态信息
(6) sar -n SOCK 5 5 // SOCK的使用情况
(7) sar -n ALL 5 5 // 所有的网络状态信息
(8) sar -P ALL 5 5 // 每颗CPU的使用状态信息和IOWAIT统计状态
(9) sar -q 5 5 // 队列的长度(等待运行的进程数)和负载的状态
(10) sar -r 5 5 // 内存和swap空间使用情况
(11) sar -R 5 5 // 内存的统计信息(内存页的分配和释放、系统每秒作为BUFFER使用内存页、每秒被cache到的内存页)
(12) sar -u 5 5 // CPU的使用情况和IOWAIT信息(同默认监控)
(13) sar -v 5 5 // inode, file and other kernel tablesd的状态信息
(14) sar -w 5 5 // 每秒上下文交换的数目
(15) sar -W 5 5 // SWAP交换的统计信息(监控状态同iostat 的si so)
(16) sar -x 2906 5 5 // 显示指定进程(2906)的统计信息,信息包括:进程造成的错误、用户级和系统级用户CPU的占用情况、运行在哪颗CPU上
(17) sar -y 5 5 // TTY设备的活动状态
(18) 将输出到文件(-o)和读取记录信息(-f)
例1:oracle@oracle [/home/oracle] sar -u 1 0 -e 16:00:00 >data.txt //每隔1秒记录CPU的使用情况,直到15点,数据将保存到data.txt文件中。(-e 参数表示结束时间,注意时间格式:必须为hh:mm:ss格式)
Linux 2.6.18-194.el5 (oracle) 10/11/2011
02:20:28 PM CPU %user %nice %system %iowait %steal %idle
02:20:29 PM all 0.00 0.00 0.00 0.00 0.00 100.00
02:20:30 PM all 0.00 0.00 0.00 0.00 0.00 100.00
02:20:31 PM all 0.00 0.00 0.00 0.00 0.00 100.00
02:20:32 PM all 0.00 0.00 0.00 0.00 0.00 100.00
02:20:33 PM all 0.00 0.00 0.00 0.00 0.00 100.00
02:20:34 PM all 0.00 0.00 0.25 0.00 0.00 99.75
02:20:35 PM all 0.00 0.00 0.00 0.00 0.00 100.00
02:20:36 PM all 0.00 0.00 0.00 0.00 0.00 100.00
02:20:37 PM all 0.25 0.00 0.00 0.00 0.00 99.75
02:20:38 PM all 0.00 0.00 0.00 0.00 0.00 100.00
Average: all 0.02 0.00 0.02 0.00 0.00 99.95
在不使用参数的情况下,系统默认打印CPU使用情况
%user: CPU处在用户模式下的时间百分比。
%system:CPU处在系统模式下的时间百分比。
%iowait: CPU等待输入输出完成时间的百分比。
%idle: CPU空闲时间百分比。
在所有的显示中,我们应主要注意%iowait和%idle,%iowait的值过高,表示硬盘存在I/O瓶颈,%idle值高,表示CPU较空闲,如果%idle值高但系统响应慢时,有可能是CPU等待分配内存,此时应加大内存容量。%idle值如果持续低于10,那么系统的CPU处理能力相对较低,表明系统中最需要解决的资源是CPU。
在多CPU Linux系统中,sar命令也可以为每个CPU分解该信息,采用如下命令:sar -u -P ALL 5 5
oracle@oracle [/home/oracle] sar -u -P ALL 5 2
Linux 2.6.18-194.el5 (oracle) 10/11/2011
02:41:20 PM CPU %user %nice %system %iowait %steal %idle
02:41:25 PM all 0.00 0.00 0.10 0.00 0.00 99.90
02:41:25 PM 0 0.00 0.00 0.20 0.00 0.00 99.80
02:41:25 PM 1 0.00 0.00 0.00 0.00 0.00 100.00
02:41:25 PM 2 0.20 0.00 0.20 0.00 0.00 99.60
02:41:25 PM 3 0.00 0.00 0.00 0.00 0.00 100.00
02:41:25 PM CPU %user %nice %system %iowait %steal %idle
02:41:30 PM all 0.00 0.00 0.05 0.00 0.00 99.95
02:41:30 PM 0 0.00 0.00 0.00 0.00 0.00 100.00
02:41:30 PM 1 0.00 0.00 0.00 0.00 0.00 100.00
02:41:30 PM 2 0.00 0.00 0.00 0.00 0.00 100.00
02:41:30 PM 3 0.00 0.00 0.00 0.00 0.00 100.0
例2: 使用命令 sar -v t n
oracle@oracle [/home/oracle] sar -v 30 5 //进程、I节点、文件和锁表状态
Linux 2.6.18-194.el5 (oracle) 10/11/2011
02:28:45 PM dentunusd file-sz inode-sz super-sz %super-sz dquot-sz %dquot-sz rtsig-sz %rtsig-sz
02:29:15 PM 8675 9690 7119 0 0.00 0 0.00 0 0.00
02:29:45 PM 8676 9690 7119 0 0.00 0 0.00 0 0.00
02:30:15 PM 8677 9690 7119 0 0.00 0 0.00 0 0.00
02:30:45 PM 8684 9690 7126 0 0.00 0 0.00 0 0.00
02:31:15 PM 8685 9690 7126 0 0.00 0 0.00 0 0.00
Average: 8679 9690 7122 0 0.00 0 0.00 0 0.00
dentunusd:在缓冲目录条目中没有使用的条目数量.
file-nr:被系统使用的文件句柄数量.
inode-nr:使用的索引节点数量.
pty-nr:使用的pty数量.
例3: 使用命令 sar -d t n
oracle@oracle [/home/oracle] sar -d 30 2 //查看设备使用情况
Linux 2.6.18-194.el5 (oracle) 10/11/2011
02:30:33 PM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
02:31:03 PM dev8-0 47.95 12099.97 58.38 253.56 0.08 1.74 1.03 4.95
02:31:03 PM dev8-1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
02:31:03 PM dev8-2 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
02:31:03 PM dev8-3 47.95 12099.97 58.38 253.56 0.08 1.74 1.03 4.95
02:31:03 PM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
02:31:33 PM dev8-0 38.67 9648.00 62.93 251.14 0.07 1.75 1.01 3.89
02:31:33 PM dev8-1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
02:31:33 PM dev8-2 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
02:31:33 PM dev8-3 38.67 9648.00 62.93 251.14 0.07 1.75 1.01 3.89
DEV 磁盘设备
用参数-p可以打印出sda,hdc等磁盘设备名称,如果不用参数-p,设备节点则有可能是dev8-0,dev22-0
tps:每秒从物理磁盘I/O的次数.多个逻辑请求会被合并为一个I/O磁盘请求,一次传输的大小是不确定的.
rd_sec/s:每秒读扇区的次数.
wr_sec/s:每秒写扇区的次数.
avgrq-sz:平均每次设备I/O操作的数据大小(扇区).
avgqu-sz:磁盘请求队列的平均长度.
await:从请求磁盘操作到系统完成处理,每次请求的平均消耗时间,包括请求队列等待时间,单位是毫秒(1秒=1000毫秒).
svctm:系统处理每次请求的平均时间,不包括在请求队列中消耗的时间.
%util:I/O请求占CPU的百分比,比率越大,说明越饱
例4: 使用命令 sar -n t n
oracle@oracle [/home/oracle] sar -n ALL 5 2
Linux 2.6.18-194.el5 (oracle) 10/11/2011
02:52:49 PM IFACE rxpck/s txpck/s rxbyt/s txbyt/s rxcmp/s txcmp/ s rxmcst/s
02:52:54 PM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
02:52:54 PM eth0 127.15 112.57 38894.41 20819.16 0.00 0.00 0.00
02:52:54 PM eth1 0.00 0.00 0.00 0.00 0.00 0.00 0.00
02:52:54 PM sit0 0.00 0.00 0.00 0.00 0.00 0.00 0.00
02:52:49 PM IFACE rxerr/s txerr/s coll/s rxdrop/s txdrop/s txcarr/s rxfram/s rxfifo/s txfifo/s
02:52:54 PM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
02:52:54 PM eth0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
02:52:54 PM eth1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
02:52:54 PM sit0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
02:52:49 PM call/s retrans/s read/s write/s access/s getatt/s
02:52:54 PM 0.00 0.00 0.00 0.00 0.00 0.00
02:52:49 PM scall/s badcall/s packet/s udp/s tcp/s hit/s miss/s sread/s swrite/s saccess/s sgetatt/s
02:52:54 PM 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
02:52:49 PM totsck tcpsck udpsck rawsck ip-frag
02:52:54 PM 274 99 41 0 0
02:52:54 PM IFACE rxpck/s txpck/s rxbyt/s txbyt/s rxcmp/s txcmp/s rxmcst/s
02:52:59 PM lo 0.40 0.40 20.00 20.00 0.00 0.00 0.00
02:52:59 PM eth0 139.00 120.60 47988.20 22587.00 0.00 0.00 0.00
02:52:59 PM eth1 0.00 0.00 0.00 0.00 0.00 0.00 0.00
02:52:59 PM sit0 0.00 0.00 0.00 0.00 0.00 0.00 0.00
02:52:54 PM IFACE rxerr/s txerr/s coll/s rxdrop/s txdrop/s txcarr/ s rxfram/s rxfifo/s txfifo/s
02:52:59 PM lo 0.00 0.00 0.00 0.00 0.00 0.0 0 0.00 0.00 0.00
02:52:59 PM eth0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
02:52:59 PM eth1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
02:52:59 PM sit0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
02:52:54 PM call/s retrans/s read/s write/s access/s getatt/s
02:52:59 PM 0.00 0.00 0.00 0.00 0.00 0.00
02:52:54 PM scall/s badcall/s packet/s udp/s tcp/s hit/s miss/s sread/s swrite/s saccess/s sgetatt/s
02:52:59 PM 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
02:52:54 PM totsck tcpsck udpsck rawsck ip-frag
02:52:59 PM 274 99 41 0 0
Average: IFACE rxpck/s txpck/s rxbyt/s txbyt/s rxcmp/s txcmp/ s rxmcst/s
Average: lo 0.20 0.20 9.99 9.99 0.00 0.00 0.00
Average: eth0 133.07 116.58 43436.76 21702.20 0.00 0.00 0.00
Average: eth1 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: sit0 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: IFACE rxerr/s txerr/s coll/s rxdrop/s txdrop/s txcarr/s rxfram/s rxfifo/s txfifo/s
Average: lo 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
Average: eth1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: sit0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: call/s retrans/s read/s write/s access/s getatt/s
Average: 0.00 0.00 0.00 0.00 0.00 0.00
Average: scall/s badcall/s packet/s udp/s tcp/s hit/s miss/s sread/s swrite/s saccess/s sgetatt/s
Average: 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: totsck tcpsck udpsck rawsck ip-frag
Average: 274 99 41 0 0
sar提供四种不同的语法选项来显示网络信息。-n选项使用四个不同的开关:DEV、EDEV、SOCK和FULL。DEV显示网络接口信 息,EDEV显示关于网络错误的统计数据,SOCK显示套接字信息,
FULL显示所有三个开关。它们可以单独或者一起使用。
字段 说明
IFACE LAN接口
rxpck/s 每秒钟接收的数据包
txpck/s 每秒钟发送的数据包
rxbyt/s 每秒钟接收的字节数
txbyt/s 每秒钟发送的字节数
rxcmp/s 每秒钟接收的压缩数据包
txcmp/s 每秒钟发送的压缩数据包
rxmcst/s 每秒钟接收的多播数据包
后面的只针对每一个命令做解释,不做测试
例5: sar -r 5 5 // 内存和swap空间使用情况
kbmemfree:这个值和free命令中的free值基本一致,所以它不包括buffer和cache的空间.
kbmemused:这个值和free命令中的used值基本一致,所以它包括buffer和cache的空间.
%memused:这个值是kbmemused和内存总量(不包括swap)的一个百分比.
kbbuffers和kbcached:这两个值就是free命令中的buffer和cache.
kbcommit:保证当前系统所需要的内存,即为了确保不溢出而需要的内存(RAM+swap).
%commit:这个值是kbcommit与内存总量(包括swap)的一个百分比.
例6: sar -B 5 5 // 页交换速率
pgpgin/s:表示每秒从磁盘或SWAP置换到内存的字节数(KB)
pgpgout/s:表示每秒从内存置换到磁盘或SWAP的字节数(KB)
fault/s:每秒钟系统产生的缺页数,即主缺页与次缺页之和(major + minor)
majflt/s:每秒钟产生的主缺页数.
pgfree/s:每秒被放入空闲队列中的页个数
pgscank/s:每秒被kswapd扫描的页个数
pgscand/s:每秒直接被扫描的页个数
pgsteal/s:每秒钟从cache中被清除来满足内存需要的页个数
%vmeff:每秒清除的页(pgsteal)占总扫描页(pgscank+pgscand)的百分比
例7: sar -q 5 5 // 队列的长度(等待运行的进程数)和负载的状态
runq-sz:处于运行或就绪的进程数量
plist-sz:现在进程的总数(包括线程).
ldavg-1:最近一分钟的负载.
ldavg-5:最近五分钟的负载.
ldavg-15:最近十分钟的负载.
平均负载和队列的数据来源于/proc/loadavg
例8: sar -n NFS 5 5 //NFS客户端的监控
call/s:每秒成功的RPC调用都会使call/s的值增长,比如对NFS的一次读/写.
retrans/s:每秒重传的RPC次数,比如因为服务器的问题,产生timeout,这时客户端需要重新传输.
read/s:每秒从NFS服务端读取的次数.
write/s:每秒写入到NFS服务端的次数.
access/s:每秒访问NFS的次数,比如从NFS服务端COPY文件.
getatt/s:每秒获取NFS服务端文件属性的次数,比如ls -l /NFSSERVER/,如果NFSSERVER有300个文件,将产生300次这样的请求.
例9: sar -b 5 5 // IO传送速率
tps:每秒从物理磁盘I/O的次数.多个逻辑请求会被合并为一个I/O磁盘请求,一次传输的大小是不确定的.
rtps:每秒的读请求数
wtps:每秒的写请求数
bread/s:每秒读磁盘的数据块数(in blocks 1 block = 512B, 2.4以后内核)
bwrtn/s:每秒写磁盘的数据块数(in blocks 1 block = 512B, 2.4以后内核)
一般情况下tps=(rtps+wtps)
sar也可以监控非实时数据,通过cron周期的运行到指定目录下
例如:我们想查看本月27日,从0点到23点的内存资源.
sa27就是本月27日,指定具体的时间可以通过-s(start)和-e(end)来指定.
sar -f /var/log/sa/sa27 -s 00:00:00 -e 23:00:00 -r
关于sar的用法太多太复杂,建议先查看主要几个指标如CPU,内存,IO等(理解起累啊,好难得整理)
前面已经介绍了 vmstat和top命令的解析及使用,下面我们来学习一个更重要的命令sar
sar命令可以通过参数单独查看系统某个局部的使用情况
sar 命令行的常用格式:
sar [options] [-A] [-o file] t [n]
在命令行中,n 和t 两个参数组合起来定义采样间隔和次数,t为采样间隔,是必须有的参数,n为采样次数,是可选的,默认值是1,-o file表示将命令结果以二进制格式存放在文件中,
file 在此处不是关键字,是文件名。options 为命令行选项,sar命令的选项很多,下面只列出常用选项:
-A:所有报告的总和。
-u:CPU利用率
-v:进程、I节点、文件和锁表状态。
-d:硬盘使用报告。
-r:没有使用的内存页面和硬盘块。
-g:串口I/O的情况。
-b:缓冲区使用情况。
-a:文件读写情况。
-c:系统调用情况。
-R:进程的活动情况。
-y:终端设备活动情况。
-w:系统交换活动。
-n: 记录网络使用情况
默认监控: sar 5 5 // CPU和IOWAIT统计状态
(1) sar -b 5 5 // IO传送速率
(2) sar -B 5 5 // 页交换速率
(3) sar -c 5 5 // 进程创建的速率
(4) sar -d 5 5 // 块设备的活跃信息
(5) sar -n DEV 5 5 // 网路设备的状态信息
(6) sar -n SOCK 5 5 // SOCK的使用情况
(7) sar -n ALL 5 5 // 所有的网络状态信息
(8) sar -P ALL 5 5 // 每颗CPU的使用状态信息和IOWAIT统计状态
(9) sar -q 5 5 // 队列的长度(等待运行的进程数)和负载的状态
(10) sar -r 5 5 // 内存和swap空间使用情况
(11) sar -R 5 5 // 内存的统计信息(内存页的分配和释放、系统每秒作为BUFFER使用内存页、每秒被cache到的内存页)
(12) sar -u 5 5 // CPU的使用情况和IOWAIT信息(同默认监控)
(13) sar -v 5 5 // inode, file and other kernel tablesd的状态信息
(14) sar -w 5 5 // 每秒上下文交换的数目
(15) sar -W 5 5 // SWAP交换的统计信息(监控状态同iostat 的si so)
(16) sar -x 2906 5 5 // 显示指定进程(2906)的统计信息,信息包括:进程造成的错误、用户级和系统级用户CPU的占用情况、运行在哪颗CPU上
(17) sar -y 5 5 // TTY设备的活动状态
(18) 将输出到文件(-o)和读取记录信息(-f)
例1:oracle@oracle [/home/oracle] sar -u 1 0 -e 16:00:00 >data.txt //每隔1秒记录CPU的使用情况,直到15点,数据将保存到data.txt文件中。(-e 参数表示结束时间,注意时间格式:必须为hh:mm:ss格式)
Linux 2.6.18-194.el5 (oracle) 10/11/2011
02:20:28 PM CPU %user %nice %system %iowait %steal %idle
02:20:29 PM all 0.00 0.00 0.00 0.00 0.00 100.00
02:20:30 PM all 0.00 0.00 0.00 0.00 0.00 100.00
02:20:31 PM all 0.00 0.00 0.00 0.00 0.00 100.00
02:20:32 PM all 0.00 0.00 0.00 0.00 0.00 100.00
02:20:33 PM all 0.00 0.00 0.00 0.00 0.00 100.00
02:20:34 PM all 0.00 0.00 0.25 0.00 0.00 99.75
02:20:35 PM all 0.00 0.00 0.00 0.00 0.00 100.00
02:20:36 PM all 0.00 0.00 0.00 0.00 0.00 100.00
02:20:37 PM all 0.25 0.00 0.00 0.00 0.00 99.75
02:20:38 PM all 0.00 0.00 0.00 0.00 0.00 100.00
Average: all 0.02 0.00 0.02 0.00 0.00 99.95
在不使用参数的情况下,系统默认打印CPU使用情况
%user: CPU处在用户模式下的时间百分比。
%system:CPU处在系统模式下的时间百分比。
%iowait: CPU等待输入输出完成时间的百分比。
%idle: CPU空闲时间百分比。
在所有的显示中,我们应主要注意%iowait和%idle,%iowait的值过高,表示硬盘存在I/O瓶颈,%idle值高,表示CPU较空闲,如果%idle值高但系统响应慢时,有可能是CPU等待分配内存,此时应加大内存容量。%idle值如果持续低于10,那么系统的CPU处理能力相对较低,表明系统中最需要解决的资源是CPU。
在多CPU Linux系统中,sar命令也可以为每个CPU分解该信息,采用如下命令:sar -u -P ALL 5 5
oracle@oracle [/home/oracle] sar -u -P ALL 5 2
Linux 2.6.18-194.el5 (oracle) 10/11/2011
02:41:20 PM CPU %user %nice %system %iowait %steal %idle
02:41:25 PM all 0.00 0.00 0.10 0.00 0.00 99.90
02:41:25 PM 0 0.00 0.00 0.20 0.00 0.00 99.80
02:41:25 PM 1 0.00 0.00 0.00 0.00 0.00 100.00
02:41:25 PM 2 0.20 0.00 0.20 0.00 0.00 99.60
02:41:25 PM 3 0.00 0.00 0.00 0.00 0.00 100.00
02:41:25 PM CPU %user %nice %system %iowait %steal %idle
02:41:30 PM all 0.00 0.00 0.05 0.00 0.00 99.95
02:41:30 PM 0 0.00 0.00 0.00 0.00 0.00 100.00
02:41:30 PM 1 0.00 0.00 0.00 0.00 0.00 100.00
02:41:30 PM 2 0.00 0.00 0.00 0.00 0.00 100.00
02:41:30 PM 3 0.00 0.00 0.00 0.00 0.00 100.0
例2: 使用命令 sar -v t n
oracle@oracle [/home/oracle] sar -v 30 5 //进程、I节点、文件和锁表状态
Linux 2.6.18-194.el5 (oracle) 10/11/2011
02:28:45 PM dentunusd file-sz inode-sz super-sz %super-sz dquot-sz %dquot-sz rtsig-sz %rtsig-sz
02:29:15 PM 8675 9690 7119 0 0.00 0 0.00 0 0.00
02:29:45 PM 8676 9690 7119 0 0.00 0 0.00 0 0.00
02:30:15 PM 8677 9690 7119 0 0.00 0 0.00 0 0.00
02:30:45 PM 8684 9690 7126 0 0.00 0 0.00 0 0.00
02:31:15 PM 8685 9690 7126 0 0.00 0 0.00 0 0.00
Average: 8679 9690 7122 0 0.00 0 0.00 0 0.00
dentunusd:在缓冲目录条目中没有使用的条目数量.
file-nr:被系统使用的文件句柄数量.
inode-nr:使用的索引节点数量.
pty-nr:使用的pty数量.
例3: 使用命令 sar -d t n
oracle@oracle [/home/oracle] sar -d 30 2 //查看设备使用情况
Linux 2.6.18-194.el5 (oracle) 10/11/2011
02:30:33 PM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
02:31:03 PM dev8-0 47.95 12099.97 58.38 253.56 0.08 1.74 1.03 4.95
02:31:03 PM dev8-1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
02:31:03 PM dev8-2 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
02:31:03 PM dev8-3 47.95 12099.97 58.38 253.56 0.08 1.74 1.03 4.95
02:31:03 PM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
02:31:33 PM dev8-0 38.67 9648.00 62.93 251.14 0.07 1.75 1.01 3.89
02:31:33 PM dev8-1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
02:31:33 PM dev8-2 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
02:31:33 PM dev8-3 38.67 9648.00 62.93 251.14 0.07 1.75 1.01 3.89
DEV 磁盘设备
用参数-p可以打印出sda,hdc等磁盘设备名称,如果不用参数-p,设备节点则有可能是dev8-0,dev22-0
tps:每秒从物理磁盘I/O的次数.多个逻辑请求会被合并为一个I/O磁盘请求,一次传输的大小是不确定的.
rd_sec/s:每秒读扇区的次数.
wr_sec/s:每秒写扇区的次数.
avgrq-sz:平均每次设备I/O操作的数据大小(扇区).
avgqu-sz:磁盘请求队列的平均长度.
await:从请求磁盘操作到系统完成处理,每次请求的平均消耗时间,包括请求队列等待时间,单位是毫秒(1秒=1000毫秒).
svctm:系统处理每次请求的平均时间,不包括在请求队列中消耗的时间.
%util:I/O请求占CPU的百分比,比率越大,说明越饱
例4: 使用命令 sar -n t n
oracle@oracle [/home/oracle] sar -n ALL 5 2
Linux 2.6.18-194.el5 (oracle) 10/11/2011
02:52:49 PM IFACE rxpck/s txpck/s rxbyt/s txbyt/s rxcmp/s txcmp/ s rxmcst/s
02:52:54 PM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
02:52:54 PM eth0 127.15 112.57 38894.41 20819.16 0.00 0.00 0.00
02:52:54 PM eth1 0.00 0.00 0.00 0.00 0.00 0.00 0.00
02:52:54 PM sit0 0.00 0.00 0.00 0.00 0.00 0.00 0.00
02:52:49 PM IFACE rxerr/s txerr/s coll/s rxdrop/s txdrop/s txcarr/s rxfram/s rxfifo/s txfifo/s
02:52:54 PM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
02:52:54 PM eth0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
02:52:54 PM eth1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
02:52:54 PM sit0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
02:52:49 PM call/s retrans/s read/s write/s access/s getatt/s
02:52:54 PM 0.00 0.00 0.00 0.00 0.00 0.00
02:52:49 PM scall/s badcall/s packet/s udp/s tcp/s hit/s miss/s sread/s swrite/s saccess/s sgetatt/s
02:52:54 PM 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
02:52:49 PM totsck tcpsck udpsck rawsck ip-frag
02:52:54 PM 274 99 41 0 0
02:52:54 PM IFACE rxpck/s txpck/s rxbyt/s txbyt/s rxcmp/s txcmp/s rxmcst/s
02:52:59 PM lo 0.40 0.40 20.00 20.00 0.00 0.00 0.00
02:52:59 PM eth0 139.00 120.60 47988.20 22587.00 0.00 0.00 0.00
02:52:59 PM eth1 0.00 0.00 0.00 0.00 0.00 0.00 0.00
02:52:59 PM sit0 0.00 0.00 0.00 0.00 0.00 0.00 0.00
02:52:54 PM IFACE rxerr/s txerr/s coll/s rxdrop/s txdrop/s txcarr/ s rxfram/s rxfifo/s txfifo/s
02:52:59 PM lo 0.00 0.00 0.00 0.00 0.00 0.0 0 0.00 0.00 0.00
02:52:59 PM eth0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
02:52:59 PM eth1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
02:52:59 PM sit0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
02:52:54 PM call/s retrans/s read/s write/s access/s getatt/s
02:52:59 PM 0.00 0.00 0.00 0.00 0.00 0.00
02:52:54 PM scall/s badcall/s packet/s udp/s tcp/s hit/s miss/s sread/s swrite/s saccess/s sgetatt/s
02:52:59 PM 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
02:52:54 PM totsck tcpsck udpsck rawsck ip-frag
02:52:59 PM 274 99 41 0 0
Average: IFACE rxpck/s txpck/s rxbyt/s txbyt/s rxcmp/s txcmp/ s rxmcst/s
Average: lo 0.20 0.20 9.99 9.99 0.00 0.00 0.00
Average: eth0 133.07 116.58 43436.76 21702.20 0.00 0.00 0.00
Average: eth1 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: sit0 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: IFACE rxerr/s txerr/s coll/s rxdrop/s txdrop/s txcarr/s rxfram/s rxfifo/s txfifo/s
Average: lo 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
Average: eth1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: sit0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: call/s retrans/s read/s write/s access/s getatt/s
Average: 0.00 0.00 0.00 0.00 0.00 0.00
Average: scall/s badcall/s packet/s udp/s tcp/s hit/s miss/s sread/s swrite/s saccess/s sgetatt/s
Average: 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: totsck tcpsck udpsck rawsck ip-frag
Average: 274 99 41 0 0
sar提供四种不同的语法选项来显示网络信息。-n选项使用四个不同的开关:DEV、EDEV、SOCK和FULL。DEV显示网络接口信 息,EDEV显示关于网络错误的统计数据,SOCK显示套接字信息,
FULL显示所有三个开关。它们可以单独或者一起使用。
字段 说明
IFACE LAN接口
rxpck/s 每秒钟接收的数据包
txpck/s 每秒钟发送的数据包
rxbyt/s 每秒钟接收的字节数
txbyt/s 每秒钟发送的字节数
rxcmp/s 每秒钟接收的压缩数据包
txcmp/s 每秒钟发送的压缩数据包
rxmcst/s 每秒钟接收的多播数据包
后面的只针对每一个命令做解释,不做测试
例5: sar -r 5 5 // 内存和swap空间使用情况
kbmemfree:这个值和free命令中的free值基本一致,所以它不包括buffer和cache的空间.
kbmemused:这个值和free命令中的used值基本一致,所以它包括buffer和cache的空间.
%memused:这个值是kbmemused和内存总量(不包括swap)的一个百分比.
kbbuffers和kbcached:这两个值就是free命令中的buffer和cache.
kbcommit:保证当前系统所需要的内存,即为了确保不溢出而需要的内存(RAM+swap).
%commit:这个值是kbcommit与内存总量(包括swap)的一个百分比.
例6: sar -B 5 5 // 页交换速率
pgpgin/s:表示每秒从磁盘或SWAP置换到内存的字节数(KB)
pgpgout/s:表示每秒从内存置换到磁盘或SWAP的字节数(KB)
fault/s:每秒钟系统产生的缺页数,即主缺页与次缺页之和(major + minor)
majflt/s:每秒钟产生的主缺页数.
pgfree/s:每秒被放入空闲队列中的页个数
pgscank/s:每秒被kswapd扫描的页个数
pgscand/s:每秒直接被扫描的页个数
pgsteal/s:每秒钟从cache中被清除来满足内存需要的页个数
%vmeff:每秒清除的页(pgsteal)占总扫描页(pgscank+pgscand)的百分比
例7: sar -q 5 5 // 队列的长度(等待运行的进程数)和负载的状态
runq-sz:处于运行或就绪的进程数量
plist-sz:现在进程的总数(包括线程).
ldavg-1:最近一分钟的负载.
ldavg-5:最近五分钟的负载.
ldavg-15:最近十分钟的负载.
平均负载和队列的数据来源于/proc/loadavg
例8: sar -n NFS 5 5 //NFS客户端的监控
call/s:每秒成功的RPC调用都会使call/s的值增长,比如对NFS的一次读/写.
retrans/s:每秒重传的RPC次数,比如因为服务器的问题,产生timeout,这时客户端需要重新传输.
read/s:每秒从NFS服务端读取的次数.
write/s:每秒写入到NFS服务端的次数.
access/s:每秒访问NFS的次数,比如从NFS服务端COPY文件.
getatt/s:每秒获取NFS服务端文件属性的次数,比如ls -l /NFSSERVER/,如果NFSSERVER有300个文件,将产生300次这样的请求.
例9: sar -b 5 5 // IO传送速率
tps:每秒从物理磁盘I/O的次数.多个逻辑请求会被合并为一个I/O磁盘请求,一次传输的大小是不确定的.
rtps:每秒的读请求数
wtps:每秒的写请求数
bread/s:每秒读磁盘的数据块数(in blocks 1 block = 512B, 2.4以后内核)
bwrtn/s:每秒写磁盘的数据块数(in blocks 1 block = 512B, 2.4以后内核)
一般情况下tps=(rtps+wtps)
sar也可以监控非实时数据,通过cron周期的运行到指定目录下
例如:我们想查看本月27日,从0点到23点的内存资源.
sa27就是本月27日,指定具体的时间可以通过-s(start)和-e(end)来指定.
sar -f /var/log/sa/sa27 -s 00:00:00 -e 23:00:00 -r
关于sar的用法太多太复杂,建议先查看主要几个指标如CPU,内存,IO等(理解起累啊,好难得整理)
相关推荐
linux 下sar命令的使用说明,包括各种自然监控,及参数说明等。
SAR作为Linux系统下最为全面的性能监控工具之一,是我们学习、管理Linux系统所必须要掌握重要技术,本文将简单通俗的为你详细介绍SAR命令的详细使用。
超详细的sar命令解析,很适合小白使用,希望大家学习愉快
主要介绍了Linux sar命令使用方法及代码实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
rsar类似于sar命令,但是用于纯文本sar文件而不是sa文件。 它支持sar使用几乎所有相同的数据选择选项。 安装 两种选择: 手动安装:通过从下载主要的rsar文件,直接获取最新版本。 需要通过重新下载来手动完成更新...
文档对smbus的单字,单字节,块读写,地址解析命令有详尽的介绍,给不熟悉smbus协议的朋友提供方便
包含crond、sar、top、vmstat等命令使用详解
软件程序(SarBox)可以分析和分析图表或文本格式的SAR数据。... 要从环境中收集sar统计信息,请使用以下语法[user @ host〜]#sar -A 30 2> sar_linux.log每30秒“两次2”报告,共2次,以sar_linux.log编写。
vmstat是Virtual Meomory Statistics的缩写,可对操作系统的虚拟内存、进程、CPU活动...sar是System Activity Reporter的缩写,sar工具将对系统当前的状态进行取样,然后通过计算数据和比例来表达系统的当前运行状态。
使用 vmstat、iostat、netstat 和 sar 命令进行连续的系统性能监视 使用 topas 监视器进行连续的系统性能监视 使用性能工具箱进行连续的系统性能监视 初始性能诊断 报告的性能问题的类型 性能限制资源的确定 工作...
AIX 系统磁盘IO 监控 评估 AIX系统磁盘IO性能评估 2 ...五, 使用vmstat命令评估调页空间 10 六, 使用filemon命令监控系统IO 10 6.1 filemon标记描述 11 6.2 filemon报告解析 11 七, 监视磁盘IO的小结 12
9. 设置定时sar命令 19 10. 如何调整nfs的读写包大小? 20 11. 如何打开或关闭fastwrite cache 21 12. iostat 命令在 AIX5L中的新选项 21 13. 如何查看系统每个处理器的使用状况? 22 14. 如何查看某些应用程序占用...
38.命令详解及使用技巧 39.LOGIN:ERROR-Failed to initialize policy manager.原因 40. RPC 编程简介 41.aris启动过程详解 42.M的底层建卷 43.Xwindow 44.ntab命令详解 45.aris Cryptographic Framework密码体系 46....
sar命令包含在sysstat工具包中,提供系统的众多统计数据。其在不同的系统上命令有些差异,某些系统提供的sar支持基于网络接口的数据统计,也可以查看设备上每秒收发包的个数和流量。 sar –n DEV 1 2 命令后面1 2 ...
1.2 AIX 5L 内存性能优化之使用 ps、sar、svmon 和 vmstat 监视内存的使用 7 1.3 AIX 5L 内存性能优化之配置和管理交换空间,优化(VMM) 12 1.4 AIX 5.3主机性能评估-Memory性能评估 19 1.5 AIX 5L 磁盘性能优化 23 ...
10.6.2 sar命令 10.6.3 iostat命令 10.6.4 free命令 10.6.5 uptime命令 10.6.6 netstat命令 10.6.7 top命令 10.7 基于Web应用的性能分析及优化案例 10.7.1 基于动态内容为主的网站优化案例 10.7.2 ...