Test disk access speed for a Java application

アトラシアン ナレッジベース

このページの内容

お困りですか?

アトラシアン コミュニティをご利用ください。

コミュニティに質問

プラットフォームについて: Server および Data Center のみ。この記事は、Server および Data Center プラットフォームのアトラシアン製品にのみ適用されます。

Support for Server* products ended on February 15th 2024. If you are running a Server product, you can visit the Atlassian Server end of support announcement to review your migration options.

*Fisheye および Crucible は除く

問題

アトラシアンのサーバー アプリケーションでパフォーマンスの問題が発生しているように見受けられ、実行速度が遅い。これらのアプリケーションには、Jira、Confluence、Bamboo、および Fisheye/Crucible などの Java ベースのソフトウェアが含まれる。

たとえば Jira の場合、次の領域で明らかに問題が発生します。

  • 再インデックス
  • 検索
  • 課題ナビゲーター
  • ガジェット
  • 課題のオープン


Bitbucket Data Center を実行している場合、ディスク ベンチマークの詳細については以下の記事を参照してください。

Testing NFS disk access speed for Bitbucket Data Center and git operations


診断

アトラシアン アプリケーションのパフォーマンスにはディスク アクセス速度が重要です。

アプリケーションの実行速度が遅い場合、ディスク速度が潜在的な根本原因である可能性があります。Support Tools Utility を使用してディスク アクセス速度のベンチマークを行うことで、この原因を特定できます。


Support Tools Utility を、JIRA Server 上の任意の書き込み可能なフォルダ (たとえば、Linux では ~/$username$/temp、Windows では c:\temp) にダウンロードします。

これは .jar 拡張子のファイルであり、Internet Explorer がこれらを zip にリネームする場合があります。これが発生した場合、ファイルを .jar に戻します。zip ファイルの展開は行わないでください。

  1. Windows の場合、ターミナル ウィンドウを開きます (Start >> Run >> type in 'cmd' に移動)。
  2. Linux/Unix の場合: コマンド ラインを開きます。
  3. ツールの実行時には一時ディレクトリへの書き込みアクセスが必要になります。このツールはディスク速度を計算するために大量のファイルを作成および削除します。
  4. ツールをダウンロードしたディレクトリに移動 (CD) して、次を実行します。

    java -Djava.io.tmpdir=<index directory> -jar support-tools.jar

     使用しているアプリケーションに応じて、以下の <index directory> パスを使用して次のディレクトリをテストしてください。

    • JIRA の場合は、既定のインデックス ディレクトリである <jira_home>/caches/indexes on JIRA 7.x and below, <jira_home>/caches/indexesV1 folder on JIRA 8.x and above に対してテストします。Insight を使用している場合には、 <jira_home>/caches/insight_indexes too. に対してテストしてください。

    • Confluence の場合は、<confluence-home>/index. に対してテストします。

    • For Fisheye/Crucible, the test should be run against <FISHEYE_INST>/cache and <FISHEYE_INST>/var/cache.

    Data Center 版の JIRA または Confluence を実行している場合、各ノードで速度チェックを実行してください。インデックスは各ノードにローカルに保存されているためです。

  5. 結果の平均を選択して評価し、速度テストの結果を判断する方法の詳細については「結果の評価セクションを確認してください。
    たとえば、JIRA では、インデックスへのディスク I/O が頻繁に使用されるため、ディスク アクセスのパフォーマンスが特に重要です。インデックスは検索が行われるたびに読み取られ、課題の更新がコミットされるたびに書き込まれるためです (詳細は、「 Jira サーバーのインデックスの問題のトラブルシューティング 」を参照してください)。

操作

この基本的なテストは、java.io.tmpdir ディレクトリにある一時ファイルへのオープン、読み取り/書き込み、クローズ、および削除処理を各測定につき 1000 回行い、結果を以降の評価セクションのように報告します。このテストは、ファイル システムへのアクセスについて、Java プロセスのパフォーマンスの最も近いシミュレーションであり、ディスクを使用しているときのアプリケーション パフォーマンスの正確な測定に利用できます。他のディスク測定ツールを使い、それらが Java JDK/JRE の個々のパフォーマンスを測定しない場合は、異なる結果が返される可能性があります。

Java ソースは JAR 内で確認できます。ファイルが圧縮されていない場合はソースを表示できます。

ソリューション

このツールは、ディスクそのものの実際の速度ではなく、オペレーティング システムで実行されている Java の基本的なディスク評価を主な目的として設計されています。OS レベルの問題により、非常に高速なディスクであるにもかかわらず Java が低速である可能性もあります。これはディスクの完全な分析ソフトウェアの代替品ではなく、ディスクにハードウェアの問題が見受けられる場合やディスクが低速な場合は、システム管理者やサーバーのホスティング プロバイダーにお問い合わせください。

ベンチマーク結果を確認するときは次の点に留意します。

  • 主に平均値に注目します。
  • オープン/クローズ速度が悪いが読み取り/書き込み速度は良い場合、アンチウイルス ソフトが影響している可能性があります。
  • 最小値が大きく、速度は平均的な場合、ディスクの速度が低下しているか、ハードウェアに問題が発生している可能性があります。
  • ディスクの平均値が大きく、最小速度が小さい場合、環境が影響している可能性があります (詳細については以降を参照)。
  • Jira の場合、インデックスへのアクセスが頻繁に行われるため、オープンとクローズは非常に重要です。平均的な検索は 1 つのファイルを何度もクローズします。

結果の評価 

以降は、結果の分類に使用できる、おおよその平均速度のブレイクダウンです。


統計情報ExcellentOKBad
オープン< 40,00040,000 - 150,000> 150,000
読み取り/書き込み< 40,00040,000 - 100,000> 100,000
クローズ< 20,00020,000 - 100,000> 100,000
削除< 50,00050,000 - 300,000> 300,000

考えられる原因

低速なディスク アクセスを引き起こす可能性がある環境要因の例には、次のようなものがあります。

  • アンチウイルス ソフトウェア。「Jira Server のクラッシュやパフォーマンスの問題のよくある原因」ナレッジベース記事にあるように、アンチウイルス ソフトウェアはオープンおよびクローズ回数を制限するため、アプリケーションの処理に悪影響を与える場合があります。
  • リモート ディスクまたは共有ドライブ。
  • 低速なネットワーク上での他のマシンへの同期。
  • VMware などの仮想化 OS (詳細については「Jira サーバーを仮想環境で実行する」をご確認ください)。
  • ディスクのデフラグ ジョブが実行中である。
  • ディスク障害などの、ハードウェアの問題。
  • ファイル システムの暗号化。
  • OS が制御している、ファイルの自動圧縮。
  • Java バージョンと OS での固有の問題。これは稀な例ですが、JVM 内のバグや既知の問題が特定の OS でパフォーマンスを悪化される可能性があります。
  • ディスクを同時に使用している他のアプリケーションまたは処理。
  • ディスクのキャパシティが満杯に近い。特定の OS ではこれによってディスクでのパフォーマンスが悪化する場合があります (この例の場合は Solaris)。
  • Windows で、Lucene のファイル削除で問題が発生している。
    Lucene は mmapdirectory を使用し、特に Windows OS に対して使用するため、クローズ後もこれらのマップされたファイルに対してハンドルを開いたままにし、これらのファイルの削除を許可しません。Lucene Class MMapDirectory

ベンチマークの例

いくつかのベンチマークの例です。

Excellent
TOTALS
----    ----    ----    ----    ----
stat    avg     median  min     max
----    ----    ----    ----    ----
open    35,289  36,000  29,000  472,000
r/w     30,934  31,000  23,000  77,000
close   14,988  5,000   5,000   9,796,000
delete  39,135  40,000  31,000  123,000
----    ----    ----    ----    ----
All times are in nanoseconds.

これは、SSD と同等のディスク ハードウェア テクノロジーを使用しているプレミア ホスティング プロバイダーです。

OK
TOTALS
----    ----    ----    ----    ----
stat    avg     median  min     max
----    ----    ----    ----    ----
open    75,830  62,000  44,000  2,869,000
r/w     46,407  40,000  35,000  907,000
close   5,751   5,000   4,000   336,000
delete  118,942 81,000  65,000  22,864,000
----    ----    ----    ----    ----
All times are in nanoseconds.
Bad
TOTALS
----    ----    	----    	----    	----
stat    avg     	median  	min     	max
----    ----    	----    	----    	----
open    275,886 	267,184 	246,412 	2,544,101
r/w     92,956  	81,538  	70,727  	7,358,896
close   3,194,958   3,177,771   3,076,064   4,331,872
delete  542,650 	530,271 	514,226 	1,771,416
----    ----    	----    	----    	----
All times are in nanoseconds.

このベンチマークは、ウィルス スキャンが有効化されている、非常に高速なディスクのものです。

平均
TOTALS
----	----	----	----	----
stat	avg		median	min		max
----	----	----	----	----
open	133,704	121,000	83,000	12,787,000
r/w		30,892	26,000	22,000	3,176,000
close	40,652	40,000	10,000	108,000
delete	274,710	254,000	211,000	15,151,000
----	----	----	----	----
All times are in nanoseconds.



これは、低負荷状態で 5 つの Jira アプリケーション インスタンスを実行している WD Black 3.0 GB/s 7.2k RPM ドライブの例です (これは推奨されません。同じサーバーで複数のアプリケーションを実行する場合の影響がご確認いただけるかと思います)。

*注意: 上記の結果は、ローカル <index directory> フォルダのみのガイドラインとして提供しています。インデックスは共有ドライブではなく各ノードにローカルに保存されるため、Data Center 構成の $SHARED_HOME でこれらのテストを実行する必要はありません。場合によっては、弊社サポートが $SHARED_HOME で同じテストの実行を要求することがありますが、それは添付ファイルまたはインデックス復旧メカニズムに関連するパフォーマンスの問題がある場合に限られます (長期間のダウンタイム後にノードを起動した場合や、それぞれのアプリケーションでインデックス復旧が有効になっている場合など)。アトラシアンのパブリック インスタンスの $SHARED_HOME には、次の値があります。 


TOTALS
---- ---- ---- ---- ----
stat avg median min max
---- ---- ---- ---- ----
open 4,790,174 4,638,824 3,943,820 13,139,894
r/w 14,947 13,312 3,519 83,294
close 4,398,125 4,297,768 3,708,446 16,138,393
delete 4,323,586 4,178,885 3,581,537 33,963,856
---- ---- ---- ---- ----
All times are in nanoseconds.

(!) 注: これらはあくまで参考値であり、推奨値でもパフォーマンス目標値でもありません。



説明

アトラシアン アプリケーションのパフォーマンスにはディスク アクセス速度が重要です。

アプリケーションの実行速度が遅い場合、ディスク速度が潜在的な根本原因である可能性があります。Support Tools Utility を使用してディスク アクセス速度のベンチマークを行うことで、この原因を特定できます。

製品JIRA, Confluence, Bamboo, Fisheye, Crucible
プラットフォームServer、Data Center
最終更新日 2022 年 9 月 23 日

この内容はお役に立ちましたか?

はい
いいえ
この記事についてのフィードバックを送信する
Powered by Confluence and Scroll Viewport.