【AIX 学习】性能优化--iostat (续)

tty 和 CPU 使用率报告
由 iostat 命令生成的第一份报告是 tty 和 CPU 使用率报告。对于多处理器系统,CPU 值是所有处理器的总平均。同时,I/O 等待状态是系统级定义的,而不是每个处理器。报告有以下格式:

栏 描述
tin 显示了系统为所有 tty 读取的字符总数。
tout 显示了系统为所有 tty 写入的字符总数。
% user 显示了在用户级(应用程序)执行时生成的 CPU 使用率百分比。
% sys 显示了在系统级(内核)执行时生成的 CPU 使用率百分比。
% idle 显示了在 CPU 空闲并且系统没有未完成的磁盘 I/O 请求时的时间百分比。
% iowait 显示了 CPU 空闲期间系统有未完成的磁盘 I/O 请求时的时间百分比。
physc 消耗的物理处理器的数量,仅当分区与共享处理器运行时显示。
% entc 消耗的标题容量的百分比,仅当分区与共享处理器运行时显示。由于计算该数据所依据的时间基础会发生变化,因此授权容量百分比有时可能超过 100%。这种超过只在采样时间间隔很小时才会比较明显。

每过一定时间间隔,内核就更新这条信息(一般每秒六十次)。tty 报告提供了从系统中所有终端的收到的每秒字符总数,以及和每秒输出到系统所有终端的字符的总数。

用来计算 CPU 磁盘 I/O 等待时间的方法
操作系统 V4.3.3 和后来的版本包含用来估算 CPU 在磁盘 I/O(wio 时间)等待上的所花时间的百分比的增强方法。用在 AIX 4.3.2 和操作系统的早期版本上的方法在一定条件下,能够给出 SMP 上的 wio 时间的一个放大的视图。wio 时间是根据命令 sar(%wio)、vmstat(wa)和 iostat(% iowait)报告出来的。

在 AIX 4.3.2 中和早期版本中使用的方法如下:在每个处理器(每处理器一秒一百次)的每个时钟中断上,将确定四个类别(usr/sys/wio/idle)中的哪一个放置在最后的 10ms 内。如果在时钟中断的时刻 CPU 以 usr 模式中处于忙状态,则 usr 获得这个时间计点并归于此类。如果在时钟中断时刻 CPU 以内核模式中处于忙状态,则 sys 类别将获得该计时点。如果 CPU 不处于忙状态,将检查是否在进行任何磁盘 I/O。如果在进行任何磁盘 I/O,则 wio 类别将增加。如果磁盘在进行 I/O 操作并且 CPU 不忙,则 idle 类别将获取计时点。wio 时间的放大视图是由于所有空闲 CPU 被归为 wio 而不管在 I/O 上等待的线程数所导致。例如,仅有一个线程执行 I/O 的系统可以报告超过 90% 的 wio 时间而不管其 CPU 数。

在 AIX 4.3.3 中和后继版本中使用的方法如下:如果在那个 CPU 上启动一个未完成的 I/O,则操作系统 V4.3.3 中的更改仅将一个空闲 CPU 标为 wio。当只有少数线程正在执行 I/O 否则系统就空闲的情况下,这种方法可以报告更少的 wio 时间。例如,一个有四个 CPU 且只有一个线程执行 I/O 的系统将报告一个最大值是 25% 的 wio 时间。一个有 12 个 CPU 且仅有一个线程执行 I/O 的系统将报告一个最大值为 8% 的 wio 时间。 NFS 客户机通过 VMM 读/写,并且为了完成一个 I/O 而在 vmm 等待中用的时间现在将被报告为 I/O 等待时间。

磁盘使用率报告
由 iostat 命令生成的第二个报告是磁盘使用率报告。磁盘报告提供了在每个物理磁盘基础上的统计信息。缺省报告有与以下类似的格式:

% tm_act 表示物理磁盘处于活动状态的时间百分比(驱动器的带宽使用率)。
Kbps 表示以 KB 每秒为单位的传输(读或写)到驱动器的数据量。
tps 表示每秒钟输出到物理磁盘的传输次数。一次传输就是一个对物理磁盘的 I/O 请求。多个逻辑请求可被并为对磁盘的一个单一 I/O 请求。传输具有不确定的大小。
Kb_read 读取的 KB 总数。
Kb_wrtn 写入的 KB 总数。

如果指定了 -D 标志,则报告有以下度量值:

与磁盘传送(xfer)有关的度量值: 
% tm_act 表示物理磁盘处于活动状态的时间百分比(驱动器的带宽使用率)。
bps 表示每秒传输(读或写)到驱动器的数据量。使用不同的后缀来代表传送单位。缺省单位是字节/秒。
tps 表示每秒钟输出到物理磁盘的传输次数。一次传输就是一个对物理磁盘的 I/O 请求。多个逻辑请求可被并为对磁盘的一个单一 I/O 请求。传输具有不确定的大小。
bread 表示每秒从驱动器上读取的数据量。使用不同的后缀来代表传送单位。缺省单位是字节/秒。
bwrtn 表示每秒写入到驱动器的数据量。使用不同的后缀来代表传送单位。缺省单位是字节/秒。
磁盘读取服务度量值(读取): 
rps 表示每秒读取传输的数量。
avgserv 表示每次读取传输的平均服务时间。使用不同的后缀来代表时间单位。缺省单位是毫秒。
minserv 表示最少的读取服务时间。使用不同的后缀来代表时间单位。缺省单位是毫秒。
maxserv 表示最多的读取服务时间。使用不同的后缀来代表时间单位。缺省单位是毫秒。
timeouts 表示每秒读取超时的数量。
fails 表示每秒失败的读取请求的数量。
磁盘写入服务度量值(写入): 
wps 表示每秒写入传输的数量。
avgserv 表示每次写入传输的平均服务时间。使用不同的后缀来代表时间单位。缺省单位是毫秒。
minserv 表示最少的写入服务时间。使用不同的后缀来代表时间单位。缺省单位是毫秒。
maxserv 表示最多的写入服务时间。使用不同的后缀来代表时间单位。缺省单位是毫秒。
timeouts 表示每秒写入超时的数量。
fails 表示每秒失败的写入请求的数量。
磁盘等待队列服务度量值(队列): 
avgtime 表示传输请求在等待队列中所花的平均时间。使用不同的后缀来代表时间单位。缺省单位是毫秒。
mintime 表示传输请求在等待队列中所花的最短时间。使用不同的后缀来代表时间单位。缺省单位是毫秒。
maxtime 表示传输请求在等待队列中所花的最长时间。使用不同的后缀来代表时间单位。缺省单位是毫秒。
avgwqsz 表示等待队列的平均大小。
avgsqsz 表示服务队列的平均大小。
sqfull 表示每秒内服务队列变满(即,磁盘不再接受任何服务请求)的次数。
代表不同说明单元的后缀图注
后缀 描述
K 1000 字节
M 1 000 000 字节(如果以 xfer 度量值显示)。分钟(如果以读取/写入/等待服务度量值显示)。
G 1 000 000 000 字节。
T 1 000 000 000 000 字节。
S 秒。
H 小时。

注:
对于不支持服务时间度量值的驱动器,将不显示读取、写入和等候队列服务度量值。
CD-ROM 设备的统计信息也要报告。

系统吞吐量报告
如果指定 -s 标志将生成这个报告。这份报告提供了整个系统的统计信息。这份报告有以下格式:

Kbps 表示了每秒以 KB 为单位的传输(读或写)到整个系统的数据量。
tps 表示每秒传输到整个系统的传输次数。
Kb_read 从整个系统中读取的 KB 总数。
Kb_wrtn 写到整个系统的 KB 总数。

适配器吞吐量报告
如果指定 -a 标志将生成该报告。这份报告提供了以每个适配器(包括物理适配器和虚拟适配器)为基础的统计信息。该报告对于物理适配器报告具有以下格式:

Kbps 表示每秒钟以 KB 为单位的传输到(读或写)到适配器的数据量。
tps 表示每秒钟输出到适配器的传输次数。
Kb_read 从适配器读取的 KB 总数。
Kb_wrtn 写到适配器的 KB 总数。

虚拟适配器的缺省吞吐量报告有以下格式:

Kbps 表示每秒钟以 KB 为单位的传输到(读或写)到适配器的数据量。
tps 表示每秒钟输出到适配器的传输次数。
bkread 每秒从托管服务器接收至该适配器的块数。
bkwrtn 每秒从该适配器发送至托管服务器的块数。
partition-id 托管服务器的分区标识,它为该适配器发送的请求提供服务。

虚拟适配器的扩展吞吐量报告(-D 选项)有以下格式:

与传送(xfer:)有关的度量值 
Kbps 表示每秒钟以 KB 为单位的传输到(读或写)到适配器的数据量。
tps 表示每秒钟输出到适配器的传输次数。
bkread 每秒从托管服务器接收至该适配器的块数。
bkwrtn 每秒从该适配器发送至托管服务器的块数。
partition-id 托管服务器的分区标识,它为该适配器发送的请求提供服务。
适配器读取服务度量值(读取:) 
rps 表示每秒读取请求的数量。
avgserv 表示为已发送的读取请求从托管服务器上接收响应的平均时间。使用不同的后缀来代表时间单位。缺省单位是毫秒。
minserv 表示为已发送的读取请求从托管服务器上接收响应的最短时间。使用不同的后缀来代表时间单位。缺省单位是毫秒。
maxserv 表示为已发送的读取请求从托管服务器上接收响应的最长时间。使用不同的后缀来代表时间单位。缺省单位是毫秒。
适配器写入服务度量值(写入:) 
wps 表示每秒写入请求的数量。
avgserv 表示为已发送的写入请求从托管服务器上接收响应的平均时间。使用不同的后缀来代表时间单位。缺省单位是毫秒。
minserv 表示为已发送的写入请求从托管服务器上接收响应的最短时间。使用不同的后缀来代表时间单位。缺省单位是毫秒。
maxserv 表示为已发送的写入请求从托管服务器上接收响应的最长时间。使用不同的后缀来代表时间单位。缺省单位是毫秒。
适配器等待队列度量值(队列:) 
avgtime 表示传输请求在等待队列中所花的平均时间。使用不同的后缀来代表时间单位。缺省单位是毫秒。
mintime 表示传输请求在等待队列中所花的最短时间。使用不同的后缀来代表时间单位。缺省单位是毫秒。
maxtime 表示传输请求在等待队列中所花的最长时间。使用不同的后缀来代表时间单位。缺省单位是毫秒。
avgwqsz 表示等待队列的平均大小。
avgsqsz 表示服务队列的平均大小。
sqfull 表示每秒内服务队列变满(即,托管服务器不再接受任何服务请求)的次数。
代表不同说明单元的后缀图注
后缀 描述
K 1000 字节。
M 1 000 000 字节(如果以 xfer 度量值显示)。分钟(如果以读取/写入/等待服务度量值显示)。
G 1 000 000 000 字节。
T 1 000 000 000 000 字节。
S 秒。
H 小时。

异步 I/O 报告
异步 I/O 报告有以下列标题:

avgc 指定时间间隔的每秒平均全局 AIO 请求计数。
avfc 指定时间间隔的每秒平均快速路径请求计数。
maxgc 上一次访存这个值以来的最大全局 AIO 请求计数。
maxfc 上一次访存这个值以来的最大快速路径请求计数。
maxreqs 所允许的最大 AIO 请求数。

磁盘输入/输出历史记录
为了提高性能,已经禁用了磁盘输入/输出统计信息的收集。要启用该数据的集合,请输入:

chdev -l sys0 -a iostat=true
要显示当前设置,请输入:

lsattr -E -l sys0 -a iostat
如果禁用了磁盘输入/输出历史记录的收集,并且在不带时间间隔的情况下调用了 iostat,则 iostat 输出将显示消息自引导以来的磁盘历史记录不可用,而不是磁盘统计信息。

标志

-a 指定适配器吞吐量报告。
-A 显示指定时间间隔和计数的 AIO 统计信息。
-d 只指定驱动器报告。
-D 只指定扩展驱动器报告。
-l 对长列表方式显示输出。缺省列宽是 80。
-m 指定路径的统计信息。
-P 与 -A 选项相同,使用 POSIX AIO 调用获取的数据除外。
-q 指定 AIO 队列和它们的请求计数。
-Q 显示所有安装的文件系统和相关的队列数以及它们请求计数的列表。
-R 指定在每个时间间隔都应复位 min* 和 max* 值。缺省情况下将仅在 iostat 启动时执行一次复位。
-s 指定系统吞吐量报告。
-t 只指定 tty/cpu 报告。
-T 指定时间戳记。
-z 复位磁盘输入/输出统计信息。只有 root 用户才可以使用此选项。

注:
-q 或 -Q 只能与 -A 一起指定。
-a 和 -s 也可以与 -A 一起指定,但在指定了-q 或 -Q 时不能与 -A 一起指定。
-t 和 -d 不能同时指定。
-t 和 -D 不能同时指定。
-d 和 -D 不能同时指定。
-R 只能和 -D 一起指定。
示例
要为所有 tty、CPU 和磁盘显示引导后的单一历史记录报告,请输入:

iostat
要为逻辑名是 disk1 的磁盘显示一个以两秒为时间间隔的持续磁盘报告,请输入:

iostat -d disk1 2
要为逻辑名是 disk1 的磁盘显示以两秒为时间间隔的六个报告,请输入:

iostat disk1 2 6
要为所有磁盘显示以两秒为时间间隔的六个报告,请输入:

iostat -d 2 6
要为三个名称分别为 disk1、disk2、disk3 的磁盘显示以两秒为时间间隔的六个报告,请输入:

iostat disk1 disk2 disk3 2 6
要打印系统引导以来的系统吞吐量报告,请输入:

 
iostat -s
要打印以五秒为时间间隔的适配器吞吐量报告,请输入:

iostat -a 5
要打印以二十秒为时间间隔的十个系统和适配器吞吐量报告,且仅带有 tty 和 CPU 报告(没有磁盘报告),请输入:

 
iostat -sat 20 10
要打印带有 hdisk0 和 hdisk7 的磁盘使用率报告的系统和适配器吞吐量报告(每 30 秒一次),请输入:

iostat -sad hdisk0 hdisk7 30
要显示 iostat 输出的每行的下一行的时间戳记,请输入:
iostat -T 60
要显示关于 AIO 的以两秒为时间间隔的六个报告,请输入:
iostat -A 2 6
要显示自引导以来与所有已安装的文件系统相关的队列的 AIO 统计信息,请输入:
iostat -A -Q
要显示所有磁盘的扩展驱动器报告,请输入:
iostat -D
要显示某个特定磁盘的扩展驱动器报告,请输入:
iostat –D hdisk0
要复位磁盘输入/输出统计信息,请输入:
iostat –z

时间: 2016-04-15

【AIX 学习】性能优化--iostat (续)的相关文章

SQL语句性能优化(续)_MsSql

上篇介绍了一下自己在项目中遇到的一种使用sql语句的优化方式(性能优化--SQL语句),但是说的不够完整.在对比的过程中,没有将max函数考虑在内,经人提醒之后赶紧做了一个测试,测试过程中又学到了不少的东西. 上次用的是select count(*) 和select * 的执行效率问题,因为我的需求是获取数据的一个总数来自动给出新的id,然后网友给出可以使用max的方式给出新id.其实这也是一种不错的思路(当时我们也用过该函数,只不过因为系统数据本身问题,不适合用该函数),然后我就对max函数的

SQL语句性能优化(续)

上篇介绍了一下自己在项目中遇到的一种使用sql语句的优化方式(性能优化--SQL语句),但是说的不够完整.在对比的过程中,没有将max函数考虑在内,经人提醒之后赶紧做了一个测试,测试过程中又学到了不少的东西. 上次用的是select count(*) 和select * 的执行效率问题,因为我的需求是获取数据的一个总数来自动给出新的id,然后网友给出可以使用max的方式给出新id.其实这也是一种不错的思路(当时我们也用过该函数,只不过因为系统数据本身问题,不适合用该函数),然后我就对max函数的

【AIX 学习】性能优化--iostat

用途 报告中央处理器(CPU)的统计信息,整个系统.适配器.tty 设备.磁盘以及 CD-ROM 的异步输入/输出(AIO)和输入/输出统计信息. 语法 iostat [ -a ] [ -l ] [ -s ] [-t ] [ -T ] [ -z ] [ { -A [ -P ] [ -q | -Q ] } | { -d |-D [-R ] }[ -m ] [ Drives ... ] [ Interval] [ Count ] 描述 iostat 命令用来监视系统输入/输出设备负载,这通过观察与它

为什么性能优化中,设置style属性会引起reflow?

问题描述 为什么性能优化中,设置style属性会引起reflow? 在学习性能优化的时候,看到repaint和reflow,说每设置一次style就会引起一次reflow.那么如果style设置的时候没有改变元素的几何属性(宽高)的话,为什么还会引起reflow呢? 解决方案 不只宽高,比如边距改变,文本内容改变.位置改变等都会引起reflow. 宽高只是最终表象.但改变宽高的因素有什么.

kvm虚拟化学习笔记(二十一)之KVM性能优化学习笔记

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://koumm.blog.51cto.com/703525/1606422 本学习笔记系列都是采用CentOS6.x操作系统,KVM虚拟机的管理也是采用virsh方式,网上的很多的文章都基于ubuntu高版本内核下,KVM的一些新的特性支持更好,本文只是记录了CentOS6.x系列操作系统下KVM优化的点,有很多都是默认支持开启了的,除了采用virtio方式的磁盘IO,与网络IO接口

Jquery 学习笔记(二)jQuery性能优化指南

Jquery 学习笔记(二) -jQuery性能优化指南 2009年11月30日 一 作者:   邦畿千里   1,总是从ID选择器开始继承 在jQuery中最快的选择器是ID选择器,因为它直接来自于JavaScript的getElementById()方法. 例如有一段HTML代码: <div id="content"> <form method="post" action="#"> <h2>交通信号灯<

端到端GPU性能优化在深度学习场景下的应用实践

摘要:在2017杭州云栖大会机器学习平台PAI专场上,阿里巴巴高级算法专家杨军结合具体案例分享了端到端GPU性能优化在深度学习场景下的应用实践.   本文内容根据嘉宾演讲视频以及PPT整理而成.   目前深度学习和GPU已经成为了人工智能的基础,一软一硬的结合能够帮助我们实现图像识别.语音识别以及视频的处理,那么如何优化深度学习框架与GPU资源也是机器学习平台的一个研究方向.   本次分享主要分为以下5个部分: 1.         背景介绍 2.         优化思考 3.        

CSS3与页面布局学习总结(八)——浏览器兼容与前端性能优化

一.浏览器兼容 1.1.概要 世界上没有任何一个浏览器是一样的,同样的代码在不一样的浏览器上运行就存在兼容性问题.不同浏览器其内核亦不尽相同,相同内核的版本不同,相同版本的内核浏览器品牌不一样,各种运行平台还存在差异.屏幕分辨率不一样,大小不一样,比例不一样.兼容性主要考虑三方面: 1).CSS兼容2).JavaScript兼容3).HTML兼容 这三类也是前端的主要组成部分,都存在一定的兼容性问题,知己知彼,百战百胜,我们先了解浏览器的发动机-内核. 多年前我们一直为IE6兼容烦恼,为它没少加

JDBC学习笔记-jdbc性能优化

笔记|性能|优化 jdbc程序的性能主要由两个因素决定,一是数据库本身的性质,另一个是与数据库相对独立的jdbc应用程序接口(api)的使用.这里说的是如何正确使用jdbc编程接口,以获得更好的性能. jdbc主要优化有: 1.选择正确的jdbc驱动程序 2.Connention的优化 使用连接池来管理Connection对象 3.Statement的优化 使用批量更新等 4.Result的优化 正确的从数据库中get数据等 (1)选择正确的jdbc驱动程序: 1 jdbc-odbc 桥 2 本