ITPub博客

首页 > 应用开发 > IT综合 > hds usp 100性能测试

hds usp 100性能测试

原创 IT综合 作者:logzgh 时间:2007-06-06 08:05:21 0 删除 编辑


环境:
HDS USP100
60块73G 15000RPM FC盘。
RAID 1+0 2d+2d
每个RAID组划4个ldev。
VG包含15个ldev(分别来自于15个raid组)
lv的stripe size为256k

(写的比较杂乱,没有系统整理过。^_^)

[@more@]


1.RAC的情况下,第一节点刚刚起动后:
set">sys@c2c>set timing on
set">sys@c2c>set autotrace on
select">sys@c2c>select count(*) from all_order;

COUNT(*)
----------
47969692

Elapsed: 00:10:39.25

Execution Plan
----------------------------------------------------------
0 SELECT STATEMENT Optimizer=CHOOSE
1 0 SORT (AGGREGATE)
2 1 TABLE ACCESS (FULL) OF 'ALL_ORDER'

Statistics
----------------------------------------------------------
384 recursive calls
0 db block gets
2595568 consistent gets
2568853 physical reads
28332 redo size
521 bytes sent via SQL*Net to client
655 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
4 sorts (memory)
0 sorts (disk)
1 rows processed

每秒大概31M


2.RAC情况下,启动第二个节点,第一个节点上做flush cache操作,在第一个节点做全表扫描:
select">sys@c2c>select count(*) from all_order;

COUNT(*)
----------
47981168

Elapsed: 00:08:07.00

Execution Plan
----------------------------------------------------------
0 SELECT STATEMENT Optimizer=CHOOSE
1 0 SORT (AGGREGATE)
2 1 TABLE ACCESS (FULL) OF 'ALL_ORDER'


Statistics
----------------------------------------------------------
0 recursive calls
0 db block gets
2600872 consistent gets
2572715 physical reads
617624 redo size
521 bytes sent via SQL*Net to client
655 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
1 rows processed

每秒41M左右。


3.关闭第二个节点,第一个节点做flush cache操作后,做全表扫描:
select">sys@c2c>select count(*) from all_order;

COUNT(*)
----------
47991916

Elapsed: 00:06:17.67

Execution Plan
----------------------------------------------------------
0 SELECT STATEMENT Optimizer=CHOOSE
1 0 SORT (AGGREGATE)
2 1 TABLE ACCESS (FULL) OF 'ALL_ORDER'


Statistics
----------------------------------------------------------
0 recursive calls
0 db block gets
2585819 consistent gets
2577323 physical reads
2828 redo size
521 bytes sent via SQL*Net to client
655 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
1 rows processed

每秒大概53M

4.关闭RAC,起动单节点(单独启动的时间比RAC起动的时间快很多,只需7秒钟,而RAC需要37秒):
select">c2c@c2c>select count(*) from all_order;

COUNT(*)
----------
47997473

1 row selected.

Elapsed: 00:06:10.84

Execution Plan
----------------------------------------------------------
0 SELECT STATEMENT Optimizer=CHOOSE
1 0 SORT (AGGREGATE)
2 1 TABLE ACCESS (FULL) OF 'ALL_ORDER'

Statistics
----------------------------------------------------------
0 recursive calls
0 db block gets
2603620 consistent gets
2566199 physical reads
115248 redo size
521 bytes sent via SQL*Net to client
655 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
1 rows processed

每秒54M左右。


5.在前面的基础上做一次flush,再做测试:
select">c2c@c2c>select count(*) from all_order;

COUNT(*)
----------
48007832

1 row selected.

Elapsed: 00:06:27.76

Execution Plan
----------------------------------------------------------
0 SELECT STATEMENT Optimizer=CHOOSE
1 0 SORT (AGGREGATE)
2 1 TABLE ACCESS (FULL) OF 'ALL_ORDER'

Statistics
----------------------------------------------------------
0 recursive calls
0 db block gets
2595040 consistent gets
2572773 physical reads
15916 redo size
521 bytes sent via SQL*Net to client
655 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
1 rows processed






6.在HP DL580,文件系统的环境下:
c2c@C2C> select count(*) from all_order;

COUNT(*)
----------
48086883

1 row selected.

Elapsed: 00:05:22.24

Execution Plan
----------------------------------------------------------
0 SELECT STATEMENT Optimizer=CHOOSE
1 0 SORT (AGGREGATE)
2 1 TABLE ACCESS (FULL) OF 'ALL_ORDER'


Statistics
----------------------------------------------------------
0 recursive calls
0 db block gets
3261650 consistent gets
2827347 physical reads
616 redo size
521 bytes sent via SQL*Net to client
656 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
1 rows processed

7.dd测试
time">root@trade:/sbin>time dd if=/dev/rtrade_8g_24 of=/dev/null bs=8m
1020+0 records in.
1020+0 records out.

real 0m42.53s
user 0m0.01s
sys 0m3.16s

在dd测试中,用topas可以看到总的吞吐量为190M左右。cpu耗在io wait上面的为6%左右,此lv位于center。
如果测试的lv位于outer edge的话, 则吞吐量可以达到250M左右。

bs采用128K的话, 则吞吐量大概为100M左右。
filemon结果如下:
FILE: /dev/rtrade_8g_2
opens: 1
total bytes xfrd: 8554545152
reads: 65266 (0 errs)
read sizes (bytes): avg 131072.0 min 131072 max 131072 sdev 0.0
read times (msec): avg 1.445 min 0.032 max 94.640 sdev 3.750
平均每次读需要1.445ms。但是最大需要94.64ms。

这种dd的情况下,最大需要94.64ms,这点想不通。不知道这94.64ms中真正消耗在硬盘读数据层面花了多少时间?
而中间过程又消耗了多少时间?

8.IM系统的测试
在im系统中找了一个大概22280M的表格,做全表扫描大约需要715秒,每秒大概31M的速度。当然这是台生产机,io有可能被buffer打断。


-----------

从中可以看出,在RAC的情况下,刚刚启动的性能,还不如flush cache后的性能。
而在单节点的情况下,刚刚启动的性能要稍微好于flush cache后的性能。

另外文件系统的读要比祼设备快。

还有在我的DB中为了提高random 访问,我都是尽可能地使用center的lv,所以全表扫描的性能会比采用outer edge的lv要差一些。

------------

9.lvmstat命令得出的结果如下:
Logical Volume iocnt Kb_read Kb_wrtn Kbps
c2c_8g_123 79411 3894792 77576 18.96
c2c_8g_122 75210 3906048 59224 18.93
c2c_8g_124 74831 3898736 51472 18.86
c2c_8g_121 68365 3953448 42688 19.08
c2c_8g_125 66162 3903544 27352 18.77
c2c_8g_127 62585 3960176 28496 19.04
c2c_8g_128 61537 4059192 24784 19.50
c2c_8g_126 60382 3927744 27616 18.88


可以算出每个lv上面的IOPS为79411/360=220左右。由于8个lv是共用60块盘的,即加到存储层面的总共每秒的IOPS为1764个,每个IO大约
为50Kb。从中可以看出远没有达到硬盘的限制。

在这个过程中,用topas看到的是cpu耗在io wait上面一般有10%左右,总的吞吐量大约为60M-80M/秒。从中表示主机在等待存储的响应。
说明主机应该没有什么问题。

对比dd的测试性能,可以发现这个全表扫描的速度基本上达到了dd的吞吐量了。


10.filemon的结果摘录如下:

VOLUME: /dev/c2c_8g_123 description: raw
reads: 15119 (0 errs)
read sizes (blks): avg 347.9 min 16 max 512 sdev 229.2
read times (msec): avg 3.576 min 0.152 max 271.009 sdev 8.758
read sequences: 3407
read seq. lengths: avg 1543.7 min 16 max 1572864 sdev 28754.7
writes: 8 (0 errs)
write sizes (blks): avg 16.0 min 16 max 16 sdev 0.0
write times (msec): avg 0.458 min 0.376 max 0.568 sdev 0.063
write sequences: 8
write seq. lengths: avg 16.0 min 16 max 16 sdev 0.0
seeks: 3415 (22.6%)
seek dist (blks): init 144,
avg 95961.2 min 16 max 3145728 sdev 419801.8
time to next req(msec): avg 38.153 min 0.000 max 27415.537 sdev 737.204
throughput: 4500.8 KB/sec
utilization: 0.09

从filemon的结果来分析,read times的时间平均为3.576 ms,最大时间达到271ms。同样这个时间不知道是消耗在哪里?
这个需要获得它的resource manager软件才能知道。
下次要找个emc的祼设备来测试一下。

(这种dd的情况下,最大需要94.64ms,这点想不通。不知道这94.64ms中真正消耗在硬盘读数据层面花了多少时间?
而中间过程又消耗了多少时间?)

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

请登录后发表评论 登录
全部评论
  • 博文量
    97
  • 访问量
    997586