差分
この文書の現在のバージョンと選択したバージョンの差分を表示します。
| 次のリビジョン | 前のリビジョン | ||
|
ssm:tips [2014/07/22 10:53] rpp 作成 |
ssm:tips [2014/10/31 07:09] (現在) rpp |
||
|---|---|---|---|
| ライン 1: | ライン 1: | ||
| ======tips====== | ======tips====== | ||
| + | |||
| + | ===== 大きな容量(画像など)のデータを登録したい ===== | ||
| + | 画像等のデータは毎秒24MByte等、非常におおきな記憶容量を必要とします。 | ||
| + | |||
| + | SSMでは共有メモリにデータを蓄積するため、 | ||
| + | |||
| + | 記録できる容量は共有メモリサイズに依存します。 | ||
| + | |||
| + | 設定されている共有メモリの大きさは下記 | ||
| + | <code>/proc/sys/kernel/shmmax</code> | ||
| + | で参照できます。 | ||
| + | |||
| + | また、一時的にサイズを変更する際は、 | ||
| + | <code># echo <サイズ> > /proc/sys/kernel/shmmax</code> | ||
| + | |||
| + | ずっと変更する際は、<color red>/etc/sysctl.conf</color>に | ||
| + | <code> kernel.shmmax = <サイズ></code> | ||
| + | その後、 | ||
| + | <code> #/sbin/sysctl -p </code> | ||
| + | をやると良いらしいです。(画像を扱うならサイズ=134217728くらい) | ||
| + | |||
| + | 参考URL: | ||
| + | [[http://search.luky.org/linux-users.a/msg06387.html]] | ||
| + | |||
| + | ===== SSMプロパティーに大きなデータ(8k以上とか)を登録したい ===== | ||
| + | SSMプロパティーはメッセージを使ってやりとりします。\\ | ||
| + | その為プロパティーの最大値は、 | ||
| + | <code> | ||
| + | /proc/sys/kernel/msgmax | ||
| + | /proc/sys/kernel/msgmnb | ||
| + | </code> | ||
| + | に定義されています。 | ||
| + | |||
| + | また、一時的にサイズを変更する際は、 | ||
| + | <code> | ||
| + | # echo <サイズ> > /proc/sys/kernel/msgmax | ||
| + | # echo <2倍サイズ> > /proc/sys/kernel/msgmnb | ||
| + | </code> | ||
| + | |||
| + | ずっと変更する際は、<color red>/etc/sysctl.conf</color>に | ||
| + | <code> | ||
| + | kernel.msgmax=32768 | ||
| + | kernel.msgmnb=65536 | ||
| + | </code> | ||
| + | その後、 | ||
| + | <code> | ||
| + | #/sbin/sysctl -p | ||
| + | </code> | ||
| + | をやると良いらしいです。 | ||
| + | |||
| + | 参考URL:[[ | ||
| + | http://zpache.seesaa.net/article/52092947.html]] | ||
| + | |||
| + | これだけでは足りないので、ついでに<color red>/etc/security/limits.conf</color>も編集します 。 | ||
| + | |||
| + | 適当な位置に以下を書き加えてください。 | ||
| + | <code> | ||
| + | @ymbc - msgqueue 8192000 | ||
| + | </code> | ||
| + | その後再ログインします。 | ||
| + | |||
| + | ===== SSMの連続で動かすことのできる最大時間 ===== | ||
| + | SSMはリングバッファの管理にtid(int型の値)を使っており、これがカウントアップされることでデータが更新したかどうかを判断している。 | ||
| + | |||
| + | C言語でint型の最大値は2147483647であり、これがデータの上限となる。 | ||
| + | これを超えたときの動作は未定(たぶんデータの読み書きができなくなる)である。 | ||
| + | |||
| + | 目安として、YP-Spurの様に5msec周期で動作させたとき、周波数は200Hzなので、 | ||
| + | <code> | ||
| + | 2147483647 / 200 / 3600 / 24 = 124.275674 | ||
| + | </code> | ||
| + | なので、124日は連続で使用することができる。 | ||
| + | |||
