Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

1,465 views

Published on

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

Published in: Software
  • Be the first to comment

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

  1. 1. 1 法人向けオンラインストレージ マルチデバイスファイル共有ソリューション ownCloudで構築する大規模オンラインストレージ ~性能検証編~ 株式会社ビーグッド・テクノロジー
  2. 2. BeGood Technology 自己紹介  経歴 : システム運用 4年・システム開発 7年経験 近頃はownCloudの受託やアドオン開発・研究を担当  あだ名 : マギー  ownCloudの好きな機能: External Storage  その他 : 5歳になった双子(男女)、3ヶ月の男の子の父親 髙橋 裕樹 (たかはし ゆうき) 1980年10月31日生まれ 東京都八王子生まれ多摩育ち ukitiyan
  3. 3. BeGood Technology 背景  機能面でエンタープライズであることは理解した 前段のスライドで説明のあったownCloudは、確かに 「DropBox」や「Google Drive」のような使い勝手を維持したま ま、データ容量を気にせず安心して取引先や国内外拠点との 安全なファイル共有するためのエンタープライズな機能を持ち 合わせるプロダクトであることがわかった。  エンタープライズ環境に耐えうるのか? しかしながら、そもそもエンタープライズ環境に耐えうるプロ ダクトなのか。性能面は問題ないのか。
  4. 4. BeGood Technology この手のネタは、 この会場にいる方々の 大好物ですよね?
  5. 5. BeGood Technology ということで、 検証してみました。
  6. 6. BeGood Technology シナリオ  社員15,000人が在席する某組織での利用想定 当該組織では、月末の18:00までに勤怠表ファイル(1M)を指 定ディレクトリにアップロードするルールがあると仮定する。 リミット30分で社員全員がアップロードを実施するという過 酷な負荷状況に耐えることができるか検証する。 画面遷移は、以下のとおり。 ログイン→一覧表示→勤怠表ファイルアップロード→ログアウト
  7. 7. 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分間連続で負荷をかける。
  8. 8. BeGood Technology システム構成(1) Active Directory App Server 1 JMeter Server1 JMeter Server2 DB Server NFS Server ASUSTeK H81I-PLUS Core i5-4440S CPU @ 2.80GHz 2 x 8192 MB 128GB SSD Corsair Performance Pro CentOS 6.5 apache, ownCloud ASUSTeK H81I- PLUS Core i5-4440S CPU @ 2.80GHz 2 x 8192 MB 256GB SSD ADATA SP600 CentOS 6.5, MySQL5.6, Supermicro 113TQ-R700WB Xeon E5-2630 @ 2.30GHz 6 x 8192 MB 8 x 1TB RAID 6 CentOS 6.5 ASUSTeK H81I-PLUS ASUSTeK H81I-PLUS Supermicro 113TQ-R700WB JMeter Client All network connections are 1GigE  apache×1ノード、MySQL×1ノード
  9. 9. BeGood Technology システム構成(2) Active Directory App Server 1 JMeter Server1 JMeter Server2 DB Server NFS Server ASUSTeK H81I- PLUS Core i5-4440S CPU @ 2.80GHz 2 x 8192 MB 256GB SSD ADATA SP600 CentOS 6.5, MySQL5.6, memcached Supermicro 113TQ-R700WB Xeon E5-2630 @ 2.30GHz 6 x 8192 MB 8 x 1TB RAID 6 CentOS 6.5 ASUSTeK H81I-PLUS ASUSTeK H81I-PLUS Supermicro 113TQ-R700WB JMeter Client All network connections are 1GigE  nginx×1ノード、MySQL×1ノード ASUSTeK H81I-PLUS Core i5-4440S CPU @ 2.80GHz 2 x 8192 MB 128GB SSD Corsair Performance Pro CentOS 6.5 nginx, php-fpm, ownCloud
  10. 10. BeGood Technology システム構成(3) Active Directory App Server 1 App Server 2 Load Balancer JMeter Server1 JMeter Server2 DB Server NFS Server ASUSTeK H81I-PLUS Core i5-4440S CPU @ 2.80GHz 2 x 8192 MB 128GB SSD Corsair Performance Pro CentOS 6.5 nginx, php-fpm, ownCloud ASUSTeK H81I- PLUS Core i5-4440S CPU @ 2.80GHz 2 x 8192 MB 256GB SSD ADATA SP600 CentOS 6.5, MySQL5.6, memcached Supermicro 113TQ-R700WB Xeon E5-2630 @ 2.30GHz 6 x 8192 MB 8 x 1TB RAID 6 CentOS 6.5 LoadMaster 2200 VIA C7 4Port GigaE Single arm+DSR 950Mbps L4 throughput Requests per second (HTTP L7): 25,000 LoadMaster 2200 ASUSTeK H81I-PLUS ASUSTeK H81I-PLUS ASUSTeK H81I-PLUS Supermicro 113TQ-R700WB JMeter Client All network connections are 1GigE  nginx×2ノード、MySQL×1ノード
  11. 11. BeGood Technology 性能検証結果(その1) 構成(1) 構成(2) 構成(3) Throughput/S(Upload) 2.47 8.79 9.89 Throughput/S(Total) 28.44 62.23 69.00 0.00 10.00 20.00 30.00 40.00 50.00 60.00 70.00  Throughput
  12. 12. 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_count response_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%
  13. 13. BeGood Technology 性能検証考察(その1)  構成(3)は15,000人の組織で利用可能 Throughput 10/sec、エラー率 0% という結果から、 構 成(3)は15,000人規模の組織で利用可能と言える。 Webサーバには余力があるが、MySQLが3000クエリー /sec捌いており、テーブルロックが発生していることから、 これがボトルネックとなっていると想定される。 [Web01 ] [DB]
  14. 14. BeGood Technology 引き続き、更なる エンタープライズ環境で 性能調査してみました。
  15. 15. BeGood Technology 性能検証(その2)  DBをスケールした構成で計測する。 前回DBがボトルネックとなっていたので、 DBをMariaDB (GaleraCluster)とした以下構成でベンチマークを計測する。 4. nginx×2ノード、MySQL×2ノード ownCloud Version 6.0.3を採用する。 Active Directoryでシングルサインオンを行う。 前回の倍の30,000人相当のシナリオでベンチマークを計 測する。
  16. 16. BeGood Technology システム構成(4) Active Directory App DB Server 1 App DB Server 2 Load Balancer JMeter Server1 JMeter Server2 NFS Server ASUSTeK H81I-PLUS Core i5-4440S CPU @ 2.80GHz 2 x 8192 MB 128GB SSD Corsair Performance Pro CentOS 6.5 nginx, php-fpm, ownCloud, MariaDB Supermicro 113TQ-R700WB Xeon E5-2630 @ 2.30GHz 6 x 8192 MB 8 x 1TB RAID 6 CentOS 6.5LoadMaster 2200 VIA C7 4Port GigaE Single arm+DSR 950Mbps L4 throughput Requests per second (HTTP L7): 25,000 LoadMaster 2200 ASUSTeK H81I-PLUS Supermicro 113TQ-R700WB JMeter Client All network connections are 1GigE  nginx×2ノード+MariaDB(GaleraCluster)×2ノード ASUSTeK H81I-PLUS MariaDB Galera Cluster
  17. 17. BeGood Technology 性能検証結果(その2) 構成(3) 構成(4) Throughput/S(Upload) 9.89 19.62 Throughput/S(Total) 69.00 136.81 0.00 20.00 40.00 60.00 80.00 100.00 120.00  Throughput
  18. 18. 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%
  19. 19. BeGood Technology 性能検証考察(その2)  構成(4)は30,000人の組織で利用可能 Throughput 20/sec、エラー率 0% をマークした。 構成(3)から2倍の負荷を掛けているにも関わらずResが2 倍速くなっており、見事なスケールを実現している。 Webサーバがボトルネックとなりつつあるが、この構成で あれば、Webサーバを増やすことで更にスケール可能。 [Web01 ] [DB]
  20. 20. BeGood Technology 弊社はAPNです! AWSでも検証しました
  21. 21. BeGood Technology 性能検証(その3)  AWSに構築したownCloudで計測する。 以下構成でベンチマークを計測する。 5. nginx(EC2)×3ノード、RDS ownCloud Version 6.0.3を採用する。 Active Directoryでのシングルサインオンを行なわない。 30,000人相当のシナリオでベンチマークを計測する。 ストレージはS3を採用する。 Instance Typeはm3-Xlargeを採用する。(弊社代表の許し が出たので)
  22. 22. BeGood Technology システム構成(5) AmazonLinux(m3- xlarge) nginx, php-fpm, ownCloud  EC2(m3-xlarge)×3ノード+ RDS(m3-xlarge)×1ノード JMeter Client JMeter Server1 JMeter Server2 Web1 local cache upload buffer Gateway instance Web2 Web3 m3-xlarge Storage Gateway Amazon S3
  23. 23. BeGood Technology 性能検証結果(その3) 構成(4) 構成(5) Throughput/S(Upload) 19.62 19.74 Throughput/S(Total) 136.81 157.05 0.00 20.00 40.00 60.00 80.00 100.00 120.00 140.00  Throughput
  24. 24. 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%
  25. 25. BeGood Technology 性能検証考察(その3)  AWS上でも30,000人の組織で利用可能 Throughput 20/sec、エラー率 0% をマークした。 RDSにまだ余裕があるので、この規模であればRDSの Typeを落としてもOK。 ストレージにS3を利用しているため、データ容量の心配 がないという点がナイス。 [Web01 ] [RDS]
  26. 26. BeGood Technology 以上で終わります!
  27. 27. BeGood Technology と内部向けに報告したところ、 弊社代表に 「マギー、分散ストレージはどう なん?」 というブッコミがありまして. . .
  28. 28. BeGood Technology OSSカンファレンスですし、 ストレージをGlusterFS にして 検証してみました
  29. 29. BeGood Technology 性能検証(その4)  AWSに構築したownCloudで計測する。 以下構成でベンチマークを計測する。 6. nginx(EC2)×3ノード、RDS ownCloud Version 6.0.3を採用する。 Active Directoryでのシングルサインオンを行なわない。 30,000人相当のシナリオでベンチマークを計測する。 ストレージはGlusterFSを採用する。 Instance Typeはm3-Xlargeを採用する。(そろそろ来月の 支払いが怖い、、が弊社代表が言い出したことなので)
  30. 30. BeGood Technology システム構成(6)  EC2(m3-xlarge)×3ノード+ RDS(m3-xlarge)×1ノード JMeter Client JMeter Server1 JMeter Server2 AmazonLinux(m3- xlarge) nginx, php-fpm, ownCloud Web1 Web2 Web3 m3-xlarge Replicated Volume Replicated Volume
  31. 31. BeGood Technology 構成(5) 構成(6) Throughput/S(Upload) 19.74 19.19 Throughput/S(Total) 157.05 134.04 0.00 20.00 40.00 60.00 80.00 100.00 120.00 140.00 性能検証結果(その4)  Throughput
  32. 32. BeGood Technology 性能検証考察(その4)  分散ストレージでも大丈夫! Throughput 19.2/sec、エラー率 0% をマークした。 AWSの場合、構成(5)より安価です。 性能重視で3台のReplicated Volumeにしてみましたが、 大容量ストレージに対応する場合は、Distributed Volume にするのが良いでしょう。 [Web01 ] [RDS]
  33. 33. BeGood Technology 総括  場所を選ばないエンタープライズオンラインストレージ ownCloudは、オンプレミス、クラウドと場所を選ばずにエンター プライズなオンラインストレージを構築することができる。  アプリの成熟度が高い 検証を行った各構成のボトルネックは、アプリではなくH/Wであ り、H/Wの追加や構成変更でスケールしたことからアプリ自体 の成熟度は高いと言える。  実はノウハウが必要な環境構築 ロギング、PHPセッション、ジョブ管理、負荷分散構成、 opcache、ulimit、GaleraClusterのinnodb_flush_log_at_trx_ commitプロパティ等、構築には実はノウハウが必要です。(でし た)
  34. 34. BeGood Technology 総括  コモディティサーバでも大丈夫! サーバ構成図では、分かりづらいところがありますが、今 回のオンプレミス構成の実態は以下のような環境でした。
  35. 35. BeGood Technology 総括  最終的にはストレージの処理能力が課題 オンラインストレージということもあり、ストレージへのコス トは高めです。構成(4)では「NAS」、構成(5)ではストレー ジゲートウェイが最終的なボトルネックとなりました。
  36. 36. BeGood Technology 最後に. . .
  37. 37. BeGood Technology 上記検証結果のホワイトペーパー公 開します。 (近日中...) http://owncloud.jp
  38. 38. BeGood Technology ハイエンドサーバーで検証して みたい!! 検証環境貸してくれる企業さん 大募集中です。 後程声かけてください
  39. 39. BeGood Technology ご静聴 ありがとうございました。

×