ssm:tips

文書の過去の版を表示しています。


tips

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

画像等のデータは毎秒24MByte等、非常におおきな記憶容量を必要とします。
SSMでは共有メモリにデータを蓄積するため、
記録できる容量は共有メモリサイズに依存します。
設定されている共有メモリの大きさは下記 /proc/sys/kernel/shmmax で参照できます。
また、一時的にサイズを変更する際は、 # echo <サイズ> > /proc/sys/kernel/shmmax

ずっと変更する際は、&color(#ff0000){/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 に定義されています。<br /> また、一時的にサイズを変更する際は、 # echo <サイズ> > /proc/sys/kernel/msgmax # echo <2倍サイズ> > /proc/sys/kernel/msgmnb

ずっと変更する際は、&color(#ff0000){/etc/sysctl.conf};に kernel.msgmax=32768 kernel.msgmnb=65536 その後、 #/sbin/sysctl -p をやると良いらしいです。
参考URL
http://zpache.seesaa.net/article/52092947.html

これだけでは足りないので、ついでに&color(#ff0000){/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.1406022734.txt.gz
  • 最終更新: 2023/03/29 06:15
  • (外部編集)