Upload
tetsuro-yano
View
686
Download
2
Embed Size (px)
DESCRIPTION
オープンソースカンファレンス osc 2014 kansai@kyoto でお話しさせていただいた ownCloud 性能検証の資料です。
Citation preview
1
法人向けオンラインストレージマルチデバイスファイル共有ソリューション
ownCloud で構築する大規模オンラインストレージ~性能検証編~
株式会社ビーグッド・テクノロジー
BeGood Technology
自己紹介
経歴 : システム運用 4 年・システム開発 7 年経験 近頃は ownCloud の受託やアドオン開発・研究を担当 あだ名 : マギー ownCloud の好きな機能: External Storage その他 : 5 歳になった双子(男女)、 3 ヶ月の男の子の父親
髙橋 裕樹 (たかはし ゆうき)1980 年 10 月 31 日生まれ東京都八王子生まれ多摩育ち
ukitiyan
BeGood Technology
背景 機能面でエンタープライズであることは理解した
前段のスライドで説明のあった ownCloud は、確かに「 DropBox 」や「 Google Drive 」のような使い勝手を維持したまま、データ容量を気にせず安心して取引先や国内外拠点との安全なファイル共有するためのエンタープライズな機能を持ち合わせるプロダクトであることがわかった。
エンタープライズ環境に耐えうるのか? しかしながら、そもそもエンタープライズ環境に耐えうるプロダクトなのか。性能面は問題ないのか。
BeGood Technology
この手のネタは、この会場にいる方々の
大好物ですよね?
BeGood Technology
ということで、検証してみました。
BeGood Technology
シナリオ 社員 15,000 人が在席する某組織での利用想定
当該組織では、月末の 18:00 までに勤怠表ファイル (1M)を指定ディレクトリにアップロードするルールがあると仮定する。
リミット 30 分で社員全員がアップロードを実施するという過酷な負荷状況に耐えることができるか検証する。
画面遷移は、以下のとおり。
ログイン → 一覧表示 → 勤怠表ファイルアップロード → ログアウト
BeGood Technology
性能検証(その1) HA 含む 3 構成で計測する。
以下構成それぞれのベンチマークを計測する。1. apache×1 ノード、 MySQL×1 ノード2. nginx×1 ノード、 MySQL×1 ノード3. nginx×2 ノード、 MySQL×1 ノード
ownCloud Version 6.0.3 を採用する。 Active Directory でシングルサインオンを行う。 1 人 40 ファイルの想定で、 60 万ファイルを事前に
ロードしておく。 負荷量を 5 分間に均し、 5 分間連続で負荷をかける。
BeGood Technology
システム構成 (1)
Active Directory
App Server 1
JMeter Server1
JMeter Server2
DB Server
NFS ServerASUSTeK H81I-PLUSCore i5-4440S CPU @ 2.80GHz2 x 8192 MB128GB SSD Corsair Performance Pro CentOS 6.5apache, ownCloud
ASUSTeK H81I-PLUSCore i5-4440S CPU @ 2.80GHz2 x 8192 MB256GB SSD ADATA SP600CentOS 6.5, MySQL5.6,
Supermicro 113TQ-R700WBXeon E5-2630 @ 2.30GHz6 x 8192 MB8 x 1TB RAID 6CentOS 6.5
ASUSTeKH81I-PLUS
ASUSTeKH81I-PLUS
Supermicro113TQ-R700WB
JMeter Client
All network connections are 1GigE
apache×1 ノード、 MySQL×1 ノード
BeGood Technology
システム構成 (2)
Active Directory
App Server 1
JMeter Server1
JMeter Server2
DB Server
NFS Server
ASUSTeK H81I-PLUSCore i5-4440S CPU @ 2.80GHz2 x 8192 MB256GB SSD ADATA SP600CentOS 6.5, MySQL5.6,memcached
Supermicro 113TQ-R700WBXeon E5-2630 @ 2.30GHz6 x 8192 MB8 x 1TB RAID 6CentOS 6.5
ASUSTeKH81I-PLUS
ASUSTeKH81I-PLUS
Supermicro113TQ-R700WB
JMeter Client
All network connections are 1GigE
nginx×1 ノード、 MySQL×1 ノード
ASUSTeK H81I-PLUSCore i5-4440S CPU @ 2.80GHz2 x 8192 MB128GB SSD Corsair Performance Pro CentOS 6.5nginx, php-fpm, ownCloud
BeGood Technology
システム構成 (3)
Active Directory
App Server 1
App Server 2
LoadBalancer
JMeter Server1
JMeter Server2
DB Server
NFS Server
ASUSTeK H81I-PLUSCore i5-4440S CPU @ 2.80GHz2 x 8192 MB128GB SSD Corsair Performance Pro CentOS 6.5nginx, php-fpm, ownCloud
ASUSTeK H81I-PLUSCore i5-4440S CPU @ 2.80GHz2 x 8192 MB256GB SSD ADATA SP600CentOS 6.5, MySQL5.6,memcached
Supermicro 113TQ-R700WBXeon E5-2630 @ 2.30GHz6 x 8192 MB8 x 1TB RAID 6CentOS 6.5
LoadMaster 2200VIA C74Port GigaESingle arm+DSR950Mbps L4 throughputRequests per second (HTTP L7): 25,000
LoadMaster 2200
ASUSTeKH81I-PLUS
ASUSTeKH81I-PLUS
ASUSTeKH81I-PLUS
Supermicro113TQ-R700WB
JMeter Client
All network connections are 1GigE
nginx×2 ノード、 MySQL×1 ノード
BeGood Technology
性能検証結果(その1)
構成( 1 ) 構成( 2 ) 構成( 3 )
Throughput/S(Upload) 2.47 8.79 9.89
Throughput/S(Total) 28.44 62.23 69
5.00
15.00
25.00
35.00
45.00
55.00
65.00
Throughput
BeGood Technology
性能検証結果(その1) Response Time 、 Error(Upload)
Response Time 、 Error(Total)
report_count
response_time(ms)error(%)
average 90%_line
構成( 1 ) 963 44,201 76,309 14.1% 構成( 2 ) 2,785 3,608 6,783 1.0% 構成( 3 ) 3,000 1,446 3,645 0.0%
report_countresponse_time(ms)
error(%) average 90%_line
構成( 1 ) 11,224 17,001 40,467 20.4% 構成( 2 ) 19,773 2,025 3,747 1.3% 構成( 3 ) 21,000 376 761 0.0%
BeGood Technology
性能検証考察(その1) 構成 (3) は 15,000 人の組織で利用可能
Throughput 10/sec 、エラー率 0% という結果から、 構成 (3) は 15,000 人規模の組織で利用可能と言える。
Web サーバには余力があるが、 MySQL が 3000 クエリー /sec捌いており、テーブルロックが発生していることから、これがボトルネックとなっていると想定される。[Web01]
[DB]
BeGood Technology
引き続き、更なるエンタープライズ環境で性能調査してみました。
BeGood Technology
性能検証(その2) DB をスケールした構成で計測する。
前回 DB がボトルネックとなっていたので、 DB をMariaDB (GaleraCluster) とした以下構成でベンチマークを計測する。4. nginx×2 ノード、 MySQL×2 ノード
ownCloud Version 6.0.3 を採用する。 Active Directory でシングルサインオンを行う。 前回の倍の 30,000 人相当のシナリオでベンチマー
クを計測する。
BeGood Technology
システム構成 (4)
Active Directory
App DB Server 1
App DB Server 2
LoadBalancer
JMeter Server1
JMeter Server2
NFS Server
ASUSTeK H81I-PLUSCore i5-4440S CPU @ 2.80GHz 2 x 8192 MB128GB SSD Corsair Performance Pro CentOS 6.5nginx, php-fpm, ownCloud, MariaDB
Supermicro 113TQ-R700WBXeon E5-2630 @ 2.30GHz6 x 8192 MB8 x 1TB RAID 6CentOS 6.5LoadMaster 2200
VIA C74Port GigaESingle arm+DSR950Mbps L4 throughputRequests per second (HTTP L7): 25,000
LoadMaster 2200
ASUSTeK H81I-PLUS
Supermicro113TQ-R700WB
JMeter Client
All network connections are 1GigE
nginx×2 ノード+MariaDB(GaleraCluster)×2 ノード
ASUSTeK H81I-PLUS
MariaDB Galera Cluster
BeGood Technology
性能検証結果(その2)
構成( 3 ) 構成( 4 )
Throughput/S(Upload) 9.89 19.62
Throughput/S(Total) 69 136.81
10.00
30.00
50.00
70.00
90.00
110.00
130.00
Throughput
BeGood Technology
性能検証結果(その2) Response Time 、 Error(Upload)
Response Time 、 Error(Total)
report_count
response_time(ms)error(%)
average 90%_line 構成( 3 ) 3,000 1,446 3,645 0.0% 構成( 4 ) 6,000 425 695 0.0%
report_count
response_time(ms)error(%)
average 90%_line 構成( 3 ) 21,000 376 761 0.0% 構成( 4 ) 42,000 230 390 0.0%
BeGood Technology
性能検証考察(その2) 構成 (4) は 30,000 人の組織で利用可能
Throughput 20/sec 、エラー率 0% をマークした。 構成 (3) から 2倍の負荷を掛けているにも関わらず Res が
2倍速くなっており、見事なスケールを実現している。 Web サーバがボトルネックとなりつつあるが、この構成
であれば、 Web サーバを増やすことで更にスケール可能。
[Web01]
[DB]
BeGood Technology
弊社は APN です!AWS でも検証しました
BeGood Technology
性能検証(その3) AWS に構築した ownCloud で計測する。
以下構成でベンチマークを計測する。5. nginx(EC2)×3 ノード、 RDS
ownCloud Version 6.0.3 を採用する。 Active Directory でのシングルサインオンを行なわ
ない。 30,000 人相当のシナリオでベンチマークを計測する。 ストレージは S3 を採用する。 Instance Type は m3-Xlarge を採用する。(弊社代
表の許しが出たので)
BeGood Technology
システム構成 (5)
AmazonLinux(m3-xlarge)nginx, php-fpm, ownCloud
EC2(m3-xlarge)×3 ノード+ RDS(m3-xlarge)×1ノード
JMeterClient
JMeterServer1
JMeterServer2
Web1localcache
uploadbuffer
Gatewayinstance
Web2
Web3
m3-xlarge
StorageGateway Amazon S3
BeGood Technology
性能検証結果(その3)
構成( 4 ) 構成( 5 )
Throughput/S(Upload) 19.62 19.74
Throughput/S(Total) 136.81 157.05
10.00
30.00
50.00
70.00
90.00
110.00
130.00
150.00
Throughput
BeGood Technology
性能検証結果(その3) Response Time 、 Error(Upload)
Response Time 、 Error(Total)
report_count
response_time(ms)error(%)
average 90%_line 構成( 4 ) 6,000 425 695 0.0% 構成( 5 ) 6,000 458 594 0.0%
report_count
response_time(ms)error(%)
average 90%_line 構成( 4 ) 42,000 230 390 0.0% 構成( 5 ) 42,000 196 400 0.0%
BeGood Technology
性能検証考察(その3) AWS上でも 30,000 人の組織で利用可能
Throughput 20/sec 、エラー率 0% をマークした。 RDS にまだ余裕があるので、この規模であれば
RDS の Type を落としても OK 。 ストレージに S3 を利用しているため、データ容量
の心配がないという点がナイス。[Web01]
[RDS]
BeGood Technology
以上で終わります!
BeGood Technology
と内部向けに報告したところ、
弊社代表に「マギー、分散ストレージは
どうなん?」というブッコミがありまして . .
.
BeGood Technology
OSSカンファレンスですし、ストレージを GlusterFS
にして検証してみました
BeGood Technology
性能検証(その4) AWS に構築した ownCloud で計測する。
以下構成でベンチマークを計測する。6. nginx(EC2)×3 ノード、 RDS
ownCloud Version 6.0.3 を採用する。 Active Directory でのシングルサインオンを行なわな
い。 30,000 人相当のシナリオでベンチマークを計測する。 ストレージは GlusterFS を採用する。 Instance Type は m3-Xlarge を採用する。(そろそろ来月の支払いが怖い、、が弊社代表が言い出したことなので)
BeGood Technology
システム構成 (6) EC2(m3-xlarge)×3 ノード+ RDS(m3-xlarge)×1
ノード
JMeterClient
JMeterServer1
JMeterServer2
AmazonLinux(m3-xlarge)nginx, php-fpm, ownCloud
Web1
Web2
Web3
m3-xlarge
ReplicatedVolume
ReplicatedVolume
BeGood Technology
構成( 5 ) 構成( 6 )
Throughput/S(Upload) 19.74 19.19
Throughput/S(Total) 157.05 134.04
10.00
30.00
50.00
70.00
90.00
110.00
130.00
150.00
性能検証結果(その4) Throughput
BeGood Technology
性能検証考察(その4) 分散ストレージでも大丈夫!
Throughput 19.2/sec 、エラー率 0% をマークした。
AWS の場合、構成( 5 )より安価です。 性能重視で 3台の Replicated Volume にしてみま
したが、大容量ストレージに対応する場合は、 Distributed Volume にするのが良いでしょう。[Web01]
[RDS]
BeGood Technology
総括 場所を選ばないエンタープライズオンラインストレージ
ownCloud は、オンプレミス、クラウドと場所を選ばずにエンタープライズなオンラインストレージを構築することができる。
アプリの成熟度が高い 検証を行った各構成のボトルネックは、アプリではなく H/W
であり、 H/W の追加や構成変更でスケールしたことからアプリ自体の成熟度は高いと言える。
実はノウハウが必要な環境構築 ロギング、 PHPセッション、ジョブ管理、負荷分散構
成、 opcache 、 ulimit 、 GaleraCluster のinnodb_flush_log_at_trx_ commit プロパティ等、構築には実はノウハウが必要です。(でした)
BeGood Technology
総括 コモディティサーバでも大丈夫!
サーバ構成図では、分かりづらいところがありますが、今回のオンプレミス構成の実態は以下のような環境でした。
BeGood Technology
総括 最終的にはストレージの処理能力が課題
オンラインストレージということもあり、ストレージへのコストは高めです。構成 (4) では「 NAS 」、構成 (5) ではストレージゲートウェイが最終的なボトルネックとなりました。
BeGood Technology
最後に . . .
BeGood Technology
上記検証結果のホワイトペーパー公開します。(近日中 ... )
http://owncloud.jp
BeGood Technology
ハイエンドサーバーで検証してみたい!!検証環境貸してくれる企業さん大募集中です。
後程声かけてください
BeGood Technology
ご静聴ありがとうございました。