ライセンスハーベスティング(License Harvesting)
ユーザーがアプリケーションを開いたまま作業をやめると、そのライセンスはアイドル状態のまま保持されます。ライセンスハーベスティングは、そうしたライセンスを自動的にプールへ返却し、アクセスを拒否されている同僚がその席を使えるようにします。
ハーベスティングは、OpenLM の機能のなかで唯一ユーザーのマシン上で動作するものです。そのため、個々の設定値よりも、セットアップ時に下す判断のほうが重要になります。このページでは、その判断を最初から最後まで説明します。各コントロールのフィールド、ダイアログ、正確な動作については、実際に設定を行う Process Manager を参照してください。
Products製品で Process Monitoring をアクティベートし、ハーベスティング対象のマシンに Workstation Agent をインストールします。ライセンスサーバーからチェックアウトするアプリケーションについては、Broker とライセンスサーバーも構成します。これらの変更には管理者ロールが必要です。
ライセンスが解放されるまでの流れ
ワークステーション上で何かが実行される前に、4つの条件がすべて満たされている必要があります。それぞれが個別の設定なので、組織の方針に合わせて任意の段階でこの連鎖を止められます。
- Workstation Agent がプロセスをアイドルと判断する。 既定では、そのアプリケーションに対するキーボードまたはマウスの入力がないことを意味します。さらに、プロセッサー、I/O、ユーザーモードの使用率が設定したしきい値を下回ることを条件に加えられます。
- Idle Time Limit を超えてアイドル状態が続く。 ここで初めて、そのプロセスは解放の候補になります。候補であることと、実際に解放されることは同じではありません。
- ライセンスプールが逼迫する。 プールの使用率が Release Processes After % のしきい値に達した時点で解放が実行されます。しきい値を下回っている間、アイドル状態のプロセスはそのまま残ります。誰も待っていない席を回収しても、ユーザーを煩わせるだけだからです。
- 除外設定がそのセッションを保護していない。 ユーザー、グループ、またはプロセスを起動したコマンドラインが除外対象であれば、監視は継続されますが解放は実行されません。
これらがすべて満たされたときに、Agent は選択された解放方法を実行します。
アイドル時間の追跡と各解放方法は、OpenLM のトークン割り当てを消費します。サブスクリプションのトークンが不足している場合、その機能の監視はトークンが解放されるまで待機します。プランごとの割り当てについては、OpenLM のアカウントマネージャーにお問い合わせください。
解放方法を選択する
解放方法は、ユーザーの未保存の作業がどうなるかを決定します。使用中のアプリケーションが対応している範囲で、次の表の上位にある方法を選択してください。最後の方法は既定としてではなく、代替手段として扱います。
| 方法 | 未保存の作業 | 選択する場面 |
|---|---|---|
| Extension | 保存されたうえでアプリケーションが終了する | 対象アプリケーションが後述の対応製品に含まれる場合。利用できるなかで最も安全な結果です。 |
| Suspension | そのまま保持される(プロセスは終了せず凍結される) | ライセンスサーバーからチェックアウトするが、専用の拡張機能がない場合。ユーザーは Personal Dashboard から再開します。 |
| Procedure | 構成したステップによる | 特定の手順が必要な場合、または保存を試みたうえで代替動作を設けたい場合。 |
| None | 影響なし(監視のみ) | 自動解放を行わず、アイドル時間のレポートだけが必要な場合。 |
Extension による保存と終了は、AutoCAD、ArcMap、ArcCatalog、ArcGlobe、ArcScene、ArcGIS Pro、MATLAB、SolidWorks、Petra、Kingdom、CATIA、Harmony Enterprise で利用できます。
代替動作が必要な場合はプロシージャーを構成する
より影響の大きい動作に移る前に Agent に保存を試みさせたい場合は、プロシージャーを構成します。プロシージャーは、Agent がプロセスに対して実行する一連のアクションです。Agent save and close、Agent suspend、Agent kill の3種類があります。2番目以降の各ステップは、前のステップが完了した時点、または前のステップが成功した場合にのみ実行されます。
この条件指定こそがプロシージャーの要点です。保存して終了を試み、それが成功した場合にのみ一時停止するプロシージャーは安全です。無条件に強制終了するプロシージャーは安全ではありません。
Agent kill は保存せずにアプリケーションを強制終了するため、ユーザーの未保存の作業は失われます。ほかの方法が使えない場合にのみ使用し、有効にする前に対象ユーザーに知らせてください。
ハーベスティングしてはならない作業を決める
数時間にわたって処理を続けているのにキー入力が発生しないアプリケーションは、放置されたセッションとまったく同じに見えます。シミュレーション、レンダリング、ソルバーの実行、バッチスクリプトは、ハーベスティングが損害を与えるセッションであり、展開が取りやめになる原因でもあります。
Process Release Exclusion でこれらを除外します。除外中もアイドル時間の監視は継続され、解放だけが抑制されます。次の単位で除外できます。
- ユーザーまたはグループ: 指定した個人や、シミュレーションチームなどグループ全体を保護します。
- コマンドラインパターン: ユーザー単位ではなく、個々の起動方法を保護します。たとえば
-f *.tclというパターンは、その方法で開始されたバッチ実行をすべて保護しますが、同じアプリケーションを対話的に開いた場合はハーベスティングの対象のままです。 - スケジュール: ユーザーとグループの除外を、繰り返し発生する時間帯に限定して適用します。夜間や週末の実行を保護しつつ、日中のライセンスは循環させ続けられます。
いずれか1つでも一致すれば、そのセッションは保護されます。コマンドラインパターンはスケジュールの影響を受けず、常に適用されます。
パターンを書く前に、長時間のジョブを実行しているチームに起動方法を確認してください。多くの場合、使用しているコマンドラインのほうが、メンバーの入れ替わりで変化する名前の一覧よりも正確で安定しています。
しきい値を調整する
控えめな値から始めてください。1か月間問題が起きなかったあとにしきい値を厳しくするほうが、トラブルのあとに信頼を回復するよりもはるかに簡単です。
| 設定 | 既定値 | 検討すべき点 |
|---|---|---|
| Idle Time Limit | 15分 | 自社のユーザーの作業における自然な中断がどの程度続くか。最小値は3分です。MATLAB では、解放方法が None または Extension の場合を除き15分です。 |
| Release Processes After % | 80 | 中断を正当化できるほどプールが逼迫している水準。値を下げるほど積極的にハーベスティングされます。 |
| Report as "Idle" After | 1分 | レポート専用です。アイドル情報が関連するフィーチャーセッションに紐付けられ、Usage > Currently Consumed Licenses に表示されるタイミングを決めます。プロセスが解放されるタイミングには影響しませんが、Idle Time Limit はこの値以上である必要があります。 |
| System resource thresholds | 各2% | 入力の有無だけでは判断を誤る場合に有効化します。実際には稼働しているプロセスがアイドルと判定される場合は、数台のワークステーションで実測値を採取し、その値に合わせて設定します。 |
ユーザーに表示される内容
ハーベスティングが定着するのは、影響を受ける人が何が起きたかを把握し、元に戻せる場合だけです。
Personal Dashboard を通じて、ユーザーはプロセス解放のアラートをブラウザー通知として受け取ります。ブラウザー通知が許可されていない場合は、アプリ内メッセージとして表示されます。アラートは通知メニューに蓄積されるため見落とすことがなく、Process released のアラートからは Harvested Applications に直接移動して、Resume でアプリケーションを再度開けます。
席を待っている同僚も、タイマーを待つ必要はありません。License Repository の License in use から、そのフィーチャーを保持しているユーザーを確認し、Close App 通知で解放を依頼できます。依頼の最小間隔は Agents Hub で設定します。
実際に何が起きたかを確認する
設定を変更するたびに Process Sessions を確認してください。各行が終了した1つのセッションを表し、実行時間、そのうちアイドルだった時間、そして終了理由を示す Shutdown Reason が表示されます。通常終了、Agent による一時停止、その他の解放方法が区別されます。この列があることで、ユーザーからの申し立てを調査可能な事象として扱えます。
個別のプロセスを手動で解放するには(動作確認中や、至急で席が必要になった場合など)、Active Processes ページの Execute Release Method を使用します。
SaaS サブスクリプションの席をハーベスティングする
サブスクリプションの席には回収元となるライセンスサーバーがないため、別の経路をたどります。Subscription Optimizer は、対応する SaaS プラットフォームで未使用の席を解放し、条件を満たすユーザーに再割り当てします。その条件は License Access Control で定義します。Autodesk Cloud と LinkedIn Sales Navigator に対応し、席が割り当てられたとき、再割り当てされたとき、利用できないときにユーザーへ通知します。
有効な展開手順
次の順序で展開します。各ステップでは、次のステップがリスクを高める前に必要となる情報が得られます。
- まず監視だけを行う。 解放方法を None に設定し、Track Process Idle/Active Periods を有効にします。1週間ほど動かし、Process Sessions を確認します。
- 長時間実行される例外を洗い出す。 アイドル時間が長いものの実際には作業中だったセッションを探し、該当するチームにアプリケーションの起動方法を確認します。
- 解放を有効にする前に除外を設定する。 最初にユーザー、グループ、コマンドラインパターンを設定し、次にスケジュールを設定します。
- 利用できるなかで最も穏やかな方法を有効にする。 Extension があればそれを、なければ Suspension を、それも使えない場合は最初に保存を試みるプロシージャーを選びます。
- Idle Time Limit は長め、解放のしきい値は高めから始める。 レポートが安定してから値を厳しくします。
- 何が起きるか、Resume がどこにあるかをユーザーに伝える。 最初の解放より前に一度案内するだけで、サポートへの問い合わせの大半を防げます。
- 当初は毎週 Process Sessions を確認し、その後はしきい値を変更するたびに確認します。
関連情報
- Process Manager: プロセス、プロシージャー、除外、しきい値を設定する場所。
- Workstation Agent: アイドル時間を検出し、解放を実行するエージェント。
- Personal Dashboard: ユーザーに表示される内容と、再開する場所。
- Subscription Optimizer: SaaS サブスクリプションの席に対する同じ考え方。
- Agents Hub: Close App 通知の間隔を含むエージェントポリシー。
ドキュメントチームは、大規模言語モデルを使ってこのページを下書きすることがあります。公開前に、テクニカルライターがすべてのページをレビューし、製品と照らし合わせて検証します。最終的な判断は人間が行います。