SSDに関する検証 その8
<緊急特集!!SSDに関する検証 その8>
ペンネーム: ミラニスタ
磁気ディスクの代わりに半導体メモリにデータを記録するストレージ装置
SSD (Solid State Disk) の検証を行っています。
検証製品(富士ゼロックス株式会社様製 GigaExpress)の紹介URL⇒
http://www.fujixerox.co.jp/product/gigaexpress/
▼ 前回のおさらい
前回は、メーカーの方に GigaExpress についていろいろ質問をさせていた
だきました。(上村様、ありがとうございました。)
GigaExpress は、富士ゼロックス様の得意とする光伝送技術をベースとした
DRAM による高速なストレージということがお解かりになられたかと思います。
▼ 検証5:Select における SSD
検証4までは、Insert つまり書き込み処理における SSD 化の効果を確認し
ました。
読み込み処理ではどんな結果になるでしょうか?
Insert 処理ではバッチ処理を想定した大規模表への書き込みを、同時 20
セッションで実行させました。
検証5では、200 個の比較的小さな表(10,000レコード)を、それぞれ別の
セッションで同時に全件検索させてみます。
^^^^^^^^
同時 200 セッションというのは、とても原始的なやり方です。
===== スクリプトの例 ===== #!/bin/sh sh sel.sh 1 & ←引数はテーブルの番号 sh sel.sh 2 & ............. (200個並べる) sh sel.sh 200 & ==========================
sel.sh は、引数で受け取った番号のテーブル(SSD_10K_01 等)を全件検索
します。 ^^
各セッションは、別々のテーブルをアクセスするので、複数のセッションか
らのアクセスが特定のテーブルに集中することはありません。
また、スクリプトの最初と最後で、v$system_event の情報を取得し、待機
イベント毎の統計値の差分を求めました。
実行スクリプトの中身は以下のとおりです。
========================== $ cat begin_sys_event.sh #!/bin/sh sqlplus -s "(user)/(passwd)" << log/system_event_${NO}.log set lines 130 set pages 200 col EVENT for a60 create table END_SYS_EVENT as select * from v$system_event; select T1.EVENT,(T2.TOTAL_WAITS-T1.TOTAL_WAITS) "Waits" ,(T2.TIME_WAITED-T1.TIME_WAITED) "Time Waited" from BEGIN_SYS_EVENT T1,END_SYS_EVENT T2 where T1.EVENT = T2.EVENT and T1.WAIT_CLASS# in (8,9) and T2.WAIT_CLASS# in (8,9) and (T2.TOTAL_WAITS-T1.TOTAL_WAITS) > 0 order by T2.TOTAL_WAITS-T1.TOTAL_WAITS desc,T1.EVENT; quit EOF ==========================
ちなみに、WAIT_CLASS# = 8 と 9 は、User I/O と System I/O です。
▼ 検証準備
ファイル Config5-1 Config5-2 ------------------------------ ----------------- ------------- SYSTEM 表領域 磁気ディスク 磁気ディスク ユーザ表領域 磁気ディスク(sdb) SSD(sdc) UNDO 表領域 磁気ディスク 磁気ディスク 一時表領域 磁気ディスク 磁気ディスク オンライン REDO ログファイル 磁気ディスク 磁気ディスク
Select の場合は、DBバッファ・キャッシュの大きさもパフォーマンスに影
響を与えそうなので、
DB_CACHE_SIZE = 1024M : Config5-1-1, Config5-2-1
= 128M : Config5-1-2, Config5-2-2
という全部で4つのパターンで検証することにします。
各パターンの実行前には、「alter system flush buffer_cache」を実行し
キャッシュをクリアしました。
また、各パターンの実行中には「iostat -x 5」を実行させ、I/O の状況を
確認しました。
▼ 検証結果
◆ Config5-1-1 (磁気ディスク、DB_CACHE_SIZE = 1024M)
EVENT Waits Time Waited ------------------------------- ------ ------------ db file scattered read 20004 14773 db file sequential read 417 22432 read by other session 195 12068 control file sequential read 70 1 log file parallel write 32 21 control file parallel write 22 34 direct path write 2 0
iostat抜粋
CPU平均: %user %nice %sys %iowait %idle 92.71 0.00 7.29 0.00 0.00 デバイス: rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util sda 36.80 116.00 49.29 0.11 17.71 6.23 3.86 sdb 40731.70 2.10 243.62 1.87 5.61 2.64 88.20 sdc 0.00 0.00 0.00 0.00 0.00 0.00 0.00
◆ Config5-2-1 (SSD、DB_CACHE_SIZE = 1024M)
EVENT Waits Time Waited ------------------------------- ------ ------------ db file scattered read 20013 7387 db file sequential read 424 2530 control file sequential read 71 2 log file parallel write 42 24 control file parallel write 22 37 read by other session 14 305 direct path write 2 0
iostat抜粋
CPU平均: %user %nice %sys %iowait %idle 91.50 0.00 8.50 0.00 0.00 デバイス: rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util sda 24.05 91.38 32.91 0.11 16.03 7.83 5.49 sdb 276.25 1.30 145.79 0.01 2.11 2.11 0.80 sdc 39575.15 2.40 15.99 1.10 0.22 0.02 11.86
◆ Config5-2-1 (磁気ディスク、DB_CACHE_SIZE = 128M)
EVENT Waits Time Waited ------------------------------- ------ ------------ db file scattered read 20078 22371 db file sequential read 659 34185 read by other session 514 46831 control file sequential read 67 2 log file parallel write 35 25 control file parallel write 23 35 direct path write 2 0
iostat抜粋
CPU平均: %user %nice %sys %iowait %idle 92.65 0.00 7.35 0.00 0.00 デバイス: rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util sda 61.60 100.80 28.49 0.14 12.05 4.44 5.06 sdb 40994.10 9.30 240.91 1.15 3.37 2.12 72.20 sdc 0.00 0.00 0.00 0.00 0.00 0.00 0.00
◆ Config5-2-1 (SSD、DB_CACHE_SIZE = 128M)
EVENT Waits Time Waited ------------------------------ ------ ------------ db file scattered read 20128 4933 db file sequential read 718 3321 control file sequential read 71 1 log file parallel write 42 18 control file parallel write 23 40 read by other session 11 775 direct path write 2 0
iostat抜粋
CPU平均: %user %nice %sys %iowait %idle 90.31 0.00 9.69 0.00 0.00 デバイス: rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util sda 3.18 97.81 44.17 0.07 15.26 10.78 4.93 sdb 285.98 34.69 87.19 0.02 3.27 2.97 2.19 sdc 39918.09 17.50 16.01 1.10 0.22 0.02 11.35
さあ、これらの結果からどんなことが言えるでしょうか?
予想通りでもあるし、意外なことに気づかれたでしょうか?
考察は、お盆休みを挟んで次回までの夏休みの宿題です。
今回は、ここまで!!
来日中のバルサを知り合いが観に行ったらしい。(F田さん羨ましいです!)
今日も熱い、もとい暑いぜの茅ヶ崎にて