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

フォローする

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


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

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


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

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

Robot___________1.png

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

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

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

  1. キュー時間(Queue Time)

    Management Consoleの「Logs」タブ>「Schedule Runs」で出力してください。
    ※表示されていない場合は「More Columns」ボタンより選択してください(詳しい手順についてはManagement Consoleで確認できるLogのカラムを変更する方法を教えてください。を参照してください)。
  2. 実行時間(EXECUTIONTIME)

    合計時間(Total Time)- キュー時間(Queue Time)にて算出してください。
    合計時間(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待ち時間(Wait time for available KCU) /実行時間(EXECUTIONTIME) * 1000」です。

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

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

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

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

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

  

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

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

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

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

 

改善に向けた対応

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

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

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

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

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

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

Robot___________2.png

 

 ※注意事項

本ナレッジはバージョン10.3の内容です。
分析は自己責任であり、DBに対する問い合わせ・サポートは受けられません。 

 

0人中0人がこの記事が役に立ったと言っています

コメント

0件のコメント

ログインしてコメントを残してください。