tips

大きな容量(画像など)のデータを登録したい

画像等のデータは毎秒24MByte等、非常におおきな記憶容量を必要とします。

SSMでは共有メモリにデータを蓄積するため、

記録できる容量は共有メモリサイズに依存します。

設定されている共有メモリの大きさは下記

/proc/sys/kernel/shmmax

で参照できます。

また、一時的にサイズを変更する際は、

# echo <サイズ> > /proc/sys/kernel/shmmax

ずっと変更する際は、/etc/sysctl.conf

 kernel.shmmax = <サイズ>

その後、

 #/sbin/sysctl -p 

をやると良いらしいです。(画像を扱うならサイズ=134217728くらい)

参考URL: http://search.luky.org/linux-users.a/msg06387.html

SSMプロパティーに大きなデータ(8k以上とか)を登録したい

SSMプロパティーはメッセージを使ってやりとりします。
その為プロパティーの最大値は、

 /proc/sys/kernel/msgmax
 /proc/sys/kernel/msgmnb

に定義されています。

また、一時的にサイズを変更する際は、

 # echo <サイズ> > /proc/sys/kernel/msgmax
 # echo <2倍サイズ> > /proc/sys/kernel/msgmnb

ずっと変更する際は、/etc/sysctl.conf

 kernel.msgmax=32768
 kernel.msgmnb=65536

その後、

 #/sbin/sysctl -p

をやると良いらしいです。

参考URL:http://zpache.seesaa.net/article/52092947.html

これだけでは足りないので、ついでに/etc/security/limits.confも編集します 。

適当な位置に以下を書き加えてください。

 @ymbc - msgqueue 8192000

その後再ログインします。

SSMの連続で動かすことのできる最大時間

SSMはリングバッファの管理にtid(int型の値)を使っており、これがカウントアップされることでデータが更新したかどうかを判断している。

C言語でint型の最大値は2147483647であり、これがデータの上限となる。 これを超えたときの動作は未定(たぶんデータの読み書きができなくなる)である。

目安として、YP-Spurの様に5msec周期で動作させたとき、周波数は200Hzなので、

 2147483647 / 200 / 3600 / 24 = 124.275674

なので、124日は連続で使用することができる。

ssm/tips.txt · 最終更新: 2014/10/31 07:09 by rpp
CC Attribution-Share Alike 3.0 Unported
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0