Kanban boards are slow to load in Jira Software Data Center
プラットフォームについて: Data Center のみ。 - This article only applies to Atlassian apps on the Data Center プラットフォーム。
この KB は Data Center バージョンの製品用に作成されています。Data Center 固有ではない機能の Data Center KB は、製品のサーバー バージョンでも動作する可能性はありますが、テストは行われていません。 Server* 製品のサポートは 2024 年 2 月 15 日に終了しました。Server 製品を実行している場合は、 アトラシアン Server サポート終了 のお知らせにアクセスして、移行オプションを確認してください。
*Fisheye および Crucible は除く
要約
問題
Kanban boards take a lot of time to load, specifically on the rest call http://<JIRA>/rest/greenhopper/1.0/xboard/work/allData.json?rapidViewId=<ID>&selectedProjectKey=<PROJ>
診断
ほとんどの時間が次のアクションに費やされている可能性があります。
カードの色の計算:
at com.atlassian.greenhopper.service.rapid.view.color.CardColorQueryServiceImpl.getCustomStrategyIssueCardColors(CardColorQueryServiceImpl.java:179)
at com.atlassian.greenhopper.service.rapid.view.color.CardColorQueryServiceImpl.getCardColorsForQuery(CardColorQueryServiceImpl.java:108)列の日数の計算:
at com.atlassian.greenhopper.service.charts.IssueStatusHistoryServiceImpl.collectStatusHistory(IssueStatusHistoryServiceImpl.java:74)
at com.atlassian.greenhopper.web.rapid.list.RapidIssueEntryQueryServiceImpl.loadDaysInColumn(RapidIssueEntryQueryServiceImpl.java:846)
at com.atlassian.greenhopper.web.rapid.list.RapidIssueEntryQueryServiceImpl.collectIssues(RapidIssueEntryQueryServiceImpl.java:744)スイムレーンの計算:
at com.atlassian.greenhopper.service.issue.IssueDataServiceImpl.findImpl(IssueDataServiceImpl.java:166)
at com.atlassian.greenhopper.service.issue.IssueDataServiceImpl.find(IssueDataServiceImpl.java:41)
at com.atlassian.greenhopper.web.rapid.work.PoolServiceImpl.getSwimlaneIssueIds(PoolServiceImpl.java:240)
at com.atlassian.greenhopper.web.rapid.work.PoolServiceImpl.getCustomSwimlanes(PoolServiceImpl.java:99)
at com.atlassian.greenhopper.web.rapid.work.WorkDataFactory.loadSwimlanesData(WorkDataFactory.java:382)
at com.atlassian.greenhopper.web.rapid.work.WorkDataFactory.getAllData(WorkDataFactory.java:178)Java スレッドダンプに次の情報が表示されます。これは 1 つのスレッドです。
jstack-2015-12-24_023408-6.txt- at com.atlassian.greenhopper.web.rapid.work.WorkDataFactory.getAllData(WorkDataFactory.java:126)
jstack-2015-12-24_023413-7.txt- at com.atlassian.greenhopper.web.rapid.work.WorkDataFactory.getAllData(WorkDataFactory.java:145)
jstack-2015-12-24_023417-8.txt- at com.atlassian.greenhopper.web.rapid.work.WorkDataFactory.getAllData(WorkDataFactory.java:162)
jstack-2015-12-24_023421-9.txt- at com.atlassian.greenhopper.web.rapid.work.WorkDataFactory.getAllData(WorkDataFactory.java:162)
jstack-2015-12-24_023426-10.txt- at com.atlassian.greenhopper.web.rapid.work.WorkDataFactory.getAllData(WorkDataFactory.java:162)
jstack-2015-12-24_023431-11.txt- at com.atlassian.greenhopper.web.rapid.work.WorkDataFactory.getAllData(WorkDataFactory.java:162)
jstack-2015-12-24_023435-12.txt- at com.atlassian.greenhopper.web.rapid.work.WorkDataFactory.getAllData(WorkDataFactory.java:178)
jstack-2015-12-24_023440-13.txt- at com.atlassian.greenhopper.web.rapid.work.WorkDataFactory.getAllData(WorkDataFactory.java:178)
jstack-2015-12-24_023444-14.txt- at com.atlassian.greenhopper.web.rapid.work.WorkDataFactory.getAllData(WorkDataFactory.java:178)
jstack-2015-12-24_023449-15.txt- at com.atlassian.greenhopper.web.rapid.work.WorkDataFactory.getAllData(WorkDataFactory.java:178)
jstack-2015-12-24_023453-16.txt- at com.atlassian.greenhopper.web.rapid.work.WorkDataFactory.getAllData(WorkDataFactory.java:178)最終的に、すべてのアクションが非常にアクティブな Lucene アクティビティに関連付けられます。:
"ajp-bio-127.0.0.1-19041-exec-172, unique_id=X, time=1450942446655, uri=/rest/greenhopper/1.0/xboard/work/allData.json" daemon prio=10 tid=0x00002afb30a93000 nid=0x98a runnable [x]
java.lang.Thread.State: RUNNABLE
at org.apache.lucene.store.DataInput.readVInt(DataInput.java:106)
at org.apache.lucene.index.TermBuffer.read(TermBuffer.java:65)
at org.apache.lucene.index.SegmentTermEnum.next(SegmentTermEnum.java:131)
at org.apache.lucene.index.SegmentTermEnum.scanTo(SegmentTermEnum.java:166)
at org.apache.lucene.index.TermInfosReader.get(TermInfosReader.java:273)
at org.apache.lucene.index.TermInfosReader.get(TermInfosReader.java:209)
at org.apache.lucene.index.SegmentReader.docFreq(SegmentReader.java:503)
at org.apache.lucene.search.TermQuery$TermWeight$1.add(TermQuery.java:56)
at org.apache.lucene.util.ReaderUtil$Gather.run(ReaderUtil.java:77)
at org.apache.lucene.util.ReaderUtil$Gather.run(ReaderUtil.java:82)
at org.apache.lucene.util.ReaderUtil$Gather.run(ReaderUtil.java:66)
...診断
環境
プロジェクトあたりの課題数が非常に多い (2 万件以上) 大規模な環境。
カスタム フィールド: 326
課題: 512512
プロジェクト: 512
原因
Slow disk performance: Please see Troubleshooting Performance with Jira Stats on how to check your disk performance.
ボードに大量の課題がある。1000 個以上の課題がある場合、ボードの生成およびレンダリングに時間がかかり、ボードで実用的なパフォーマンスを実現できない場合があります。特に "完了" 列をご確認ください ("完了" 列に 7000 件の課題があった例があります)。
Complex JQL queries in Swimlanes, Card Colors andBoard configuration
Let say: there are5 Swimlanes and5 Card Colors. Agile will run the entire board query again for every Card colour or Swimlane that is defined using board JQL with the additional JQL appended.
So in this case board will take at least11*N seconds to open (N - time required to load JQL for board).
関連バグをご確認ください。JSWSERVER-13211 - Slow Kanban response and performance after upgrade to Jira 6.4
A third-party plugin such as Scriptrunner for Jira (version 7.2.0). Due to the new version of the scriptrunner add-on, 'import com.atlassian.jira.component.pico.ComponentAccessor' was no longer applicable for some scripted fields, as a result of which the boards with regard to the fields in which this occurred no longer loaded.
ソリューション
回避策
なし
ソリューション
原因に応じて利用可能な方法は異なります。
ディスクを改善する のパフォーマンスの比較
次の推奨事項を参考に、ボードあたりの課題の数を削減する
使用できます カンバン バックログ (カンプラン)、 JSWSERVER-15236 - Kanban Backlog (Kanplan) for JIRA Software Server (Jira Software Server のカンバン バックログ (カンプラン)) をご参照ください。
マッピングから "完了" 列を削除する
完了ステータスから、完了列にマッピングされていないステータスに、課題を移動する
JQL を変更し、解決から X 日以上が経過している課題を除外する (完了列の課題の数を削減する)
JQL を変更し、定義された列の課題のみを含めるようにする (マッピング負荷の軽減)
スイムレーンの数を削減する (シンプルな JQL を使用)
カードの色の数を削減する (シンプルな JQL を使用)
"列での日数" を無効化する
カンバン ボードのサブフィルターを変更する
バージョンが不要な場合、作業のサブフィルターを削除する
または、次のようにボード フィルターでプロジェクト キーを定義して検索範囲を絞り込む。 unreleasedVersions("PROJ") OR project="PROJ" AND fixVersion is EMPTY"
バグ JSWSERVER-13194 - UnreleasedVersions() is slow on large instances (大規模なインスタンスで UnreleasedVersions() が遅くなる) をご参照ください。
未使用のカスタム フィールドを削除することで Lucene インデックスのサイズを削減する
ボード構成にシンプルな JQL を使用する
パッケージ "import com.atlassian.jira.component.pico.ComponentAccessor" を使用してスクリプト フィールドを削除する
この内容はお役に立ちましたか?