Environment
Fedora 16, Oracle 10.2
AMD FX-6100 3.3G, 16GB ram
開啟5個process由data1 table中的資料經運算後,存放至data2 table。
期望RAID 0的高速可以大幅升運算效能。
Test 1
RAID 0 (SSD1+SSD2), stripe size 128kB , ext4 with OS block size 4k, DB block size 8k
/u01(RAID 0):temp table,data2 tables, redo log files
/home(7200rpm HD):data1 tables
/opt(7200rpm HD):system table, control files, undo tablespace
Result:data process time 2.68sec
Test 2
變更data1 table的位置,由較慢速的HD改放至RAID 0中。
RAID 0 (SSD1+SSD2), stripe size 128kB , ext4 with OS block size 4k, DB block size 8k
/u01(RAID 0):temp table,data1 tables, data2 tables, redo log files
/opt(7200rpm HD):system table, control files, undo tablespace
Result:data process time 2.79sec
看來資料集中在一個I/O,即便RAID 0快上很多,在這個案例中是比較不利的。
Test 3
設定FILESYSTEMIO_OPTIONS=SETALL
ALTER SYSTEM SET FILESYSTEMIO_OPTIONS=SETALL SCOPE=SPFILE;
RAID 0 (SSD1+SSD2), stripe size 128kB , ext4 with OS block size 4k, DB block size 8k
/u01(RAID 0):temp table,data1 tables, data2 tables, redo log files
/opt(7200rpm HD):system table, control files, undo tablespace
Result:data process time 2.67sec
Fedora 16, Oracle 10.2
AMD FX-6100 3.3G, 16GB ram
開啟5個process由data1 table中的資料經運算後,存放至data2 table。
期望RAID 0的高速可以大幅升運算效能。
Test 1
RAID 0 (SSD1+SSD2), stripe size 128kB , ext4 with OS block size 4k, DB block size 8k
MAX | MIN | AVG | |
---|---|---|---|
Read | 1.0GB/s | 564.9MB/s | 803.7MB/s |
Write | 899.5MB/s | 353.1MB/s | 533.5MB/s |
/u01(RAID 0):temp table,data2 tables, redo log files
/home(7200rpm HD):data1 tables
/opt(7200rpm HD):system table, control files, undo tablespace
Result:data process time 2.68sec
Test 2
變更data1 table的位置,由較慢速的HD改放至RAID 0中。
RAID 0 (SSD1+SSD2), stripe size 128kB , ext4 with OS block size 4k, DB block size 8k
/u01(RAID 0):temp table,data1 tables, data2 tables, redo log files
/opt(7200rpm HD):system table, control files, undo tablespace
Result:data process time 2.79sec
看來資料集中在一個I/O,即便RAID 0快上很多,在這個案例中是比較不利的。
Test 3
設定FILESYSTEMIO_OPTIONS=SETALL
ALTER SYSTEM SET FILESYSTEMIO_OPTIONS=SETALL SCOPE=SPFILE;
RAID 0 (SSD1+SSD2), stripe size 128kB , ext4 with OS block size 4k, DB block size 8k
/u01(RAID 0):temp table,data1 tables, data2 tables, redo log files
/opt(7200rpm HD):system table, control files, undo tablespace
Result:data process time 2.67sec
Test 4
把RAID 0的stripe size由128k改至512k。
設定FILESYSTEMIO_OPTIONS=SETALL
ALTER SYSTEM SET FILESYSTEMIO_OPTIONS=SETALL SCOPE=SPFILE;
RAID 0 (SSD1+SSD2), stripe size 512kB , ext4 with OS block size 4k, DB block size 8k
/u01(RAID 0):temp table,data1 tables, data2 tables, redo log files
/opt(7200rpm HD):system table, control files, undo tablespace
Result:data process time 2.87sec
Test 5
把RAID 0的stripe size由512k改至256k。
設定FILESYSTEMIO_OPTIONS=SETALL
ALTER SYSTEM SET FILESYSTEMIO_OPTIONS=SETALL SCOPE=SPFILE;
RAID 0 (SSD1+SSD2), stripe size 256kB , ext4 with OS block size 4k, DB block size 8k
/u01(RAID 0):temp table,data1 tables, data2 tables, redo log files
/opt(7200rpm HD):system table, control files, undo tablespace
Result:data process time 2.91sec
Test 6
把RAID 0的stripe size由256k改至32k。
設定FILESYSTEMIO_OPTIONS=SETALL
ALTER SYSTEM SET FILESYSTEMIO_OPTIONS=SETALL SCOPE=SPFILE;
RAID 0 (SSD1+SSD2), stripe size 32kB , ext4 with OS block size 4k, DB block size 8k
/u01(RAID 0):temp table,data1 tables, data2 tables, redo log files
/opt(7200rpm HD):system table, control files, undo tablespace
Result:data process time 3.0sec
Test 7
綜合以上結論:
在RAID 0中,不管Stripe Size如何設定,都無法提升運算速度,甚至衰退。原因很可能是RAID 0的I/O速度已遠超過整體系統所需。所以在此測試中將檔案分散至不同的I/O,比放在單一卻高速的I/O中有利。且考量RAID 0的資料安全性薄弱,以此基礎作出如下配置:
設定FILESYSTEMIO_OPTIONS=SETALL
ALTER SYSTEM SET FILESYSTEMIO_OPTIONS=SETALL SCOPE=SPFILE;
SSD1, ext4 no journal with OS block size 4k, DB block size 8k
SSD2, ext4 no journal with OS block size 4k, DB block size 8k
/u01(SSD1):data1 tables, temp table, redo log files, undo tablespace
/u02(SSD2):data2 tables
/opt(7200rpm HD):system table, control files
Result:data process time 2.77sec
得出的結果並不差。
Test 8
最後,以此配置為基礎,對資料庫的index作微調,並且減少程式中不必要的運算,得到的改進效果卻最大。
設定FILESYSTEMIO_OPTIONS=SETALL
ALTER SYSTEM SET FILESYSTEMIO_OPTIONS=SETALL SCOPE=SPFILE;
SSD1, ext4 no journal with OS block size 4k, DB block size 8k
SSD2, ext4 no journal with OS block size 4k, DB block size 8k
/u01(SSD1):data1 tables, temp table, redo log files, undo tablespace
/u02(SSD2):data2 tables
/opt(7200rpm HD):system table, control files
Result:data process time 2.31sec
Test 9
最後的最後,把CPU超頻到4.0G。其它維持不變。
設定FILESYSTEMIO_OPTIONS=SETALL
ALTER SYSTEM SET FILESYSTEMIO_OPTIONS=SETALL SCOPE=SPFILE;
SSD1, ext4 no journal with OS block size 4k, DB block size 8k
SSD2, ext4 no journal with OS block size 4k, DB block size 8k
/u01(SSD1):data1 tables, temp table, redo log files, undo tablespace
/u02(SSD2):data2 tables
/opt(7200rpm HD):system table, control files
Result:data process time 1.97sec
把RAID 0的stripe size由128k改至512k。
設定FILESYSTEMIO_OPTIONS=SETALL
ALTER SYSTEM SET FILESYSTEMIO_OPTIONS=SETALL SCOPE=SPFILE;
RAID 0 (SSD1+SSD2), stripe size 512kB , ext4 with OS block size 4k, DB block size 8k
MAX | MIN | AVG | |
---|---|---|---|
Read | 989.6MB/s | 461.5MB/s | 859.3MB/s |
/u01(RAID 0):temp table,data1 tables, data2 tables, redo log files
/opt(7200rpm HD):system table, control files, undo tablespace
Result:data process time 2.87sec
Test 5
把RAID 0的stripe size由512k改至256k。
設定FILESYSTEMIO_OPTIONS=SETALL
ALTER SYSTEM SET FILESYSTEMIO_OPTIONS=SETALL SCOPE=SPFILE;
RAID 0 (SSD1+SSD2), stripe size 256kB , ext4 with OS block size 4k, DB block size 8k
MAX | MIN | AVG | |
---|---|---|---|
Read | 1.0GB/s | 693.3MB/s | 898.9MB/s |
Write | 933.4MB/s | 336.5MB/s | 579.3MB/s |
/u01(RAID 0):temp table,data1 tables, data2 tables, redo log files
/opt(7200rpm HD):system table, control files, undo tablespace
Result:data process time 2.91sec
Test 6
把RAID 0的stripe size由256k改至32k。
設定FILESYSTEMIO_OPTIONS=SETALL
ALTER SYSTEM SET FILESYSTEMIO_OPTIONS=SETALL SCOPE=SPFILE;
RAID 0 (SSD1+SSD2), stripe size 32kB , ext4 with OS block size 4k, DB block size 8k
MAX | MIN | AVG | |
---|---|---|---|
Read | 1.0GB/s | 459.4MB/s | 851.2MB/s |
Write | 857.7MB/s | 354.5MB/s | 534.9MB/s |
/u01(RAID 0):temp table,data1 tables, data2 tables, redo log files
/opt(7200rpm HD):system table, control files, undo tablespace
Result:data process time 3.0sec
Test 7
綜合以上結論:
在RAID 0中,不管Stripe Size如何設定,都無法提升運算速度,甚至衰退。原因很可能是RAID 0的I/O速度已遠超過整體系統所需。所以在此測試中將檔案分散至不同的I/O,比放在單一卻高速的I/O中有利。且考量RAID 0的資料安全性薄弱,以此基礎作出如下配置:
設定FILESYSTEMIO_OPTIONS=SETALL
ALTER SYSTEM SET FILESYSTEMIO_OPTIONS=SETALL SCOPE=SPFILE;
SSD1, ext4 no journal with OS block size 4k, DB block size 8k
SSD2, ext4 no journal with OS block size 4k, DB block size 8k
/u01(SSD1):data1 tables, temp table, redo log files, undo tablespace
/u02(SSD2):data2 tables
/opt(7200rpm HD):system table, control files
Result:data process time 2.77sec
得出的結果並不差。
Test 8
最後,以此配置為基礎,對資料庫的index作微調,並且減少程式中不必要的運算,得到的改進效果卻最大。
設定FILESYSTEMIO_OPTIONS=SETALL
ALTER SYSTEM SET FILESYSTEMIO_OPTIONS=SETALL SCOPE=SPFILE;
SSD1, ext4 no journal with OS block size 4k, DB block size 8k
SSD2, ext4 no journal with OS block size 4k, DB block size 8k
/u01(SSD1):data1 tables, temp table, redo log files, undo tablespace
/u02(SSD2):data2 tables
/opt(7200rpm HD):system table, control files
Result:data process time 2.31sec
和Test 7相比,效能增加近16.6%。
Test 9
最後的最後,把CPU超頻到4.0G。其它維持不變。
設定FILESYSTEMIO_OPTIONS=SETALL
ALTER SYSTEM SET FILESYSTEMIO_OPTIONS=SETALL SCOPE=SPFILE;
SSD1, ext4 no journal with OS block size 4k, DB block size 8k
SSD2, ext4 no journal with OS block size 4k, DB block size 8k
/u01(SSD1):data1 tables, temp table, redo log files, undo tablespace
/u02(SSD2):data2 tables
/opt(7200rpm HD):system table, control files
Result:data process time 1.97sec
和Test 8相比,效能增加近14.7%。
留言