Windchill RV&S のバッチ編集並列処理プロパティを使用する場合のベストプラクティス
Windchill RV&S で、スレッドプールによる並列処理を実行すると、複数アイテムのバッチ編集操作のパフォーマンスを最適化することができます。たとえば、ノード数が 1000 を超えるドキュメントに対して複数編集操作を実行すると、操作が完了するまでにかなりの時間がかかります。このような場合、スレッドプールを使用した並列処理を実行すると、パフォーマンスが向上します。
並列処理フレームワークでは、バッチ編集操作の規模に応じて、共通プールまたは専用の追加プールにバッチ編集操作をリダイレクトすることができます。Windchill RV&S のプロパティを使用して、スレッドプールを同時処理に適したサイズに設定して割り当てることができます。効率的にメモリを管理しながらバッチ編集操作を実行するには、この設定を行う必要があります。
並列処理や同時処理を行う際に、以下の Windchill RV&S プロパティを使用してスレッドプールを割り当て、スレッドプールのサイズを調整します。
• mksis.concurrent.maxThreadsPerCPUCore: 同時処理の実行に割り当てられる CPU コアごとのスレッド数を指定します。
• mksis.concurrent.commonPoolRatioInPercentage: 共通スレッドプールで使用されるスレッド数の割り当て率を指定します。残りのスレッド数は、個別のスレッドプールで使用されます。デフォルト値は 50% です。
ほとんどの操作でアイテム数が 256 以下の場合は、ベストプラクティスとしてこのプロパティの値を大きくすることをお勧めします。このプロパティの値を大きくすると、それに応じてスレッドの割り当てが調整されます。
• mksis.concurrent.taskLimitForCommonPool: 共通スレッドプールを使用して同時に処理するタスクの上限数を指定します。この上限数を超えているタスクについては、個別のスレッドプールを使用して実行されます。デフォルト値は 256 です。
アイテム数が 256 以下にもかかわらず処理に時間がかかる場合は、ベストプラクティスとしてこのプロパティの値を小さくすることをお勧めします。これにより、別の専用プールで処理が実行されるようになります。
• mksis.concurrent.maxThreadsForAdditionalPool:: 各追加プールに割り当てるスレッド数を指定します。プログラムによる割り当てを行う場合は、デフォルト値として 0 を設定します。
ベストプラクティスとして 0 を設定することをお勧めします。これにより、各追加プールに対して、アプリケーションによって適切な数のスレッドが割り当てられます。Windchill RV&S では現在、すべての追加プールで、スレッドの最大使用数が 8 に制限されています。これにより、より多くの操作を個別の専用プールで処理できるようになります。このプロパティを使用してデフォルト値を上書きし、0 から 16 の範囲で値を設定することができます。
すべての追加プールが別の操作の処理でビジー状態になっている場合、新しい操作は共通プールに割り当てられて処理されます。
この章に記載されている例では、1 つの追加プールあたりのスレッドサイズを以下のように仮定しています。
◦ スレッド数が 64 未満の場合: 追加プールで使用できる最大スレッド数 = 4
◦ スレッド数が 128 未満の場合: 追加プールで使用できる最大スレッド数 = 6
◦ スレッド数が 128 以上の場合: 追加プールで使用できる最大スレッド数 = 8
|
|
いずれかのプロパティ値を変更した場合は、サーバーを再起動する必要があります。diag コマンドを実行すると、即時に変更内容を反映させることができます。(例: im diag --diag=concurrenttaskmanager --user=administrator --password=password --param=restart)
|
Related Links