デフォルトだとメッセージひとつあたり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