Jira Service Management guardrails

The content of this page applies to the latest Long Term Support version, Jira Service Management 5.4.

背景

We’re committed to supporting the needs of our largest customers, and this includes continually improving the performance and scalability of our products. The amount of data in your instance can be a factor in performance and stability problems. As your instance grows, so does your risk of performance degradation over time. Often this is gradual degradation and can go unnoticed until you reach a point where it has a significant impact on your team.

In the table below, we’ve described the performance and stability impacts that we’ve observed and suggested some actions you can take to reduce your risk. The guardrails are based on real-world experiences with some of our largest customers and performance testing on a standalone Jira Service Management instance. Note that the guardrails won’t necessarily be representative of every organization’s experience.

パフォーマンスと安定性に関する重大な問題が発生するリスクを軽減する方法には、次のようなものがあります。

  • アプリの変更。たとえば、パフォーマンスを向上させるために新しいアプリ バージョンにアップグレード、またはユーザーの管理方法を変更します。

  • インフラストラクチャの変更。たとえば、メモリや CPU を増設、またはクラスターやミラーを実行します。

  • フットプリントを削減するためのデータ クリーンアップ アクティビティ。たとえば、アーカイブ、またはモノリス サイトを分割します。

これらはハード制限ではなく、一部の製品インスタンスは既にこれらのしきい値を超えている可能性があることにご注意ください。異なるデータ タイプ間の相互作用やサイトの負荷など、さまざまな要因によって次に示すような潜在的な影響が発生する可能性とその影響の程度が決まります。あらゆるタイプのリスクと同様に、リスクを特定して計画を立てることが不可欠です。そうすれば、これらのアクションに優先順位付けて将来のパフォーマンス問題の可能性を減らすのに役立ちます。

What are guardrails?

製品ガードレールとはデータ タイプに関する推奨事項であり、潜在的なリスクを特定してインスタンス最適化ジャーニーの次のステップに関する意思決定をサポートするように設計されています。

Jira Service Management guardrails

次のガードレールは、スケール リスクを特定して軽減し、インスタンスのクリーンアップに関する意思決定を下すのに役立ちます。

サービス レベル アグリーメント (SLA)

CONTENTTYPE

Number of SLAs per project 

ガードレール

30 SLAs per project

この数を調べる方法

To find the number SLAs per project execute the following SQL query:

SELECT p.pkey AS "Project Key", 
	COUNT(*) AS "SLA Count"
FROM "AO_54307E_TIMEMETRIC" tm
LEFT JOIN "AO_54307E_SERVICEDESK" sd ON tm."SERVICE_DESK_ID" = sd."ID"
LEFT JOIN "project" p ON sd."PROJECT_ID" = p.id
GROUP BY p.pkey ORDER BY p.pkey;

リスク

このガードレールを超えて運用した場合は、次の問題が確認されています。

  • The time cost for SLA calculation grows linearly with the number of SLAs per project.

  • SLAs may be calculated and available on the issues with a delay.

緩和オプション

SLA 目標

CONTENTTYPE

Number of SLA goals

ガードレール

100 goals per SLA
400 SLA goals per project

この数を調べる方法

To find the number of goals per SLA execute the following SQL query:

SELECT g."TIME_METRIC_ID" AS "SLA ID", COUNT(*) AS "Goals Count"
FROM "AO_54307E_GOAL" g
GROUP BY g."TIME_METRIC_ID" ORDER BY g."TIME_METRIC_ID";

To find the number of SLA goals per project execute the following SQL query:

SELECT p.pkey AS "Project Key", 
	COUNT(*) AS "Goals Count" 
FROM "AO_54307E_TIMEMETRIC" tm 
	LEFT JOIN "AO_54307E_SERVICEDESK" sd ON tm."SERVICE_DESK_ID" = sd."ID" 
	LEFT JOIN "project" p ON sd."PROJECT_ID" = p.id 
	LEFT JOIN "AO_54307E_GOAL" g ON g."TIME_METRIC_ID" = tm."ID"
GROUP BY p.pkey ORDER BY p.pkey;

リスク

このガードレールを超えて運用した場合は、次の問題が確認されています。

  • The time cost for SLA calculation grows linearly with the number of SLA goals per project.

  • SLAs may be calculated and available on the issues with a delay

緩和オプション

  • Remove unnecessary SLA goals from the project.

  • Merge goals with the same targets where possible.

  • Distribute goals across multiple SLAs for easier maintainability.

  • Increase the SLA thread count if your environment can afford to do so. Learn how to configure the SLA thread count

  • When recalculating the SLAs, split them into multiple REST requests to execute them in parallel. Learn how to recalculate SLAs

Assets object schemas

CONTENTTYPE

Number of object schemas

ガードレール

1000 object schemas

この数を調べる方法

The following REST endpoint retrieves high level statistics for each object schema /rest/insight/latest/analytics/schema.

To find the number of object schemas count the number of schemaId s within the returned response.

Format of returned response

[ { "schemaId":x,
"totalObjectCount":x,
"totalObjectTypeCount":x,
"totalAttributeCount":x,
"numberOfObjectsLinkedToIssues":x,
"numberOfObjectsWithUniqueAttribute":x,
"numberOfAutomationRules":0x
"numberOfAutomationIfs":x,
"numberOfAutomationWhens":x,
"numberOfAutomationThens":x,
"maxNumberOfObjectsByObjectType":x,
"averageNumberOfObjectsByObjectType":x,
"maxNumberOfAttributesByObjectType":x,
"averageNumberOfAttributesByObjectType":x },
...
]

リスク

このガードレールを超えて運用した場合は、次の問題が確認されています。

  • Performance of creating new object schemas decreases.

  • Some AQL searches are slower.

  • General impact on Jira Service Management performance.

緩和オプション

  • Review and delete unused or unnecessary object schemas.

Assets object types

CONTENTTYPE

Number of object types per object schema

ガードレール

500 object types per object schema

この数を調べる方法

The following REST endpoint retrieves high level statistics for each object schema: /rest/insight/latest/analytics/schema

To find the number of object types in an object schema refer to the totalObjectTypeCount field within the returned response.

Format of returned response

[{"schemaId":x,
"totalObjectCount":x,
"totalObjectTypeCount":x,
"totalAttributeCount":x,
"numberOfObjectsLinkedToIssues":x,
"numberOfObjectsWithUniqueAttribute":x,
"numberOfAutomationRules":0x
"numberOfAutomationIfs":x,
"numberOfAutomationWhens":x,
"numberOfAutomationThens":x,
"maxNumberOfObjectsByObjectType":x,
"averageNumberOfObjectsByObjectType":x,
"maxNumberOfAttributesByObjectType":x,
"averageNumberOfAttributesByObjectType":x},
...
]

Or, execute the following SQL query:

SELECT obj_schema."OBJECT_SCHEMA_KEY", 
	COUNT(*) AS "Object Types Count"
FROM "AO_8542F1_IFJ_OBJ_TYPE" AS obj_type
INNER JOIN "AO_8542F1_IFJ_OBJ_SCHEMA" AS obj_schema ON obj_type."OBJECT_SCHEMA_ID" = obj_schema."ID"
GROUP BY obj_schema."OBJECT_SCHEMA_KEY";

リスク

このガードレールを超えて運用した場合は、次の問題が確認されています。

  • At 500 object types, we’ve noticed performance degradation on the following actions:

    • Expanding object types in an object schema

    • Viewing the Object Schemas page

    • Creating new objects

緩和オプション

  • Consider splitting the object schema into multiple object schemas with object types distributed across them.

アセット オブジェクト

CONTENTTYPE

オブジェクトの数

ガードレール

500k objects per object schema

2 million objects per instance - where mostly heavy objects are used, that is objects that are:

  • linked to many other objects through inbound/outbound references

  • linked to many issues through custom fields

5 million objects per instance - where mostly light objects are used.

この数を調べる方法

To find the number of objects per object schema we recommend either one of the following methods:

  • Go to Assets > Object Schemas

    Object schemas pageThe Object Schemas page

  • Use the following REST endpoint to retrieve high level statistics for each object schema /rest/insight/latest/analytics/schema. Refer to the totalObjectCount field for each object schema within the returned response.

    Format of returned response

    [{"schemaId":x,
    "totalObjectCount":x,
    "totalObjectTypeCount":x,
    "totalAttributeCount":x,
    "numberOfObjectsLinkedToIssues":x,
    "numberOfObjectsWithUniqueAttribute":x,
    "numberOfAutomationRules":0x
    "numberOfAutomationIfs":x,
    "numberOfAutomationWhens":x,
    "numberOfAutomationThens":x,
    "maxNumberOfObjectsByObjectType":x,
    "averageNumberOfObjectsByObjectType":x,
    "maxNumberOfAttributesByObjectType":x,
    "averageNumberOfAttributesByObjectType":x},
    ...
    ]

To find the number of objects in your instance, execute the following SQL query:

SELECT count(*) as "Asset Objects Per Instance"
FROM "AO_8542F1_IFJ_OBJ";

リスク

このガードレールを超えて運用した場合は、次の問題が確認されています。

  • Assets search functionality linearly slows down as the number of objects grows.

  • Time needed to create objects with checks for unique attribute values grows linearly with the object count.

緩和オプション

  • With AQL search performing slower at higher object counts when searching for objects, we recommend narrowing the scope of the search from object schema to object type at the start of queries where possible. For example, our testing suggests that following AQL search objecttype=x and attribute_name having outboundReferences() runs twice as fast compared to attribute_name having outboundReferences().

  • Consider deleting objects where possible.

  • Consider increasing JVM memory above the recommended values .

Assets attributes

CONTENTTYPE

Number of attributes configured per object type

ガードレール

100 attributes configured per object type

この数を調べる方法

The following REST endpoint retrieves high level statistics for each object schema /rest/insight/latest/analytics/schema.

To find the average and maximum number of attributes configured per object type refer to the maxNumberOfAttributesByObjectType and averageNumberOfAttributesByObjectType fields respectively within the returned response.

Format of returned response

[{"schemaId":x,
"totalObjectCount":x,
"totalObjectTypeCount":x,
"totalAttributeCount":x,
"numberOfObjectsLinkedToIssues":x,
"numberOfObjectsWithUniqueAttribute":x,
"numberOfAutomationRules":0x
"numberOfAutomationIfs":x,
"numberOfAutomationWhens":x,
"numberOfAutomationThens":x,
"maxNumberOfObjectsByObjectType":x,
"averageNumberOfObjectsByObjectType":x,
"maxNumberOfAttributesByObjectType":x,
"averageNumberOfAttributesByObjectType":x},
...
]

Or, execute the following SQL query:

SELECT (SELECT "NAME" FROM "AO_8542F1_IFJ_OBJ_TYPE" WHERE "OBJECT_TYPE_ID" = obj_attr_type."OBJECT_TYPE_ID") AS "Object Type Name",
	count(*) as "Attribute Count" 
FROM "AO_8542F1_IFJ_OBJ_TYPE_ATTR" AS obj_attr_type
INNER JOIN "AO_8542F1_IFJ_OBJ_TYPE" AS obj_type ON obj_type."ID" = obj_attr_type."OBJECT_TYPE_ID" 5GROUP BY obj_attr_type."OBJECT_TYPE_ID";

リスク

このガードレールを超えて運用した場合は、次の問題が確認されています。

  • A noticeable slow down of the Object Graph view as you increase the number of attributes configured for an object type.

緩和オプション

  • Remove unnecessary attributes.

Assets attribute values

CONTENTTYPE

Number of attribute values stored for all objects

ガードレール

25 million attribute values - where mostly heavy objects are used, that is objects that are:

  • linked to many other objects through inbound/outbound references

  • linked to many issues through custom fields

50 million attribute values - where mostly light objects are used.

この数を調べる方法

To find the number of attribute values in your instance, execute the following SQL query:

SELECT count(*) as "Assets Attribute Values per Instance"
FROM "AO_8542F1_IFJ_OBJ_ATTR_VAL";

リスク

このガードレールを超えて運用した場合は、次の問題が確認されています。

  • A linear slowdown on Assets search functionality as the number of object attribute values grows. Especially in expensive search queries, for example queries that:

    • filter a large list of objects being linked to unresolved issues

    • use having outboundReferences()

  • Time needed to create objects with checks for unique attribute values grows linearly with the object count.

Note that when setting up this guardrail we assumed the worse case scenario where virtually all objects are created within a single object schema. When the objects are distributed more evenly, the performance impact may not be this significant.

緩和オプション

  • With AQL search performing slower at higher object counts when searching for objects, we recommend narrowing the scope of the search from object schema to object type at the start of queries where possible. For example, our testing suggests that following AQL search objecttype=x and attribute_name having outboundReferences() runs twice as fast compared to attribute_name having outboundReferences() .

  • Consider deleting objects where possible.

  • Consider increasing JVM Memory above the recommended values .

最終更新日: 2023 年 2 月 6 日

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

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