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