揮発性のメモ2

http://d.hatena.ne.jp/iww/

POSIXメッセージキューの大きさをでっかくする


デフォルトだとメッセージひとつあたり8Kくらいなのを 100Kくらいに大きくしたい
POSIXメッセージキューの大きさはシステムで決まっているが、変更可能になっている。

/proc/sys/fs/mqueue/msgsize_max

システム全体で設定される
Man page of MQ_OVERVIEW

$ sysctl fs.mqueue.msgsize_max
fs.mqueue.msgsize_max = 8192
$ cat /proc/sys/fs/mqueue/msgsize_max
8192

初期値は 8192


起動時から変更したいときは /etc/sysctl.d/hoge.conf とか作って書いとく

fs.mqueue.msgsize_max = 102400

ulimit -q

Ulimit 組込みコマンド
初期値は 819200
これは、ユーザーが使っていいメッセージキューの全合計の大きさであることに注意する。
つまり、メッセージひとつあたりの大きさを100Kにすると、キューには8個しかメッセージが積めない。
その制限を超えると、errno=24「Too many open files」になるので またたいへんわかりにくい。
一般権限では大きくすることはできない(小さくすることはできる。戻せないけど)

$ ulimit -a | grep queue
POSIX message queues     (bytes, -q) 819200

次のファイルを作っておくと、次のログイン時に反映される
/etc/security/limits.d/hoge.conf

 * hard msgqueue 8192000
 * soft msgqueue 8192000