松坂様
お世話になっております。
栗原です。
ご連絡、有難うございます。
こちらで確認しましたところ、ご指摘頂きましたように、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 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パッケージ)
>
> もし何かわかりましたら教えてください。
>
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パッケージ)
もし何かわかりましたら教えてください。