UiPathのメモリリーク対策 解決編
2021年04月16日
今回もRPAのメモリリーク対策の話。
再現OutOfMemoryが発生している状態の端末を触ることができた。
タスクマネージャーを開くと「UiPath.Executor.exe」が
1.4Gもメモリ食ってた。
前々回の記事で書いた「rundll32.exe」でメモリ解放する方法を試したけど、
「UiPath.Executor.exe」のメモリ使用量は全く変わらず。
(「rundll32.exe advapi32.dll,ProcessIdleTasks」をCMDで実行。)
ロボットがメモリを掴んだまま膨れ上がって落ちるようで、
ガベージコレクションのような方法は効果がなさげ。
さらに調べていくと、モジュールを呼び出す際に
「UiPath.Executor.exe」を別プロセスとして起動させることができるらしい。
再現OutOfMemoryが発生している状態の端末を触ることができた。
タスクマネージャーを開くと「UiPath.Executor.exe」が
1.4Gもメモリ食ってた。
前々回の記事で書いた「rundll32.exe」でメモリ解放する方法を試したけど、
「UiPath.Executor.exe」のメモリ使用量は全く変わらず。
(「rundll32.exe advapi32.dll,ProcessIdleTasks」をCMDで実行。)
ロボットがメモリを掴んだまま膨れ上がって落ちるようで、
ガベージコレクションのような方法は効果がなさげ。
さらに調べていくと、モジュールを呼び出す際に
「UiPath.Executor.exe」を別プロセスとして起動させることができるらしい。
PR
UiPathのメモリリーク対策 ログを仕掛けてみた
2021年04月16日
RPAのメモリリーク対策 ログを仕掛けてみた
前回の記事で書いたメモリリーク問題の続き。
パフォーマンスモニタはいいからソースのどの部分でメモリを消費しているかログを出力させろというのが上司の指示。
まずは公式HPから情報収集。
前回の記事で書いたメモリリーク問題の続き。
パフォーマンスモニタはいいからソースのどの部分でメモリを消費しているかログを出力させろというのが上司の指示。
まずは公式HPから情報収集。
UiPathのメモリリーク対策(個人的メモ)
2021年04月09日
会社で使っているRPAロボットが30時間程度稼働したところで停止するらしい。
イベントビューワーで該当日時のログを確認したところ
「out of memory」メモリ不足でした。
メモリを増設したものの焼け石に水。
ネットで調べると、
「ワークフローの作り方を工夫する」だって。
https://forum.uipath.com/t/topic/93508
使っている変数を確認したけど、
フラグとしてint32が5,6個、日付型の変数が3つ、数文字のstr型など、
3000回程度のループ(30時間分)でメモリ不足になるとは思えん。
イベントビューワーで該当日時のログを確認したところ
「out of memory」メモリ不足でした。
メモリを増設したものの焼け石に水。
ネットで調べると、
「ワークフローの作り方を工夫する」だって。
https://forum.uipath.com/t/topic/93508
使っている変数を確認したけど、
フラグとしてint32が5,6個、日付型の変数が3つ、数文字のstr型など、
3000回程度のループ(30時間分)でメモリ不足になるとは思えん。
SQLで取得したデータが大きすぎて扱えない
2021年03月30日
今日、SQLを使ってデータを取得したんだが、
700M弱のテキストデータって扱いに困る。
1行に8255文字あるし。
いつも使ってるotbeditは、1行5000文字までしか対応してなくて
改行なしに設定しても改行表示されるし。
データを取得するときの設定がいけてなかったのが敗因。
set pagesize 30000(30万行)
set linesize 8000 (8255文字)
ページもラインも出力データより小さい値が設定されてて、
扱いにくいったらない。
エクセルを得意としている自負はあるけど、おとなしく再取得します。。。
教訓
700M弱のテキストデータって扱いに困る。
1行に8255文字あるし。
いつも使ってるotbeditは、1行5000文字までしか対応してなくて
改行なしに設定しても改行表示されるし。
データを取得するときの設定がいけてなかったのが敗因。
set pagesize 30000(30万行)
set linesize 8000 (8255文字)
ページもラインも出力データより小さい値が設定されてて、
扱いにくいったらない。
エクセルを得意としている自負はあるけど、おとなしく再取得します。。。
教訓
オートフィルタランチャーマクロ
2021年03月30日
前回、テキスト系のランチャーを作ったので、
今回はオートフィルタのモジュールを整理することにした。
選択中のセルでオートフィルタ 他
今回はこれらモジュールをまとめて呼び出すフォームを作った。
新しいことは特に何もやっていないので
説明については、前回のランチャーを参照。
各フォームを呼び出すランチャーマクロ(ランチャー5)
作った感想。
ショートカットキーで一発起動できるのが
オートフィルタ系モジュールの利点だったので、
UIを介すると使いづらいってのが正直なところ・・・。
ただ、オートフィルタにショートカットキーを
5つも割り当ててられないってのもあるので一長一短か。
ダウンロード
以下、ソース
今回はオートフィルタのモジュールを整理することにした。
選択中のセルでオートフィルタ 他
今回はこれらモジュールをまとめて呼び出すフォームを作った。
新しいことは特に何もやっていないので
説明については、前回のランチャーを参照。
各フォームを呼び出すランチャーマクロ(ランチャー5)
作った感想。
ショートカットキーで一発起動できるのが
オートフィルタ系モジュールの利点だったので、
UIを介すると使いづらいってのが正直なところ・・・。
ただ、オートフィルタにショートカットキーを
5つも割り当ててられないってのもあるので一長一短か。
ダウンロード
以下、ソース