GCPでWindows Server2012R2で爆速LocalSSD!

そりゃ絶対やるよねw

Disk作成

gcloud compute disks create win2012 \
--image windows-2012-r2 \
--zone asia-east1-b — size 200GB

Instance作成

gcloud compute instances create win2012 \
--machine-type n1-highmem-16 \
--disk name=win2012 boot=yes \
--zone asia-east1-b \
--local-ssd interface=scsi \
--local-ssd interface=scsi \
--local-ssd interface=scsi \
--local-ssd interface=scsi

初めての起動はちょっと時間かかるので気長に待つ!

以下のコマンドで起動の状態確認できる

gcloud compute instances get-serial-port-output win2012 — zone asia-east1-b

User/Password確認

gcloud compute instances describe win2012 — zone asia-east1-b

おもむろにLocalSSD4本をStriping!w

Disk Management
  • allocate unit sizeは64kbで(ちゃんとGoogleの中の人に聞いてやった方が良かったかもしれないけど・・・
  • VolumeはとりあえずZ

Chocolatey Install!

※権限注意、administratorで実行する必要あり

sqlio install!

choco install sqlio

sqlio

前職だけど・・・w

ゲーム業界にいらっしゃるエンジニアのみなさんはご理解頂けると思いますが、個人的なそもそもの比較対象がFusion-IOなので今回はパラメータも合わせます。

あともう1個

config作る

Z:\\data\config.txt

Z:\data\test1.dat 10 0x0 10000
Z:\data\test2.dat 10 0x0 10000
Z:\data\test3.dat 10 0x0 10000
Z:\data\test4.dat 10 0x0 10000

sqlioのbat作る

Z:\\data\benchmark.bat

"C:\Program Files (x86)\SQLIO\sqlio.exe" -kR -s60 -fsequential -b4 -FZ:\data\config.txt > Z:\data\sequential_read_4k.txt
"C:\Program Files (x86)\SQLIO\sqlio.exe" -kW -s60 -fsequential -b4 -FZ:\data\config.txt > Z:\data\sequential_write_4k.txt
"C:\Program Files (x86)\SQLIO\sqlio.exe" -kR -s60 -frandom -b4 -FZ:\data\config.txt > Z:\data\random_read_4k.txt
"C:\Program Files (x86)\SQLIO\sqlio.exe" -kW -s60 -frandom -b4 -FZ:\data\config.txt > Z:\data\random_write_4k.txt
"C:\Program Files (x86)\SQLIO\sqlio.exe" -kR -s60 -fsequential -b8 -FZ:\data\config.txt > Z:\data\sequential_read_8k.txt
"C:\Program Files (x86)\SQLIO\sqlio.exe" -kW -s60 -fsequential -b8 -FZ:\data\config.txt > Z:\data\sequential_write_8k.txt
"C:\Program Files (x86)\SQLIO\sqlio.exe" -kR -s60 -frandom -b8 -FZ:\data\config.txt > Z:\data\random_read_8k.txt
C:\Program Files (x86)\SQLIO\sqlio.exe" -kW -s60 -frandom -b8 -FZ:\data\config.txt > Z:\data\random_write_8k.txt
"C:\Program Files (x86)\SQLIO\sqlio.exe" -kR -s60 -fsequential -b32 -FZ:\data\config.txt > Z:\data\sequential_read_32k.txt
"C:\Program Files (x86)\SQLIO\sqlio.exe" -kW -s60 -fsequential -b32 -FZ:\data\config.txt > Z:\data\sequential_write_32k.txt
"C:\Program Files (x86)\SQLIO\sqlio.exe" -kR -s60 -frandom -b32 -FZ:\data\config.txt > Z:\data\random_read_32k.txt
"C:\Program Files (x86)\SQLIO\sqlio.exe" -kW -s60 -frandom -b32 -FZ:\data\config.txt > Z:\data\random_write_32k.txt
"C:\Program Files (x86)\SQLIO\sqlio.exe" -kR -s60 -fsequential -b64 -FZ:\data\config.txt > Z:\data\sequential_read_64k.txt
"C:\Program Files (x86)\SQLIO\sqlio.exe" -kW -s60 -fsequential -b64 -FZ:\data\config.txt > Z:\data\sequential_write_64k.txt
"C:\Program Files (x86)\SQLIO\sqlio.exe" -kR -s60 -frandom -b64 -FZ:\data\config.txt > Z:\data\random_read_64k.txt
"C:\Program Files (x86)\SQLIO\sqlio.exe" -kW -s60 -frandom -b64 -FZ:\data\config.txt > Z:\data\random_write_64k.txt

結果!

  • Machine-Type: n1-highmem-16
  • vCPU: 16
  • memory: 104GB

Sequential Read(IOs/sec)

4kb: 125853.21
8kb: 109951.18
32kb: 70362.97
64kb: 44257.06

Sequential Write(IOs/sec)

4kb: 83185.18
8kb: 63833.61
32kb: 29044.83
64kb: 19141.27

Random Read(IOs/sec)

4kb: 123706.53
8kb: 113819.70
32kb: 71661.46
64kb: 40305.13

Random Write(IOs/sec)

4kb: 87340.35
8kb: 66466.43
32kb: 29415.58
64kb: 18865.06

感想!

はええw
これなら十分戦える!

インフラ的に本当に困ったときに
いわゆる力技なマッシブDBをGCPでやれる!

確かにオンプレほどの性能じゃないけど
オンプレのイニシャルコストと比較すると
1ヶ月1本当たり$81.75だもんなぁ〜

しかもDiskばっか速くなってる世の中で
もっと手前でサチっちゃうのは他にたくさんあるわけでw

しかし簡単にカード一枚で実現できるってのがやばいなぁw

あとで32coreまたやろう・・・

しかしMediumよ!
なぜTableがない・・・w