*

Swift のグローバルクラスタ (3) Icehouse 開発版でのテスト結果

公開日: 最終更新日:2014/07/23  |  By  |  geo-replication, global cluster, Object Storage, OpenStack, Swift

2014.4.14 by You Yamagata

山縣です。


 前回前々回でグローバルクラスタ対応のために行われたringの変更ならびに proxyサーバの affinity について紹介しました。前回は評価用のシステムの構築に Havana版である swift 1.10.0 を使っています。現在 OpenStack のIcehouse 版は開発中ですが、swiftはこの間に 1.11.0, 1.12.0, 1.13.0 とリリースされています。この中で 1.11.0 の changelog においてquorum を満たした場合にレスポンスをすぐに返すようになったという記述があり、グローバルクラスタの動作の改善が期待できる変更点が記載されています(※quorum は分散システムでのトランザクションやデータレプリケーションでデータの読み書きを安全に行うための仕組み。コードを眺めた感じだとSwiftではアクセスした storage ノードの過半(==レプリカ数の過半)からレスポンスが返ってくれば処理を前に進めるという実装になっているようです)。
 そこで、前回と同様の環境を現在開発中の Icehouse 版で試してみました。Icehouse 版にすることで性能面での違いがあるのかを調べました。構築した環境は前回と同じで以下のようになります。



VPCや VPN の環境は前回と同じものを利用し、クラスタのインスタンスだけ Icehouse 用に別のものを用意しました。インスタンスのスペックなどは同じです。使用しているOS・OpenStack のパッケージは以下の通りです。

  • Ubuntu 12.04.4 LTS + CloudArchive (Icehouse repository)
  • Swift : 1.13.0-0ubuntu1~cloud
  • Keystone : 1:2014.1~b2-0ubuntu1~cloud0
  • Ceilometer : 2014.1~b2-0ubuntu1~cloud0



 構築にあたっては cloud archive の Icehouse 用リポジトリを使いましたが、まだ開発中という事もあり python ライブラリの依存関係を手動で解決したりする必要があるなど、手間がかかる印象でした。
 Swift 1.11.0 ではpost_quorum_timeout というパラメータが追加されました。この値は quorum が満たされた後にどの程度残りのリクエストを待つかを指定するものです。デフォルトで 0.5 秒となっています。今回は前回の set3 と同じ設定を set4 としてswift-benchでの計測を実施しました。またこの post_quorum_timeout を 0.2 に指定したものを set5, 0.0 に指定したものを set6 として計測しました。timeout を短くすればその分、1リクエストの応答時間が早くなり全体の性能改善を期待できるのではと期待できます。



計測条件名
region/zone
affinity
set1
1/4 (Tokyo)
なし
set2
3/8 (Tokyo, EU)
なし
set3
3/8 (Tokyo, EU)
あり

sorting_method = affinity
read_affinity = r1=100, r3=100
write_affinity = r1, r3
set4 (icehouse)
3/8 (Tokyo, EU)
あり

sorting_method = affinity
read_affinity = r1=100, r3=100
write_affinity = r1, r3
post_quorum_timeout = 0.5 (default,未指定)
set5 (icehouse)
3/8 (Tokyo, EU)
あり

sorting_method = affinity
read_affinity = r1=100, r3=100
write_affinity = r1, r3
post_quorum_timeout = 0.2
set6 (icehouse)
3/8 (Tokyo, EU)
あり

sorting_method = affinity
read_affinity = r1=100, r3=100
write_affinity = r1, r3
post_quorum_timeout = 0.0



 前回と同様 set4~set6 の環境で swift-bench の実行を複数回行い、前回までのグラフに追加してみました。



 結果を見ると結構微妙な感じです。まず GET については set3 ⇒ set4 で若干性能が上がっていますが、 post_quorum_timeout の値が小さくなる set5, set6 になるにしたがい、わずかながらパフォーマンスが落ちています。PUTでは havana版のset3 に比べて Icehouse版の方がわずかとはいえ性能が落ちています。こちらも set4⇒set5⇒set6 と性能が少しずつ落ちています。DELETE についてはデフォルト値である set4 こそ set3 より性能が落ちていますが、  set4 ⇒set5 ⇒ set6 と性能が明らかに改善しています。
 post_quorum_timeout はタイムアウト値なので短くすればその分、レスポンスは早くなると期待できるのでDELETE の結果については納得できます。一方でGET,PUTは傾向としてわずかながら性能が落ちるように見えるのは少し疑問ではあります。ただし性能の低下自体はごくわずかです。
 今回の結果を見る限り、Icehouse 版にしても大きな性能上の改善は期待できないように見受けられます。
 ただ逆に言えば性能面での大きな劣化もないですし、 Icehouse版は近いうちに出てくる Ubuntu 14.04 LTS の標準パッケージになります。したがって今後のサポートや改善を考えるのであれば、これから Swift を使うのであれば Icehouse 版を想定したほうが良いのではないかと思います。

 本ブログにおける私のSwift の一連の記事はこれで終わりとなります。お付き合いいただきありがとうございました。

関連記事

ODT2015logo

OpenStack Days Tokyo 2015

来る2月3日,4日にはOpenStack Days Tokyo 2015が開催されます。 日本国内

記事を読む

01.all

CentOS7 RDO Juno with Ceph

ご無沙汰しています。 先日のブログではCentOS7/RDOで OpenStack Juno環境を

記事を読む

no image

Keystone認証の利用 ~ Swiftによるオブジェクトストレージシステムの構築(9)

by You Yamagata 2013.05.13 (Last updated 2013

記事を読む

docker_all

OpenStack Summit in Paris (Day3)

by Ikuo Kumagai (@kumagai19o) 少し遅れましたがOpenStack S

記事を読む

no image

API による Swift の操作 ~ Swiftによるオブジェクトストレージシステムの構築(5)

by Yamagata 2013.2.25(Swift関連の記事の一覧はこちらをご覧ください)前回

記事を読む

no image

Ceilometer によるメータリング機能の導入 ~ Swiftによるオブジェクトストレージシステムの構築(11)

by You Yamagata 2013.10.18 (Swift関連の記事の一覧は 

記事を読む

検証構成

RDOを使用したOpenStack Juno環境の構築

ビットアイル総合研究所 田波です。 今回はRDOを使用してOpenStack Juno環境を構築し

記事を読む

no image

Grizzlyの新機能(1) ~ Swiftによるオブジェクトストレージシステムの構築(8)

by You Yamagata 2013.04.24(Swift関連の記事の一覧はこちらをご覧くださ

記事を読む

dpdk

OpenStack OVS VXLAN ネットワークの高速化

少し前の話になりますが、3月2日に開催された 日本仮想化技術株式会社様の OpenStack最新情報

記事を読む

no image

Swiftの概要 ~ Swiftによるオブジェクトストレージシステムの構築(1)

(Swift関連の記事の一覧はこちらをご覧ください)はじめまして、山縣と申します。私はビットアイル総

記事を読む

no image

ビットアイル総合研究所は、クラウド技術に関する調査&研究を通して、社会と会社に寄与していくことを目的に、ビットアイル・エクイニクスの企業内研究所として2011年8月に設立されました。

openstack-figure1-2x
COHO DataStream のCinder連携

OpenStack Cinder のストレージバックエンドとしてはCe

blog-ocata
Jujuで Ocataを含む様々なバージョンのOpenStack をデプロイする方法

祝OpenStack Ocata リリース!! ということで、早速デプ

newton
Juju Manual Cloud で OpenStack 環境構築

本当にご無沙汰しております。 この投稿はOpenStack Adve

top
HACK! THE Juju/MAAS

6/8~6/10まで幕張メッセで開催されたInterop 2016。皆

dpdk
OpenStack OVS VXLAN ネットワークの高速化

少し前の話になりますが、3月2日に開催された 日本仮想化技術株式会社様

→もっと見る

PAGE TOP ↑