Chinaunix首页 | 论坛 | 博客
  • 博客访问: 594232
  • 博文数量: 841
  • 博客积分: 5000
  • 博客等级: 大校
  • 技术积分: 5010
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-28 10:08
文章分类

全部博文(841)

文章存档

2011年(1)

2008年(840)

我的朋友

分类:

2008-10-28 10:12:46

    本文是讲述有关数据库磁盘输入输出性能和优化的各个不同方面的一系列文章中的一篇。每篇技巧性的文章都摘自即将由Rampant科技出版社出版的图书《磁盘输入输出性能调优》,作者是Mike Ault。从该系列文章的主页上能看到其他即将发布的部分。

Linux系统下的小型计算机系统接口(SCSI)性能调优

   在系统下,要么通过在启动命令GrubLilo的启动文件中指定参数、要么通过在文件/etc/modules.conf中指定选项,来对小型计算机系统接口(SCSI)进行性能调优。接下来让我们依次查看这两种情况的例子。在Linux系统下,可以通过使用带-Tt选项的命令hdp来测量这个接口的相对性能。注意,在Linux系统中,IEEE 1394接口被看作是一个SCSI接口。下面的例子是用来对普通的SBP2接口进行性能调优,但是这些技术也能够被特定的SCSI驱动器使用。

首先,让我们看一下这个接口的当前设置。通过在/proc/scsi/sbp2目录下查看LUN号来获取这些当前设置信息。本例使用LUN 0

[root@ault1 root]# cat /proc/scsi/sbp2/0

IEEE-1394 SBP-2 protocol driver (host: ohci1394)

$Rev: 601 $ James Goodwin

SBP-2 module load options:

- Max speed supported: S400

- Max sectors per I/O supported: 255

- Max outstanding commands supported: 8

- Max outstanding commands per lun supported: 1

- Serialized I/O (debug): no

- Exclusive login: no

 

现在,我们为接口as-is运行一个时间,来其平均速度(多执行几次,取其平均值):

 

/dev/sda:
 Timing buffer-cache reads:  128 MB in  3.99 seconds = 32.08 MB/sec
 Timing buffered disk reads:  64 MB in  6.86 seconds =  9.33 MB/sec
[root@aultlinux1 root]# hdp -Tt /dev/sda

 

现在,我们设置文件/etc/modules.conf中的SBP2选项的值。我们使显著命令的数量加倍,设为16,并增加每个LUN的命令数量,设为2

 
alias parport_lowlevel parport_pc
alias eth0 3c59x
alias usb-controller usb-ohci
alias eth1 tulip
alias ieee1394-controller ohci1394
alias scsi_hostadapter sbp2
options sbp2 sbp2_max_outstanding_cmds=16 sbp2_max_cmds_per_lun=2

 

接下来,重启计算机以使设置生效,并重新查看文件/proc/scsi/sbp2/0中我们的设置

 

[root@aultlinux1 root]# cat /proc/scsi/sbp2/0
IEEE-1394 SBP-2 protocol driver (host: ohci1394)
$Rev: 601 $ James Goodwin 
SBP-2 module load options:
- Max speed supported: S400
- Max sectors per I/O supported: 255
- Max outstanding commands supported: 16
- Max outstanding commands per lun supported: 2
- Serialized I/O (debug): no
- Exclusive login: no

 

更改了我们的设置后,我们从新运行时间测试:

 

[root@aultlinux1 etc]# hdp -Tt /dev/sda
 
/dev/sda:
 Timing buffer-cache reads:  128 MB in  4.03 seconds = 35.36 MB/sec
 Timing buffered disk reads:  64 MB in  6.04 seconds = 11.25 MB/sec

 

仅做了一个简单的修改,我们提高了这个设备的SCSI速度,比例达120.6%11.25/9.33*100= 120.6)。总体而言,会获得20%的速度提高。随后,我们把显著命令的数量再加倍、加四倍,最终达到255倍,我们发现当设置其值为16时性能达到最顶点(11.25 MB/sec)。如果被调节的位于一个集群中,所有都应该拥有相同的设置。

 

Unix系统下的小型计算机系统接口(SCSI)性能调优

Unix系统下的小型计算机系统接口(SCSI)性能调优依赖于所设计的Unix版本和被调节的SCSI卡或者主板接口。让我们看一下Sun的例子。

在任何系统上,包括Sun,系统总线的带宽是固定的。如果总线上有太多设备的话,将导致比总线能处理的更多的数据量,总而导致竞争和包丢失。

SunSolaris操作系统上,命令prtdiag –v用来报告系统总线的配置信息。通过增加总线上设备的报告能力(使用prtdiag –v命令),并查看它们是否超过了总线的能力,就有可能了解总线是否超负荷。只要有可能,相同的主板上应该放置相似的接口卡,以使中断被定向到同一个CPU(及其缓冲区)。表31显示了一些典型Sun系统总线的能力信息:

Bus

Speed

Width

Burst Bandwidth

Sustained Bandwidth

MBus

33MHz

64 bit

264 MB/s

86 MB/s

MBus

36MHz

64 bit

288 MB/s

94 MB/s

MBus

40MHz

64 bit

320 MB/s

105 MB/s

MBus

50MHz

64 bit

400 MB/s

130 MB/s

XDBus

40MHz

64 bit

320 MB/s

250 MB/s

XDBus

50MHz

64 bit

400 MB/s

312 MB/s

UPA

72MHz

128 bit

1.15 GB/s

1 GB/s

UPA

83.5MHz

128 bit

1.3 GB/s

1.2 GB/s

UPA

100MHz

128 bit

1.5 GB/s

1.44 GB/s

Gigaplane

83.5MHz

256 bit

2.6 GB/s

2.5 GB/s

GigaplaneXB

100MHz

1024 bit

12.8 GB/s

12.8 GB/s

31:典型的总线能力

【责编:Peng】

--------------------next---------------------

阅读(257) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~