======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日は連続で使用することができる。