Copyright © 2018 Growth xPartners, Inc.
この 作品 は クリエイティブ・コモンズ 表示 - 非営利 - 継承 4.0 国際 ライセンスの下に提供されています。
Confluence/Jira
パフォーマンスチューニングポイント
2018/2/2
グロースエクスパートナーズ(株)
大中浩行
第26回 Tokyo Atlassian ユーザーグループ
Copyright © 2018 Growth xPartners, Inc.
• 大中浩行(Ohanaka,Hiroyuki)
• グロースエクスパートナーズ(株)
アーキテクチャーソリューション部
テクニカルリード
• Atlassian Certified System Administrator
1
Copyright © 2018 Growth xPartners, Inc.
弊社について
• グロースエクスパートナーズ株式会社
• 所在 東京都新宿区西新宿 新宿野村ビル24・25階
• 2010年よりパートナー(現ソリューションパートナー)
• http://www.gxp.co.jp/atlassian/
• https://twitter.com/GxPAtlassian/
2
Copyright © 2018 Growth xPartners, Inc.
今日お話しすること
• サイジングについて
• Java VMのパラメーターについて
• 接続数関連のパラメーターについて
• トラブルシューティングについて
3
Copyright © 2018 Growth xPartners, Inc.
サイジングについて
Java VMのパラメーターについて
接続数関連のパラメーターについて
トラブルシューティングについて
2018/2/2
4
Copyright © 2018 Growth xPartners, Inc.
その前に、チューニングについての原則
• アトラシアン製品は、Apache Tomcat(Tomcat)上に
アプリケーションがデプロイされて動作しています。
(Bitbucket Serverを除く)
• パフォーマンスを考える上では、Javaで書かれたWeb
アプリケーションをチューニングする上での原則を適
用しながら進めていくことになります。
5
Copyright © 2018 Growth xPartners, Inc.
環境について
• Jira Software(以下Jira) 7.6.3 + Confluence 6.7.0
• Server(オンプレミス) 版
• CentOS Linux 7 1708 (64bit)
• PostgreSQL 9.6.6
6
Copyright © 2018 Growth xPartners, Inc.
• 弊社の顧客でパフォーマンスチューニングを行った時
の事例がベースです。
• Jira: 130プロジェクト 約90000チケット
(200~500チケット/日)
• Confluence: 240スペース 約20万ページ
(300~500ページ/日)
• 約1200ユーザー
7
Copyright © 2018 Growth xPartners, Inc.
Jiraのサイジング
• Jira Sizing Guide
⁃ https://confluence.atlassian.com/enterprise/jira-sizing-
guide-461504623.html
8
Copyright © 2018 Growth xPartners, Inc.
Confluenceのサイジング
• Server Hardware Requirements Guide
⁃ https://confluence.atlassian.com/doc/server-hardware-
requirements-guide-30736403.html
• 同時編集機能が有効かどうかで、必要となるリソース
が変化することに注意
9
Copyright © 2018 Growth xPartners, Inc.
現場感覚でのサイジングの目安
• うまくいくチーム開発のツール戦略
⁃ SoftWare Design連載(リックソフト様)
⁃ 第21回 Atlassian製品を最適に運用するためのポイント(前
編):うまくいくチーム開発のツール戦略
⁃ http://gihyo.jp/dev/serial/01/teamdev-
toolstrategy/0021
10
Copyright © 2018 Growth xPartners, Inc.
リソースの割当について
• 原則は、「一つの仮想マシン(VM)に一つのアプリケー
ション」
• サイジングおよび、運用する上で考える要素を単純に
するため
• 障害が発生した場合の影響範囲を限定するため
11
Copyright © 2018 Growth xPartners, Inc.
• 個別の環境における最適値を求めるには、計測が不可
欠
• ユーザー数や使用頻度の増減によっても、必要なスペ
ックは変化してくる
12
Copyright © 2018 Growth xPartners, Inc.
モニタリングしましょう(図はMackerel)
13
Copyright © 2018 Growth xPartners, Inc.
リソースの割当について(続き)
• ディスクは拡張可能な構成にすること
⁃ 添付ファイルは増えることがあっても減ることがないため
⁃ 例)
➢ Elastic Volumn(AWS EBS)
• https://aws.amazon.com/jp/blogs/news/amazon-ebs-update-new-elastic-
volumes-change-everything/
➢ LVM
14
Copyright © 2018 Growth xPartners, Inc.
サイジングについて
Java VMのパラメーターについて
接続数関連のパラメーターについて
トラブルシューティングについて
2018/2/2
15
Copyright © 2018 Growth xPartners, Inc.
JVMについて
• システム要件的にはJDKでもJREでも動作しますが、
JDKを使って起動することを推奨します
• JREにはJVMの運用系のコマンド(jstat/jstack/jps等)
が同梱されておらず、これらが性能の計測やトラブル
シューティングで必要になる場合があるためです
16
Copyright © 2018 Growth xPartners, Inc.
JVMのパラーメーターについて
• ヒープはアプリケーションの規模によって調整する
(インストールディレクトリ)
(インストールディレクトリ)/bin/setenv.shで設定
17
Copyright © 2018 Growth xPartners, Inc.
setenv.sh
• Jiraの場合
• Confluenceの場合
18
JVM_MINIMUM_MEMORY="1384m"
JVM_MAXIMUM_MEMORY="1768m"
CATALINA_OPTS="-Xms2048m -Xmx2048m -
XX:+UseG1GC ${CATALINA_OPTS}"
Copyright © 2018 Growth xPartners, Inc.
• パーマネント領域は(-XX:MaxPermSize)はJava8で廃
止されました(Confluence5.8/JIRA7.0以降)
• Java8から導入されたメタスペース(-
XX:MaxMetaspaceSize)のパラメーターは指定しない
で、OSのネイティブ領域の管理に任せることを推奨し
ます。(1アプリケーション1VMが前提)
19
Copyright © 2018 Growth xPartners, Inc.
サイジングについて
Java VMのパラメーターについて
接続数関連のパラメーターについて
トラブルシューティングについて
2018/2/2
20
Copyright © 2018 Growth xPartners, Inc.
スレッドプールのチューニング
• (インストールディレクトリー)/conf/server.xml
• 同時接続数が増えた場合に調整が必要
21
<Connector port="8080"
maxThreads="150"
minSpareThreads="25"
connectionTimeout="20000"
Copyright © 2018 Growth xPartners, Inc.
maxThreadsの調整にあたって考慮するポイント
• リバースプロキシーのTCPコネクションプール
• OSのプロセス数制限(ulimit -u)
• Jira/Confluenceのデータベースへのコネクションプ
ーリングの設定数とのバランス
⁃ 同時接続数を増やしても、データベースへの同時接続が可能な
数値を調整しないままだとデータベースに接続するところに頭
打ちになるため
22
Copyright © 2018 Growth xPartners, Inc.
Jiraの場合(dbcofnig.xml)
23
<jira-database-config>
<name>defaultDS</name>
<delegator-name>default</delegator-name>
<database-type>postgres72</database-type>
<schema-name>public</schema-name>
<jdbc-datasource>
(略)
<pool-min-size>20</pool-min-size>
<pool-max-size>20</pool-max-size>
<pool-max-wait>30000</pool-max-wait>
Copyright © 2018 Growth xPartners, Inc.
Confluenceの場合(confluence.cfg.xml)
<confluence-configuration>
(中略)
<property
name="hibernate.c3p0.max_size">60</property>
(以下略)
24
Copyright © 2018 Growth xPartners, Inc.
maxThreadsとデータベース接続数の関係の目安
• アトラシアン社ナレッジベース「Confluence slows
and times out during periods of high load due to
database connection pool」に記載があります。
⁃ https://confluence.atlassian.com/confkb/confluence-
slows-and-times-out-during-periods-of-high-load-due-
to-database-connection-pool-146407630.html
25
Copyright © 2018 Growth xPartners, Inc.
Optimize the database connection pool. This
defines the maximum number of connections in the
database pool. This number should be at least 10
counts higher or 25% higher (whichever value is
greater) than the number of HTTP threads will be
used in peak time (see below for setting HTTP
threads.)
26
Copyright © 2018 Growth xPartners, Inc.
Confluence6.7のヘルスチェックの新機能
Confluence6.7のリリースノートから(弊社訳)
私たちは Confluence サイトの問題を警告するためのヘ
ルスチェックを改善し続けています。
今回のリリースではアップグレード後のチェックを追加
しました。
HTTPリクエスト用のスレッドプールサイズとデータベ
ースコネクションプールサイズの関係が適切かどうかを
診断し、問題があれば警告します。
27
Copyright © 2018 Growth xPartners, Inc.
confluence.logのログ出力例
28
2018-01-31 17:34:41,920 WARN [localhost-startStop-1]
[confluence.impl.health.DefaultHealthCheckRunner] logEvent
Your database connection pool allows 60 connections, which is
not enough to support the 80 HTTP threads in your Tomcat
configuration. Either increase the pool size to at least 100
connections or reduce the maximum number of HTTP threads to
48 or fewer.
Copyright © 2018 Growth xPartners, Inc.
では、データベースへの同時接続数を増やせばいいのか
というと
データベース側で受け付けることができる最大接続数は
、データベース側の設定に依存する(例はPostgreSQLの
postgresql.confの場合)
29
max_connections = 100 # (change requires restart)
Copyright © 2018 Growth xPartners, Inc.
• httpの同時接続数と、アプリケーション上のコネクシ
ョンプーリングの最大接続数と、データベースサーバ
ー上の最大接続数と、それぞれのパラメーターのバラ
ンスを取りながら、チューニングすることが求められ
ます。
30
Copyright © 2018 Growth xPartners, Inc.
サイジングについて
Java VMのパラメーターについて
接続数関連のパラメーターについて
トラブルシューティングについて
2018/2/2
31
Copyright © 2018 Growth xPartners, Inc.
トラブルシューティング
パフォーマンス上の問題が発生し、調査を行う際、スレ
ッドダンプの取得が必要になる場合があります。
スレッドダンプとは、Javaプロセス上で動作するJavaス
レッド上でのスタックトレースを出力するもので、
JavaVM内のスレッドの動作の状況を調査するのに用い
ます。
32
Copyright © 2018 Growth xPartners, Inc.
Jira/Confluenceの管理画面で取得するSupport Zip内に
スレッドダンプの出力は含まれていますが、管理画面へ
のアクセスが出来ない場合はOSのシェル上からスレッ
ドダンプの取得を行います。
33
Copyright © 2018 Growth xPartners, Inc.
スレッドダンプの取得方法
• jpsコマンドでアプリケーションのPIDを特定する
34
$sudo /usr/java/default/bin/jps -v |grep jira
1278 Bootstrap -
Djava.util.logging.config.file=/opt/atlassian/jira/cur
rent/conf/logging.properties -
Djava.util.logging.manager=org.apache.juli.ClassLo
aderLogManager -Xms384m -Xmx768m(略)
Copyright © 2018 Growth xPartners, Inc.
スレッドダンプの取得方法
jstackコマンドでスレッドダンプを出力する
動作が停止しているスレッドを特定するため、複数回繰
り返して出力してください
35
$ sudo /usr/java/default/bin/jstack -F 1278
Copyright © 2018 Growth xPartners, Inc.
スレッドダンプの出力
Attaching to process ID 1278, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 25.152-b16
Deadlock Detection:
No deadlocks found.
Thread 5747: (state = BLOCKED)
- sun.misc.Unsafe.park(boolean, long) @bci=0 (Compiled frame; information may be imprecise)
- java.util.concurrent.locks.LockSupport.park(java.lang.Object) @bci=14, line=175 (Compiled frame)
- java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await() @bci=42, line=2039 (Compiled
frame)
- java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take() @bci=100, line=1088 (Compiled
frame)
- java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take() @bci=1, line=809 (Compiled frame)
- java.util.concurrent.ThreadPoolExecutor.getTask() @bci=149, line=1074 (Compiled frame)
- java.util.concurrent.ThreadPoolExecutor.runWorker(java.util.concurrent.ThreadPoolExecutor$Worker) @bci=26,
line=1134 (Interpreted frame)
- java.util.concurrent.ThreadPoolExecutor$Worker.run() @bci=5, line=624 (Interpreted frame)
- java.lang.Thread.run() @bci=11, line=748 (Interpreted frame)
36
Copyright © 2018 Growth xPartners, Inc.
まとめ
2018/2/2
37
Copyright © 2018 Growth xPartners, Inc.
• Confluence/Jiraのパフォーマンスチューニングは、
JavaのWebアプリケーションのチューニングのセオリ
ーを適用していくことになります。
• それぞれのパラメーターのバランスをとりましょう
• 継続的な計測が重要です。
38
Copyright © 2018 Growth xPartners, Inc.
ありがとうございました!
http://www.gxp.co.jp/atlassian/
twitter: @GxPAtlassian
39

Confluence/Jira パフォーマンスチューニングポイント

  • 1.
    Copyright © 2018Growth xPartners, Inc. この 作品 は クリエイティブ・コモンズ 表示 - 非営利 - 継承 4.0 国際 ライセンスの下に提供されています。 Confluence/Jira パフォーマンスチューニングポイント 2018/2/2 グロースエクスパートナーズ(株) 大中浩行 第26回 Tokyo Atlassian ユーザーグループ
  • 2.
    Copyright © 2018Growth xPartners, Inc. • 大中浩行(Ohanaka,Hiroyuki) • グロースエクスパートナーズ(株) アーキテクチャーソリューション部 テクニカルリード • Atlassian Certified System Administrator 1
  • 3.
    Copyright © 2018Growth xPartners, Inc. 弊社について • グロースエクスパートナーズ株式会社 • 所在 東京都新宿区西新宿 新宿野村ビル24・25階 • 2010年よりパートナー(現ソリューションパートナー) • http://www.gxp.co.jp/atlassian/ • https://twitter.com/GxPAtlassian/ 2
  • 4.
    Copyright © 2018Growth xPartners, Inc. 今日お話しすること • サイジングについて • Java VMのパラメーターについて • 接続数関連のパラメーターについて • トラブルシューティングについて 3
  • 5.
    Copyright © 2018Growth xPartners, Inc. サイジングについて Java VMのパラメーターについて 接続数関連のパラメーターについて トラブルシューティングについて 2018/2/2 4
  • 6.
    Copyright © 2018Growth xPartners, Inc. その前に、チューニングについての原則 • アトラシアン製品は、Apache Tomcat(Tomcat)上に アプリケーションがデプロイされて動作しています。 (Bitbucket Serverを除く) • パフォーマンスを考える上では、Javaで書かれたWeb アプリケーションをチューニングする上での原則を適 用しながら進めていくことになります。 5
  • 7.
    Copyright © 2018Growth xPartners, Inc. 環境について • Jira Software(以下Jira) 7.6.3 + Confluence 6.7.0 • Server(オンプレミス) 版 • CentOS Linux 7 1708 (64bit) • PostgreSQL 9.6.6 6
  • 8.
    Copyright © 2018Growth xPartners, Inc. • 弊社の顧客でパフォーマンスチューニングを行った時 の事例がベースです。 • Jira: 130プロジェクト 約90000チケット (200~500チケット/日) • Confluence: 240スペース 約20万ページ (300~500ページ/日) • 約1200ユーザー 7
  • 9.
    Copyright © 2018Growth xPartners, Inc. Jiraのサイジング • Jira Sizing Guide ⁃ https://confluence.atlassian.com/enterprise/jira-sizing- guide-461504623.html 8
  • 10.
    Copyright © 2018Growth xPartners, Inc. Confluenceのサイジング • Server Hardware Requirements Guide ⁃ https://confluence.atlassian.com/doc/server-hardware- requirements-guide-30736403.html • 同時編集機能が有効かどうかで、必要となるリソース が変化することに注意 9
  • 11.
    Copyright © 2018Growth xPartners, Inc. 現場感覚でのサイジングの目安 • うまくいくチーム開発のツール戦略 ⁃ SoftWare Design連載(リックソフト様) ⁃ 第21回 Atlassian製品を最適に運用するためのポイント(前 編):うまくいくチーム開発のツール戦略 ⁃ http://gihyo.jp/dev/serial/01/teamdev- toolstrategy/0021 10
  • 12.
    Copyright © 2018Growth xPartners, Inc. リソースの割当について • 原則は、「一つの仮想マシン(VM)に一つのアプリケー ション」 • サイジングおよび、運用する上で考える要素を単純に するため • 障害が発生した場合の影響範囲を限定するため 11
  • 13.
    Copyright © 2018Growth xPartners, Inc. • 個別の環境における最適値を求めるには、計測が不可 欠 • ユーザー数や使用頻度の増減によっても、必要なスペ ックは変化してくる 12
  • 14.
    Copyright © 2018Growth xPartners, Inc. モニタリングしましょう(図はMackerel) 13
  • 15.
    Copyright © 2018Growth xPartners, Inc. リソースの割当について(続き) • ディスクは拡張可能な構成にすること ⁃ 添付ファイルは増えることがあっても減ることがないため ⁃ 例) ➢ Elastic Volumn(AWS EBS) • https://aws.amazon.com/jp/blogs/news/amazon-ebs-update-new-elastic- volumes-change-everything/ ➢ LVM 14
  • 16.
    Copyright © 2018Growth xPartners, Inc. サイジングについて Java VMのパラメーターについて 接続数関連のパラメーターについて トラブルシューティングについて 2018/2/2 15
  • 17.
    Copyright © 2018Growth xPartners, Inc. JVMについて • システム要件的にはJDKでもJREでも動作しますが、 JDKを使って起動することを推奨します • JREにはJVMの運用系のコマンド(jstat/jstack/jps等) が同梱されておらず、これらが性能の計測やトラブル シューティングで必要になる場合があるためです 16
  • 18.
    Copyright © 2018Growth xPartners, Inc. JVMのパラーメーターについて • ヒープはアプリケーションの規模によって調整する (インストールディレクトリ) (インストールディレクトリ)/bin/setenv.shで設定 17
  • 19.
    Copyright © 2018Growth xPartners, Inc. setenv.sh • Jiraの場合 • Confluenceの場合 18 JVM_MINIMUM_MEMORY="1384m" JVM_MAXIMUM_MEMORY="1768m" CATALINA_OPTS="-Xms2048m -Xmx2048m - XX:+UseG1GC ${CATALINA_OPTS}"
  • 20.
    Copyright © 2018Growth xPartners, Inc. • パーマネント領域は(-XX:MaxPermSize)はJava8で廃 止されました(Confluence5.8/JIRA7.0以降) • Java8から導入されたメタスペース(- XX:MaxMetaspaceSize)のパラメーターは指定しない で、OSのネイティブ領域の管理に任せることを推奨し ます。(1アプリケーション1VMが前提) 19
  • 21.
    Copyright © 2018Growth xPartners, Inc. サイジングについて Java VMのパラメーターについて 接続数関連のパラメーターについて トラブルシューティングについて 2018/2/2 20
  • 22.
    Copyright © 2018Growth xPartners, Inc. スレッドプールのチューニング • (インストールディレクトリー)/conf/server.xml • 同時接続数が増えた場合に調整が必要 21 <Connector port="8080" maxThreads="150" minSpareThreads="25" connectionTimeout="20000"
  • 23.
    Copyright © 2018Growth xPartners, Inc. maxThreadsの調整にあたって考慮するポイント • リバースプロキシーのTCPコネクションプール • OSのプロセス数制限(ulimit -u) • Jira/Confluenceのデータベースへのコネクションプ ーリングの設定数とのバランス ⁃ 同時接続数を増やしても、データベースへの同時接続が可能な 数値を調整しないままだとデータベースに接続するところに頭 打ちになるため 22
  • 24.
    Copyright © 2018Growth xPartners, Inc. Jiraの場合(dbcofnig.xml) 23 <jira-database-config> <name>defaultDS</name> <delegator-name>default</delegator-name> <database-type>postgres72</database-type> <schema-name>public</schema-name> <jdbc-datasource> (略) <pool-min-size>20</pool-min-size> <pool-max-size>20</pool-max-size> <pool-max-wait>30000</pool-max-wait>
  • 25.
    Copyright © 2018Growth xPartners, Inc. Confluenceの場合(confluence.cfg.xml) <confluence-configuration> (中略) <property name="hibernate.c3p0.max_size">60</property> (以下略) 24
  • 26.
    Copyright © 2018Growth xPartners, Inc. maxThreadsとデータベース接続数の関係の目安 • アトラシアン社ナレッジベース「Confluence slows and times out during periods of high load due to database connection pool」に記載があります。 ⁃ https://confluence.atlassian.com/confkb/confluence- slows-and-times-out-during-periods-of-high-load-due- to-database-connection-pool-146407630.html 25
  • 27.
    Copyright © 2018Growth xPartners, Inc. Optimize the database connection pool. This defines the maximum number of connections in the database pool. This number should be at least 10 counts higher or 25% higher (whichever value is greater) than the number of HTTP threads will be used in peak time (see below for setting HTTP threads.) 26
  • 28.
    Copyright © 2018Growth xPartners, Inc. Confluence6.7のヘルスチェックの新機能 Confluence6.7のリリースノートから(弊社訳) 私たちは Confluence サイトの問題を警告するためのヘ ルスチェックを改善し続けています。 今回のリリースではアップグレード後のチェックを追加 しました。 HTTPリクエスト用のスレッドプールサイズとデータベ ースコネクションプールサイズの関係が適切かどうかを 診断し、問題があれば警告します。 27
  • 29.
    Copyright © 2018Growth xPartners, Inc. confluence.logのログ出力例 28 2018-01-31 17:34:41,920 WARN [localhost-startStop-1] [confluence.impl.health.DefaultHealthCheckRunner] logEvent Your database connection pool allows 60 connections, which is not enough to support the 80 HTTP threads in your Tomcat configuration. Either increase the pool size to at least 100 connections or reduce the maximum number of HTTP threads to 48 or fewer.
  • 30.
    Copyright © 2018Growth xPartners, Inc. では、データベースへの同時接続数を増やせばいいのか というと データベース側で受け付けることができる最大接続数は 、データベース側の設定に依存する(例はPostgreSQLの postgresql.confの場合) 29 max_connections = 100 # (change requires restart)
  • 31.
    Copyright © 2018Growth xPartners, Inc. • httpの同時接続数と、アプリケーション上のコネクシ ョンプーリングの最大接続数と、データベースサーバ ー上の最大接続数と、それぞれのパラメーターのバラ ンスを取りながら、チューニングすることが求められ ます。 30
  • 32.
    Copyright © 2018Growth xPartners, Inc. サイジングについて Java VMのパラメーターについて 接続数関連のパラメーターについて トラブルシューティングについて 2018/2/2 31
  • 33.
    Copyright © 2018Growth xPartners, Inc. トラブルシューティング パフォーマンス上の問題が発生し、調査を行う際、スレ ッドダンプの取得が必要になる場合があります。 スレッドダンプとは、Javaプロセス上で動作するJavaス レッド上でのスタックトレースを出力するもので、 JavaVM内のスレッドの動作の状況を調査するのに用い ます。 32
  • 34.
    Copyright © 2018Growth xPartners, Inc. Jira/Confluenceの管理画面で取得するSupport Zip内に スレッドダンプの出力は含まれていますが、管理画面へ のアクセスが出来ない場合はOSのシェル上からスレッ ドダンプの取得を行います。 33
  • 35.
    Copyright © 2018Growth xPartners, Inc. スレッドダンプの取得方法 • jpsコマンドでアプリケーションのPIDを特定する 34 $sudo /usr/java/default/bin/jps -v |grep jira 1278 Bootstrap - Djava.util.logging.config.file=/opt/atlassian/jira/cur rent/conf/logging.properties - Djava.util.logging.manager=org.apache.juli.ClassLo aderLogManager -Xms384m -Xmx768m(略)
  • 36.
    Copyright © 2018Growth xPartners, Inc. スレッドダンプの取得方法 jstackコマンドでスレッドダンプを出力する 動作が停止しているスレッドを特定するため、複数回繰 り返して出力してください 35 $ sudo /usr/java/default/bin/jstack -F 1278
  • 37.
    Copyright © 2018Growth xPartners, Inc. スレッドダンプの出力 Attaching to process ID 1278, please wait... Debugger attached successfully. Server compiler detected. JVM version is 25.152-b16 Deadlock Detection: No deadlocks found. Thread 5747: (state = BLOCKED) - sun.misc.Unsafe.park(boolean, long) @bci=0 (Compiled frame; information may be imprecise) - java.util.concurrent.locks.LockSupport.park(java.lang.Object) @bci=14, line=175 (Compiled frame) - java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await() @bci=42, line=2039 (Compiled frame) - java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take() @bci=100, line=1088 (Compiled frame) - java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take() @bci=1, line=809 (Compiled frame) - java.util.concurrent.ThreadPoolExecutor.getTask() @bci=149, line=1074 (Compiled frame) - java.util.concurrent.ThreadPoolExecutor.runWorker(java.util.concurrent.ThreadPoolExecutor$Worker) @bci=26, line=1134 (Interpreted frame) - java.util.concurrent.ThreadPoolExecutor$Worker.run() @bci=5, line=624 (Interpreted frame) - java.lang.Thread.run() @bci=11, line=748 (Interpreted frame) 36
  • 38.
    Copyright © 2018Growth xPartners, Inc. まとめ 2018/2/2 37
  • 39.
    Copyright © 2018Growth xPartners, Inc. • Confluence/Jiraのパフォーマンスチューニングは、 JavaのWebアプリケーションのチューニングのセオリ ーを適用していくことになります。 • それぞれのパラメーターのバランスをとりましょう • 継続的な計測が重要です。 38
  • 40.
    Copyright © 2018Growth xPartners, Inc. ありがとうございました! http://www.gxp.co.jp/atlassian/ twitter: @GxPAtlassian 39