[openrtm-users 01341] Re: high CPU load when deactivate python component

Fumio Kanehiro f-kanehiro @ aist.go.jp
2010年 7月 6日 (火) 14:18:51 JST


栗原様,

金広@産総研です.

参考までになぜINACTIVE状態の方がACTIVE状態よりもCPU負荷が高くなるのか教えて
いただけないでしょうか.
ExecutionContextはRTC内のステートマシンの状態によらず動作しているため,RTCが
INACTIVEでもCPUを食うのはわかるのですが,ACTIVE状態のほうがonExecute()を
実行する分だけ負荷が高くなるように思えるのですが.

2010/7/6 kurihara shinji <shinji.kurihara @ aist.go.jp>:
> 松坂様
>
> お世話になっております。
> 栗原です。
>
> ご連絡、有難うございます。
> こちらで確認しましたところ、ご指摘頂きましたように、INACTIVE状態ではACTIVE状態に
> 比べCPU負荷が高くなっておりました。
>
> これは、RTCの実行コンテキスト(PeriodicExecutionContext)がwhileループを回してい
> るためでして、whileループ内ではデフォルトで 0.001 秒の sleep が入りますが、0.001
> 秒の sleepでは cpu負荷が少々高くなるようです。
> sleep時間を0.01秒にする事で負荷は約半分に軽減される事を確認しました。
> # sleepが無い場合は、CPUは90%近くなります。
>
> 1msecでコンポーネントを実行する必要が無い場合は、お手数ですが、rtc.confファイル
> に以下の一行を追記して、ご確認頂けますでしょうか。
>
>  exec_cxt.periodic.rate: 10 # 10Hzです。
>
>
> 以上、宜しくお願い致します。
>
>
> On Tue, 6 Jul 2010 11:22:05 +0900
> Yosuke Matsusaka <yosuke.matsusaka @ aist.go.jp> wrote:
>
>> OpenRTM-aist開発者の皆様
>>
>> 産総研の松坂です。
>>
>> Python版のOpenRTM-aistに特有の問題ですが、コンポーネントがアクティブ状態にないときに
>> CPU負荷が上昇する現象に遭遇しています。
>> 私の環境だけかもしれませんが、確認してみていただけますでしょうか?
>>
>> 以下、再現方法です。
>> 1.適当なPythonコンポーネントを起動(私は添付のスクリプトを使用しましたがそれ以外でも再現します)
>> 2.コンソールでtopコマンドを入力(この時点でPythonコンポーネントの負荷が10%程度に上昇しているのが確認できます)
>> 3.RTSystemEditor上でコンポーネントをアクティベート(Pythonコンポーネントの負荷が数%に低下)
>> 4.RTSystemEditor上でコンポーネントをデアクティベート(Pythonコンポーネントの負荷が10%程度に上昇)
>>
>> 私の開発環境の詳細です。
>> VMWare使用
>> ホストPC:MacOS X (snow leopard)
>> ゲストPC:Ubuntu 10.4
>> OpenRTM:1.00-release (debパッケージ)
>>
>> もし何かわかりましたら教えてください。
>>
>> --
>> Yosuke Matsusaka, Ph.D  <yosuke.matsusaka @ aist.go.jp>
>>   Interaction Modeling Group /
>>   National Institute of Advanced Industrial Science and Technology (AIST)
>>   Tel: 029-862-6726  Web: http://staff.aist.go.jp/yosuke.matsusaka/
>>
>
>
> --
> ----------
> 栗原 眞二 <shinji.kurihara @ aist.go.jp>
>
> 独立行政法人産業技術総合研究所
>  知能システム研究部門 統合知能研究グループ
>  〒305-8568
>  茨城県つくば市梅園1-1-1 中央第2
>
>  TEL: 029-861-5956
>
>



openrtm-users メーリングリストの案内