ロボット稼働状況を分析する方法について教えてください。

フォローする

下記に分析観点や分析方法についてまとめていますのでご参考ください。

概要

ロボット稼働状況分析の目的

ロボットの稼働台数が多くなると負荷が増え、効率的なロボット運用が行えなくなることがあります。稼働状況の分析を行い、ロボットの棚卸や適正値での運用ができているか評価することで、負荷分散が可能となり効率的なロボット運用を行うことができます。


ロボット実行ログの分析観点

ロボットがスケジュールや外部プログラムから呼び出され、その処理が終了するまでの合計時間に対して、実行開始までの待ち時間(キュー時間)とKCU帯域の混雑により発生した待ち時間(KCU待ち時間)の割合を分析します。

Robot___________1.png

 
分析に必要な値と、その出力方法

 分析を行う上で必要な値(時間)と、その値の出力・算出方法です。各項目を確認してください。

※ここで必要な各値はログDBを参照することでも取得できます(DB直接参照に関するトラブルは、サポート対象外となりますのでご注意ください)。ログDBについては、BizRobo! Basic で使用する3種類のデータベースについてを参照してください。

なお、後述する内容は、スケジュール実行を前提とした記載になっております。

  1. キュー時間(Queue Time)

    スケジュール開始時間(※1)ロボットの実行開始時間(※2)にて算出してください。

    ※1 Management Consoleの「Logs」タブ> Schedule Runs > Start
    ※2 Management Consoleの「Logs」タブ> Robot Runs > Start

  2. 実行時間(EXECUTIONTIME)

    合計時間(Total Time)1.で算出したキュー時間にて算出してください。
    合計時間(Total Time)はManagement Consoleの「Logs」タブ>「Schedule Runs」で出力してください。
    ※表示されていない場合は「More Columns」ボタンより選択してください(詳しい手順についてはManagement Consoleで確認できるLogのカラムを変更する方法を教えてください。を参照してください)。
  3.  KCU待ち時間(Wait time for available KCU)

    出力方法は「KCUの利用(消費)状況を確認する方法」を参照してください。

 
分析観点の詳細

  • キュー時間の確認
    スケジュール実行されてから実際にロボットが動作開始するまでの時間です。

    Management Consoleの「Max concurrent robots(最大同時実行ロボット数)」で設定された数以上のロボットが同時刻帯に起動された場合に発生します。

    実行待ち時間が発生しないようにスケジュールを見直すか、サーバ側の容量(ハードウェア、ソフトウェア、ライセンス)に応じた同時実行数に修正することで最適化します。
  •  KCU待率の算出
    KCU不足により実行中のロボットが一時停止していた時間の処理全体に対する割合を算出します。

    算出方法は「KCU待ち時間(ms)/実行時間(ms)」です。
    ※DBのテーブルを参照した場合、KCU待ち時間は(μs)となるので、単位を合わせるようにお願い致します。

    ロボットの並行稼働時にはタイミングにより0.1秒~数秒程度の待ち時間が発生することは正常の範囲内ですが、全体を通してロボット実行時間の30%を超える待ち時間が頻発している場合にはライセンス上設定されているKCUの容量を超えてロボットが稼働していることを意味します。(※1)

    KCUの容量を超えてロボットを稼働している状況が正である場合(業務上必要なスケジュールに基づいてロボットを稼働させている場合)にはライセンスの追加によりKCUの容量を正常の範囲内まで拡張してください。

    (※1)処理時間が10秒に満たない小さなロボットやステップ数が5以下の補助的なロボット(メイン処理を持たないロボット)については、並行稼働ロボットの実行タイミングによるKCUの割り当てのバッティングが偶然数回発生しただけであっても閾値を超えてしまうため、計測の対象からは例外値として除外することを推奨します。 
  • 実行時間(時)の算出
    ロボットの処理開始から終了までの時間を算出します。

    算出方法は「実行時間(ms) / 1000 / 60 / 60」です。

    ロボットの実行時間はその運用・メンテナンスを考慮すると、繰り返し処理を行うロボットであっても1時間以内、長くても2時間以内に処理が終了できるように設計するべきです。それ以上の時間を定常的に処理するロボットが存在する場合には、処理の見直しを実施することを強く推奨します。

 

  • ヒートマップの作成
    時間帯別ロボット並行実行数を表形式で一覧にします。

    縦軸に日付を取り、横軸に「分」単位で実行中ロボット数のスナップショットを記録し、時間帯ごとの混雑状況をビジュアルで表示します。

    1KCUのライセンスを基準とした場合、システム的にストレスなくロボットを並行実行できる数は4つ程度であり、それ以上のロボットが同時に稼働する場合は、KCU待ちによるロボットの渋滞が目立ち始め、全体のロボット処理スピードが低下します。全体スケジュールの見直しなどを行い、最適化を図ってください。

    なお、並行実行数が10を超える場合は、ロボットの実行時間に占めるKCU待ち時間が急激に増加します。ピーク時などで一時的に発生する場合には問題ありませんが、10以上の並行稼働が長時間続く、または頻発する場合にはライセンスの追加によりKCU自体の処理可能容量を増やしてください。

 

・DX Baseの利用

Ver10.7.0.4以降では「DX Base」を利用することで、下記のようなデータが可視化された形で参照することが可能です。
 
1.KCUWait の時間単位のサマリ
 1 時間当たりに発生した KCU Wait の時間数とロボットの実行数をクラスタ毎に合算して表示します。
 ロボットの込み具合や KCU ライセンスに対する負荷状況、純粋な KCU ライセンスの使用状況を確認することができます。

 (画像2.DXBase_KCUWaitの時間単位のサマリ)
 
2.ロボット毎の KCUWait 割合
 発生した KCU Wait をロボット毎に表示します。
 KCU Waitの割合が大きい順に表示されます。

 (画像3.DXBase_ロボット毎のKCU Wait割合)
 
3.時間帯別ロボット並行実行数
 ロボットの実行台数を時間軸で表示するヒートマップです。
 1ヶ月(30 日)の間に実行されたロボット数を 5 分間隔で表示します。

 (画像4.DXBase_時間帯別ロボット混雑状況表示ヒートマップ)
 
My BizRobo! > ダウンロード > Eureka

 

改善に向けた対応

下記にボトルネックを改善するための対応を記載します。なお、改善方法としてミドルウェアやサーバインフラへのアプローチもありますが、割愛いたします。 

  • スケジューリングの見直し

    スケジュールをずらしロボットの並行実行割合を平準化する余地がないか検討・実施してください。
  • ロボット処理の効率化

    実行ステップ数、KCU待ち時間、実行時間の大きいロボットをピックアップし、そのロボットの処理中に非効率な処理が含まれていないかを棚卸してください。

    改善の余地を発見した場合にはプロセスの再設計を行うとともに、今後のロボット作成の品質向上策にも活かせるように、標準化できそうな部分を切り出し、共通部品化も検討してください。
  • KCUの追加

    評価ライセンスを利用してKCUの割り当て数を変更させながらKCU数に応じたWaitの変化量を観察し、適切なKCU数を見積り、適用させてください。

Robot___________2.png

 

 ※注意事項

本ナレッジはバージョン10.3の内容です。
分析はお客さま判断であり、DBに対する問い合わせ・サポート対象外となります。ご了承ください。 

 

区分 確認Ver
逆引き 10.3、10.4、10.7