Riak / Riak-CS(Enterprise版)ベンチマークしましたTakashi Sogabe@rev4tInternet Initiative Japan., Inc.
調査したかったこと• riak / riak-cs どの程度のスループットが出る?• 最適なハードウェア構成は?• Ethernetは GbEと 10GbE どちらが良い?
評価したもの• riak– riak-1.3.0• riak-cs-ee– riak-cs-ee-1.3.0– マルチデータセンタレプリケーションは使っていないので、riak-cs-1.3.0 と読み替えても同じはず
ハードウェア構成• Fujitsu Primagy RX200 S6– 32台 + 2台(basho_bench用)• Memory: 24GB• CPU: Xeon(R) CPU L5630 @ 2.13GHz, 4 cores, 8HTs•...
basho_bench• bashoさんが提供している benchmarkツール– Cassandra, Hibariにも対応– 複数ノードへ同時アクセスすることもできる
RIAK BASHO_BENCH結果
Riak 設定値• /etc/riak– app.config, vm.config• デフォルト値を使用、IPアドレス情報のみ変更• Kernelsudo sysctl -w net.ipv4.tcp_max_syn_backlog=4000...
basho_bench 設定値• duration– 180sec• concurrent– 64• key_generator– {int_to_bin, {uniform_int, 100000}}• value_generator– {f...
basho_bench 測定条件• Keyは binary値を 1 – 100000 に設定– GET測定時は予め全データを preloadしておく• オブジェクトのサイズ: 10kB• API: PB(Protocol Buffer)• Ba...
GET node=1
GET node=3
PUT n=1
PUT n=3
PUT n=4
PUT n=8
考察• 良好なスループット性能– GET: 3ノード、PUT: 8ノードで basho_benchのGbEEthernet帯域を使い切った• Riakクラスタをフル稼働させるためには10GbEEthernetを使うか、ノード数を増やした上で複数...
RIAK-CS(ENTERPRISE版)BASHO_BENCH結果
Riak 設定値• Storage Backend– riak_cs_kv_multi_backend– Bashoドキュメントに従い、riak_kv_eleveldb_backend +riak_kv_bitcask_backend の併用構...
Riak-CS / stanchion 設定値• /etc/riak/app.config, vm.config– IPアドレスの設定と Admin user credentials の設定のみ実施– その他はデフォルト設定を用いた• /etc...
basho_bench測定値• duration– 60sec• key_generator– {int_to_str, {partitioned_sequential_int, 100000}}• value_generator– {func...
GET node=1 (10kB)
GET node=3(10kB)
GET node=4(10kB)
GET node=8(10kB)
GET node=16(10kB)
GET node=32(10kB)
GET node=1(10MB)Throughput Mbytes/secMbytes/sec
GET node=3(10MB)
PUT node=1
PUT node=3
PUT node=4
PUT node=8
PUT node=16
PUT node=32
DELETE node=1
DELETE node=3
DELETE node=4
DELETE node=8
DELETE node=16
DELETE node=32
Riak-CS 考察• 小さいオブジェクトだとスループット出ない– 10kBの場合、1ノード当たり 200 ops/sec程度(20Mbps程度の帯域しか使えない)– 10MBの場合、3ノードで Ethernet帯域を使い切れる
Upcoming SlideShare
Loading in...5
×

Riak / Riak-CS(Enterprise版) ベンチマークしました

2,224

Published on

Riak Source Code Reading #8 発表スライド
riak, riak-cs(エンタープライズ版)を basho_bench でベンチマークした結果をまとめました。検証方法についてはいくつか課題はありますが、自分で測定した結果が概ね正しいかどうかの判断材料にはなると思いますので、是非ご活用ください。

Published in: Technology

Riak / Riak-CS(Enterprise版) ベンチマークしました

  1. 1. Riak / Riak-CS(Enterprise版)ベンチマークしましたTakashi Sogabe@rev4tInternet Initiative Japan., Inc.
  2. 2. 調査したかったこと• riak / riak-cs どの程度のスループットが出る?• 最適なハードウェア構成は?• Ethernetは GbEと 10GbE どちらが良い?
  3. 3. 評価したもの• riak– riak-1.3.0• riak-cs-ee– riak-cs-ee-1.3.0– マルチデータセンタレプリケーションは使っていないので、riak-cs-1.3.0 と読み替えても同じはず
  4. 4. ハードウェア構成• Fujitsu Primagy RX200 S6– 32台 + 2台(basho_bench用)• Memory: 24GB• CPU: Xeon(R) CPU L5630 @ 2.13GHz, 4 cores, 8HTs• Ethernet: GbE– 全ノード 同一L2SW上に収容されています• HDD: 4TB– megaraid_sas (raid5)– Seagate ST91000640NS x 8台 (2.5inch SATA, 1TB, 7200rpm,64MB cache)– XFS
  5. 5. basho_bench• bashoさんが提供している benchmarkツール– Cassandra, Hibariにも対応– 複数ノードへ同時アクセスすることもできる
  6. 6. RIAK BASHO_BENCH結果
  7. 7. Riak 設定値• /etc/riak– app.config, vm.config• デフォルト値を使用、IPアドレス情報のみ変更• Kernelsudo sysctl -w net.ipv4.tcp_max_syn_backlog=40000sudo sysctl -w net.core.somaxconn=4000sudo sysctl -w net.ipv4.tcp_timestamps=0sudo sysctl -w net.ipv4.tcp_sack=1sudo sysctl -w net.ipv4.tcp_window_scaling=1sudo sysctl -w net.ipv4.tcp_fin_timeout=15sudo sysctl -w net.ipv4.tcp_keepalive_intvl=30sudo sysctl -w net.ipv4.tcp_tw_reuse=1sudo mount -o remount,noatime (device)echo deadline | sudo tee /sys/block/sda/queue/scheduler
  8. 8. basho_bench 設定値• duration– 180sec• concurrent– 64• key_generator– {int_to_bin, {uniform_int, 100000}}• value_generator– {fixed_bin, 10000}
  9. 9. basho_bench 測定条件• Keyは binary値を 1 – 100000 に設定– GET測定時は予め全データを preloadしておく• オブジェクトのサイズ: 10kB• API: PB(Protocol Buffer)• Backend DB: Bitcask• 測定毎にBitcaskの内容を削除、プロセスも再起動
  10. 10. GET node=1
  11. 11. GET node=3
  12. 12. PUT n=1
  13. 13. PUT n=3
  14. 14. PUT n=4
  15. 15. PUT n=8
  16. 16. 考察• 良好なスループット性能– GET: 3ノード、PUT: 8ノードで basho_benchのGbEEthernet帯域を使い切った• Riakクラスタをフル稼働させるためには10GbEEthernetを使うか、ノード数を増やした上で複数のbasho_benchから測定する必要がある
  17. 17. RIAK-CS(ENTERPRISE版)BASHO_BENCH結果
  18. 18. Riak 設定値• Storage Backend– riak_cs_kv_multi_backend– Bashoドキュメントに従い、riak_kv_eleveldb_backend +riak_kv_bitcask_backend の併用構成にする)• その他はRiakと同じ設定
  19. 19. Riak-CS / stanchion 設定値• /etc/riak/app.config, vm.config– IPアドレスの設定と Admin user credentials の設定のみ実施– その他はデフォルト設定を用いた• /etc/stanchion/app.config, vm.config– IPアドレスの設定のみ実施、その他はデフォルト設定
  20. 20. basho_bench測定値• duration– 60sec• key_generator– {int_to_str, {partitioned_sequential_int, 100000}}• value_generator– {function, basho_bench_driver_cs, bigfile_valgen,[[{file_size, 10000}…
  21. 21. GET node=1 (10kB)
  22. 22. GET node=3(10kB)
  23. 23. GET node=4(10kB)
  24. 24. GET node=8(10kB)
  25. 25. GET node=16(10kB)
  26. 26. GET node=32(10kB)
  27. 27. GET node=1(10MB)Throughput Mbytes/secMbytes/sec
  28. 28. GET node=3(10MB)
  29. 29. PUT node=1
  30. 30. PUT node=3
  31. 31. PUT node=4
  32. 32. PUT node=8
  33. 33. PUT node=16
  34. 34. PUT node=32
  35. 35. DELETE node=1
  36. 36. DELETE node=3
  37. 37. DELETE node=4
  38. 38. DELETE node=8
  39. 39. DELETE node=16
  40. 40. DELETE node=32
  41. 41. Riak-CS 考察• 小さいオブジェクトだとスループット出ない– 10kBの場合、1ノード当たり 200 ops/sec程度(20Mbps程度の帯域しか使えない)– 10MBの場合、3ノードで Ethernet帯域を使い切れる
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×