39
BeGood Technology 1 法法法法法法法法法法法法法法 法法法法法法法法法法法法法法法法法法法法 ownCloud 法法法法法法法法法法法法法法法法法法 法法法法法法 ~~ 法法法法法法法法法 法法法法法法

オープンソースカンファレンス osc 2014 関西@京都 ownCloud性能検証

Embed Size (px)

DESCRIPTION

オープンソースカンファレンス osc 2014 kansai@kyoto でお話しさせていただいた ownCloud 性能検証の資料です。

Citation preview

Page 1: オープンソースカンファレンス osc 2014 関西@京都 ownCloud性能検証

1

法人向けオンラインストレージマルチデバイスファイル共有ソリューション

ownCloud で構築する大規模オンラインストレージ~性能検証編~

株式会社ビーグッド・テクノロジー

Page 2: オープンソースカンファレンス osc 2014 関西@京都 ownCloud性能検証

BeGood Technology

自己紹介

経歴 : システム運用 4 年・システム開発 7 年経験                  近頃は ownCloud の受託やアドオン開発・研究を担当 あだ名 : マギー ownCloud の好きな機能: External Storage その他 : 5 歳になった双子(男女)、 3 ヶ月の男の子の父親

髙橋 裕樹 (たかはし ゆうき)1980 年 10 月 31 日生まれ東京都八王子生まれ多摩育ち

ukitiyan

Page 3: オープンソースカンファレンス osc 2014 関西@京都 ownCloud性能検証

BeGood Technology

背景 機能面でエンタープライズであることは理解した

 前段のスライドで説明のあった ownCloud は、確かに「 DropBox 」や「 Google Drive 」のような使い勝手を維持したまま、データ容量を気にせず安心して取引先や国内外拠点との安全なファイル共有するためのエンタープライズな機能を持ち合わせるプロダクトであることがわかった。

エンタープライズ環境に耐えうるのか? しかしながら、そもそもエンタープライズ環境に耐えうるプロダクトなのか。性能面は問題ないのか。

Page 4: オープンソースカンファレンス osc 2014 関西@京都 ownCloud性能検証

BeGood Technology

この手のネタは、この会場にいる方々の

大好物ですよね?

Page 5: オープンソースカンファレンス osc 2014 関西@京都 ownCloud性能検証

BeGood Technology

ということで、検証してみました。

Page 6: オープンソースカンファレンス osc 2014 関西@京都 ownCloud性能検証

BeGood Technology

シナリオ 社員 15,000 人が在席する某組織での利用想定

当該組織では、月末の 18:00 までに勤怠表ファイル (1M)を指定ディレクトリにアップロードするルールがあると仮定する。

リミット 30 分で社員全員がアップロードを実施するという過酷な負荷状況に耐えることができるか検証する。

画面遷移は、以下のとおり。

ログイン → 一覧表示 → 勤怠表ファイルアップロード → ログアウト

Page 7: オープンソースカンファレンス osc 2014 関西@京都 ownCloud性能検証

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 分間連続で負荷をかける。

Page 8: オープンソースカンファレンス osc 2014 関西@京都 ownCloud性能検証

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 ノード

Page 9: オープンソースカンファレンス osc 2014 関西@京都 ownCloud性能検証

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

Page 10: オープンソースカンファレンス osc 2014 関西@京都 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 ノード

Page 11: オープンソースカンファレンス osc 2014 関西@京都 ownCloud性能検証

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

Page 12: オープンソースカンファレンス osc 2014 関西@京都 ownCloud性能検証

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%

Page 13: オープンソースカンファレンス osc 2014 関西@京都 ownCloud性能検証

BeGood Technology

性能検証考察(その1) 構成 (3) は 15,000 人の組織で利用可能

Throughput 10/sec 、エラー率 0% という結果から、 構成 (3) は 15,000 人規模の組織で利用可能と言える。

Web サーバには余力があるが、 MySQL が 3000 クエリー /sec捌いており、テーブルロックが発生していることから、これがボトルネックとなっていると想定される。[Web01]

[DB]

Page 14: オープンソースカンファレンス osc 2014 関西@京都 ownCloud性能検証

BeGood Technology

引き続き、更なるエンタープライズ環境で性能調査してみました。

Page 15: オープンソースカンファレンス osc 2014 関西@京都 ownCloud性能検証

BeGood Technology

性能検証(その2) DB をスケールした構成で計測する。

前回 DB がボトルネックとなっていたので、 DB をMariaDB (GaleraCluster) とした以下構成でベンチマークを計測する。4. nginx×2 ノード、 MySQL×2 ノード

ownCloud Version 6.0.3 を採用する。 Active Directory でシングルサインオンを行う。 前回の倍の 30,000 人相当のシナリオでベンチマー

クを計測する。

Page 16: オープンソースカンファレンス osc 2014 関西@京都 ownCloud性能検証

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

Page 17: オープンソースカンファレンス osc 2014 関西@京都 ownCloud性能検証

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

Page 18: オープンソースカンファレンス osc 2014 関西@京都 ownCloud性能検証

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%

Page 19: オープンソースカンファレンス osc 2014 関西@京都 ownCloud性能検証

BeGood Technology

性能検証考察(その2) 構成 (4) は 30,000 人の組織で利用可能

Throughput 20/sec 、エラー率 0% をマークした。 構成 (3) から 2倍の負荷を掛けているにも関わらず Res が

2倍速くなっており、見事なスケールを実現している。 Web サーバがボトルネックとなりつつあるが、この構成

であれば、 Web サーバを増やすことで更にスケール可能。

[Web01]

[DB]

Page 20: オープンソースカンファレンス osc 2014 関西@京都 ownCloud性能検証

BeGood Technology

弊社は APN です!AWS でも検証しました

Page 21: オープンソースカンファレンス osc 2014 関西@京都 ownCloud性能検証

BeGood Technology

性能検証(その3) AWS に構築した ownCloud で計測する。

以下構成でベンチマークを計測する。5. nginx(EC2)×3 ノード、 RDS

ownCloud Version 6.0.3 を採用する。 Active Directory でのシングルサインオンを行なわ

ない。 30,000 人相当のシナリオでベンチマークを計測する。 ストレージは S3 を採用する。 Instance Type は m3-Xlarge を採用する。(弊社代

表の許しが出たので)

Page 22: オープンソースカンファレンス osc 2014 関西@京都 ownCloud性能検証

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

Page 23: オープンソースカンファレンス osc 2014 関西@京都 ownCloud性能検証

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

Page 24: オープンソースカンファレンス osc 2014 関西@京都 ownCloud性能検証

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%

 

Page 25: オープンソースカンファレンス osc 2014 関西@京都 ownCloud性能検証

BeGood Technology

性能検証考察(その3) AWS上でも 30,000 人の組織で利用可能

Throughput 20/sec 、エラー率 0% をマークした。 RDS にまだ余裕があるので、この規模であれば

RDS の Type を落としても OK 。 ストレージに S3 を利用しているため、データ容量

の心配がないという点がナイス。[Web01]

[RDS]

Page 26: オープンソースカンファレンス osc 2014 関西@京都 ownCloud性能検証

BeGood Technology

以上で終わります!

Page 27: オープンソースカンファレンス osc 2014 関西@京都 ownCloud性能検証

BeGood Technology

と内部向けに報告したところ、

弊社代表に「マギー、分散ストレージは

どうなん?」というブッコミがありまして . .

.

Page 28: オープンソースカンファレンス osc 2014 関西@京都 ownCloud性能検証

BeGood Technology

OSSカンファレンスですし、ストレージを GlusterFS

にして検証してみました

Page 29: オープンソースカンファレンス osc 2014 関西@京都 ownCloud性能検証

BeGood Technology

性能検証(その4) AWS に構築した ownCloud で計測する。

以下構成でベンチマークを計測する。6. nginx(EC2)×3 ノード、 RDS

ownCloud Version 6.0.3 を採用する。 Active Directory でのシングルサインオンを行なわな

い。 30,000 人相当のシナリオでベンチマークを計測する。 ストレージは GlusterFS を採用する。 Instance Type は m3-Xlarge を採用する。(そろそろ来月の支払いが怖い、、が弊社代表が言い出したことなので)

Page 30: オープンソースカンファレンス osc 2014 関西@京都 ownCloud性能検証

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

Page 31: オープンソースカンファレンス osc 2014 関西@京都 ownCloud性能検証

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

Page 32: オープンソースカンファレンス osc 2014 関西@京都 ownCloud性能検証

BeGood Technology

性能検証考察(その4) 分散ストレージでも大丈夫!

Throughput 19.2/sec 、エラー率 0% をマークした。

AWS の場合、構成( 5 )より安価です。 性能重視で 3台の Replicated Volume にしてみま

したが、大容量ストレージに対応する場合は、 Distributed Volume にするのが良いでしょう。[Web01]

[RDS]

Page 33: オープンソースカンファレンス osc 2014 関西@京都 ownCloud性能検証

BeGood Technology

総括 場所を選ばないエンタープライズオンラインストレージ

ownCloud は、オンプレミス、クラウドと場所を選ばずにエンタープライズなオンラインストレージを構築することができる。

アプリの成熟度が高い 検証を行った各構成のボトルネックは、アプリではなく H/W

であり、 H/W の追加や構成変更でスケールしたことからアプリ自体の成熟度は高いと言える。

実はノウハウが必要な環境構築 ロギング、 PHPセッション、ジョブ管理、負荷分散構

成、 opcache 、 ulimit 、 GaleraCluster のinnodb_flush_log_at_trx_ commit プロパティ等、構築には実はノウハウが必要です。(でした)

Page 34: オープンソースカンファレンス osc 2014 関西@京都 ownCloud性能検証

BeGood Technology

総括 コモディティサーバでも大丈夫!

サーバ構成図では、分かりづらいところがありますが、今回のオンプレミス構成の実態は以下のような環境でした。

Page 35: オープンソースカンファレンス osc 2014 関西@京都 ownCloud性能検証

BeGood Technology

総括 最終的にはストレージの処理能力が課題

オンラインストレージということもあり、ストレージへのコストは高めです。構成 (4) では「 NAS 」、構成 (5) ではストレージゲートウェイが最終的なボトルネックとなりました。

Page 36: オープンソースカンファレンス osc 2014 関西@京都 ownCloud性能検証

BeGood Technology

最後に . . .

Page 37: オープンソースカンファレンス osc 2014 関西@京都 ownCloud性能検証

BeGood Technology

上記検証結果のホワイトペーパー公開します。(近日中 ... )

http://owncloud.jp

Page 38: オープンソースカンファレンス osc 2014 関西@京都 ownCloud性能検証

BeGood Technology

ハイエンドサーバーで検証してみたい!!検証環境貸してくれる企業さん大募集中です。

後程声かけてください

Page 39: オープンソースカンファレンス osc 2014 関西@京都 ownCloud性能検証

BeGood Technology

ご静聴ありがとうございました。