忍者ブログ

UiPathのメモリリーク対策(個人的メモ)

2021年04月09日
会社で使っているRPAロボットが30時間程度稼働したところで停止するらしい。

イベントビューワーで該当日時のログを確認したところ
「out of memory」メモリ不足でした。

メモリを増設したものの焼け石に水。

ネットで調べると、
「ワークフローの作り方を工夫する」だって。
https://forum.uipath.com/t/topic/93508

使っている変数を確認したけど、
フラグとしてint32が5,6個、日付型の変数が3つ、数文字のstr型など、
3000回程度のループ(30時間分)でメモリ不足になるとは思えん。



怪しいのは、ログデータを書き出すためにメモ帳をこねくり回してること。
変数の受け渡しをせずにクリップボードを使ってること。

ひとまず、パフォーマンスモニタのログを仕掛けて様子見。
メモリ状況ってプロセスごとに見れることがわかったので、
Uipathとメモ帳のメモリ推移を仕掛けてみた。

原因特定できたとして、ワークフローを修正するのしんどいなぁ・・・。

他の方法を調べていたら、windows7にはメモリクリーナーがあるとか。
https://applica.info/windows-memory-release
って、マイクロソフトからのダウンロード終わってるし。
https://www.qam-web.com/?p=14713

さらに調べると、「rundll32.exe」でメモリ解放ができるとか。
「rundll32.exe advapi32.dll,ProcessIdleTasks」をCMDで実行するだけ。

これは試しても良さそう。


Uipathにメモリ不足への対応について書いてあった。
画面要素を取得するために保存したスクリーンショットがメモリ食うのか?
https://www.uipath.com/ja/resources/knowledge-base/out-of-memory



てか、そもそもUipathのメモリ要件満たしてねーじゃん・・・。
最低4Gじゃ、32bitのPCは全部アウトだね。
https://www.iimhs.co.jp/uipath/overture/

最後に整理すると・・・
問題が発生したときは、発生日時のイベントビューワーを確認する
情報をすべて出したうえで、原因について仮説を立てる
仮説を立証するためのログ取りを行う
原因を特定したら対策について効果とリスクを検証する
対策をすぐに実行する
障害対応は初動全力!
リカバリーが効くうちに対処しておけば大事には至らない。

PR
Comment
  Vodafone絵文字 i-mode絵文字 Ezweb絵文字