你应该使用AIX提供的接口SMIT来按照要求改变这些磁盘参数。SMIT允许从命令行以最快速的路径到达SMIT接口中的特定点。得到SMIT磁盘接口扇区的快速命令是smitty chgdsk。最为另外一种方式,你也可以使用chdev命令行名来来改变这些参数。
让我们看一个使用chdev的例子,假如你的系统包含一个非IBM SCSI磁盘驱动器,名为hdisk7,下面这个命令能激活对这个设备的队列功能并设置其队列深度为3:
# chdev -l hdisk7 -a q_type=simple -a queue_depth=3
这对单个磁盘而言非常不错,但当你对整个非IBM磁盘阵列进行操作时又是怎么样一回事呢?让我们往下看。
针对整个非IBM磁盘阵列设置SCSI参数值
任何磁盘阵列对AIX系统而言都是单个磁盘驱动器,尽管这个磁盘驱动器比较大。某个非IBM磁盘阵列,像单个非IBM磁盘驱动器一样,看起来是磁盘、子类SCSI磁盘或osdisk(是其他SCSI磁盘驱动器的缩写)磁盘。尽管如此,我们知道一个磁盘阵列实际上包含很多物理磁盘驱动器。每个物理磁盘都能处理多个请求,因此,整个磁盘阵列的队列深度应该被设置成某个非常大的值,从而高效地使用所有这些物理磁盘。例如,假如hdisk8是一个含有8个磁盘的IBM磁盘阵列,而且每个磁盘都支持队列深度为3,使用chdev来改变这个磁盘阵列到某个合适值的命令如下:
# chdev -l hdisk8 -a q_type=simple -a queue_depth=24
如果磁盘阵列通过一个SCSI-2快速/高带宽SCSI适配器总线来连接,对这样的总线它或许需要改变未完成请求的界限值。让我们接着往下看。
改变AIX磁盘适配器的未完成请求的界限值
AIX SCSI-2快速/高带宽适配器支持两条SCSI总线,一条供内部设备使用,另外一条供外部设备使用。针对每条总线的未完成请求的界限值都有一个限制。这个限制的默认值是40,最大可能值是128。当某个IBM磁盘阵列连接到一个SCSI-2快速/高带宽适配器总线时,这个总线的未完成请求的界限值就会自动增加来容纳这个磁盘阵列的队列深度值。尽管如此,对于一个非IBM磁盘阵列,这个改变必须手动改变。例如,使用chdev命令设置scsi2适配器的未完成请求的界限值为80的方法如下:
# chdev -l scsi2 -a num_cmd_elems=80
注意,如果你使用SCSI-2高性能控制器,这个队列请求的最大值是30,而且这个限制不能被改变。为此,你应该确保连接到SCSI-2高性能控制器的所有设备的队列深度不超过30。
同时你应该注意到最原始的RS/6000 SCSI适配器不支持队列。将一个磁盘阵列设备连接到这样的适配器是不合适的。
控制AIX的系统pbufs的数量
在AIX系统中,逻辑卷管理器(LVM)使用一个称为pbuf的结构来控制针对磁盘的输入输出操作。在AIX版本3中,对每个正在读或写的页都需要一个pbuf。对于那些进行大量顺序输入输出的系统而言,这将过度损耗pbufs缓冲池。为了补偿这种损耗,使用命令vmtune来增加pbufs的数量。
在AIX版本4中,对于每个顺序输入输出请求只只用单个pbuf,而不管涉及的页的数量。这就显著减少了用完pbufs的可能性,因而在版本4中,一般不推荐调整pbufs。
在AIX版本5中,不再需要调整这个参数。
--------------------------------------------------------------------------
欢迎访问我的个人网站:
网管之家:http://admin.caoyuan.net
网管论坛:http://bbs.caoyuan.net
--------------------------------------------------------------------------
一共有 1 条评论