リソースグループ¶
複数の同時ユーザーセッションでクエリを実行する環境では、すべてのユーザーセッションの重要度が同じわけではありません。ある種のクエリを他のクエリより優先したい場合があります。Denodo 組み込み MPP は、リソースグループを使用して、さまざまなワークロードに優先順位を付ける方法を整理します。
リソースグループは、2 つの主要リソースであるCPU とメモリのクォータを管理します。さらに、同時実行性、時間、CPU 時間などの細かいリソース制約を指定できます。
リソースグループの制限は、 許可時にのみ適用されます 。クエリが実行を開始した後は、リソースグループマネージャーは何も制御しません。代わりに、リソース指定を超過したグループにはペナルティという概念が使用され、リソースグループが新しいクエリを開始する前にその制限を超過しているかどうかの確認が行われます。
Denodo 組み込み MPP のリソース管理を有効にするには、 values.yaml
ファイルに presto.coordinator.resourceGroups: true
を設定します。
例
以下に示す構成例は、配布されている構成 presto/conf/resource_groups.json
であり、必要に応じて変更します。この例では、さまざまなリソースグループおよびどのクエリをどのリソースグループで実行するかを定義する 4 つのセレクターがあります。
1 番目のセレクターは、
datascience
からのクエリに一致し、それらをglobal.adhoc.datascience
グループに入れます。2 番目のセレクターは、
bi
からのクエリに一致し、それらをglobal.adhoc.bi
グループに入れます。3 番目のセレクターは、
pipeline
からのクエリに一致し、それらをglobal.pipeline
グループに入れます。4 番目のセレクターは、
admin
からのクエリに一致し、それらをadmin
グループに入れます。最後のセレクターはキャッチオールであり、どのグループにも入っていないすべてのクエリに一致します。
これらのセレクターは全体として以下のポリシーを実装します。
admin
グループは、最大 50 個のクエリを同時実行できます (hardConcurrencyLimit
)。
他のすべてのグループについて:
合計で最大 100 個のクエリを同時実行できます (
hardConcurrencyLimit
)。BI ツールからのクエリなど、非定型クエリを最大 10 個同時実行できます (
hardConcurrencyLimit
)。データサイエンスツールからのクエリを最大 2 個同時実行できます (hardConcurrencyLimit
)。非定型以外のクエリは
global.pipeline
グループで実行され、合計 45 個のクエリを同時実行できます (hardConcurrencyLimit
)。クエリの実行順序は FIFO です。残りのすべてのクエリは
global
グループに入れられます。
{
"rootGroups": [
{
"name": "global",
"softMemoryLimit": "80%",
"hardConcurrencyLimit": 100,
"maxQueued": 1000,
"schedulingPolicy": "weighted",
"jmxExport": true,
"subGroups": [
{
"name": "adhoc",
"softMemoryLimit": "10%",
"hardConcurrencyLimit": 50,
"maxQueued": 1,
"schedulingWeight": 10,
"subGroups": [
{
"name": "datascience",
"softMemoryLimit": "10%",
"hardConcurrencyLimit": 2,
"maxQueued": 1,
"schedulingWeight": 10,
"schedulingPolicy": "weighted_fair"
},
{
"name": "bi",
"softMemoryLimit": "10%",
"hardConcurrencyLimit": 10,
"maxQueued": 100,
"schedulingWeight": 10,
"schedulingPolicy": "weighted_fair"
}
]
},
{
"name": "pipeline",
"softMemoryLimit": "80%",
"hardConcurrencyLimit": 45,
"maxQueued": 100,
"schedulingWeight": 1,
"jmxExport": true
}
]
},
{
"name": "admin",
"softMemoryLimit": "100%",
"hardConcurrencyLimit": 50,
"maxQueued": 100,
"schedulingPolicy": "query_priority",
"jmxExport": true
}
],
"selectors": [
{
"source": "datascience",
"group": "global.adhoc.datascience"
},
{
"source": "bi",
"group": "global.adhoc.bi"
},
{
"source": "pipeline",
"group": "global.pipeline"
},
{
"source": "admin",
"group": "admin"
},
{
"group": "global"
}
],
"cpuQuotaPeriod": "1h"
}
Denodo が Denodo 組み込み MPP のリソースグループメカニズムを活用するには、Denodo に同一 Denodo 組み込み MPP のデータソースを複数作成し、 applicationNamePrefix
ドライバープロパティを使用して対応するリソースグループ (source
) を選択する必要があります。