ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 关于queue_depth的调整

关于queue_depth的调整

原创 Linux操作系统 作者:kewin 时间:2012-02-08 21:59:39 0 删除 编辑
转个贴:
原网址:http://logzgh.itpub.net/post/3185/385356

queue_depth是指hdisk层面上命令队列的深度。

它针对的是hdisk,如果有多路径软件的话,它针对的就是多路径的hdisk,如powerdisk,dlmfdrv。

那如何调整queue_depth?何时调整呢?


首先我们来讲讲如何调整:

queue_depth的调整是针对hdisk层面的,对有多路径的系统对应的是多路径的盘,比如hdiskpower,dlmfdrv之类的。它是指hdisk层面的命令队列的长度。

对不同的系统均有不同的默认值。在Aix上面,hds默认是2。

如何判断是否需要调整queue_depth呢?

在aix5.3上面可以用iostat -D来查看。

其中sqfull表示的是自系统启动以来queue_depth超出的次数。

如何查看queue_depth的值呢?

lsattr">lsattr -El hdisk100
queue_depth 2 Queue DEPTH True

如何修改queue_depth的值呢?

chdev -l hdisk100 -a queue_depth=10

将queue_depth设置成多少呢?

这里有个简单的算法。

假如说底层raid group 是4d+4d,即8块盘。

现在15000rpm的fc盘的命令队列为16。8块盘总共的
列为16*8=128。

假如说这个raid group上面切了10个lun或ldev,则每个lun上面的queue_depth不要超过128/10=13。这个queue_depth不是越大越好。

下面是我做的一个简单的测试,仅供参考。

测试环境:p570+ams 1000

在Queue_depth为2时,用filemon捕获出来的数据是:

VOLUME: /dev/xxxx_8g_330 description: raw
reads: 9295 (0 errs)
read sizes (blks): avg 16.0 min 16 max 16 sdev 0.0
read times (msec): avg 237.801 min 3.170 max 5040.990 sdev 195.720
read sequences: 8627
read seq. lengths: avg 17.2 min 16 max 80 sdev 8.3
writes: 1194 (0 errs)
write sizes (blks): avg 16.0 min 16 max 16 sdev 0.0
write times (msec): avg 216.628 min 1.772 max 1008.997 sdev 158.778
write sequences: 1189
write seq. lengths: avg 16.1 min 16 max 32 sdev 1.0
seeks: 9816 (93.6%)
seek dist (blks): init 654592,
avg 1430016.9 min 16 max 15574496 sdev 2785095.0
time to next req(msec): avg 19.305 min 0.000 max 7453.750 sdev 130.291
throughput: 414.0 KB/sec
utilization: 0.98

在queue_depth为10时,

VOLUME: /dev/alisoft_8g_358 description: raw
reads: 163 (0 errs)
read sizes (blks): avg 16.0 min 16 max 16 sdev 0.0
read times (msec): avg 68.925 min 0.284 max 409.087 sdev 59.239
read sequences: 161
read seq. lengths: avg 16.2 min 16 max 32 sdev 1.8
writes: 506 (0 errs)
write sizes (blks): avg 16.0 min 16 max 16 sdev 0.0
write times (msec): avg 286.999 min 0.630 max 5199.092 sdev 530.080
write sequences: 506
write seq. lengths: avg 16.0 min 16 max 16 sdev 0.0
seeks: 667 (99.7%)
seek dist (blks): init 2229920,
avg 494006.0 min 16 max 3608224 sdev 627833.9
time to next req(msec): avg 275.798 min 0.000 max 15920.021 sdev 1366.996
throughput: 27.8 KB/sec
utilization: 1.79

基本上是这样的。从可以看出,queue_depth调大,读的响应时间是大大降低,但是写的响应时间却是升高了。如果写的比例不大的系统,总的来说系统性能还是大大提高了。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/40239/viewspace-715877/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2008-03-10

  • 博文量
    125
  • 访问量
    567486