a-Column

【UNIX】ソケット数やシステムの上限値の確認

■Linux

#ulimit -a

/etc/security/limits.conf などで変更可能。

■FreeBSD

#limit

/boot/loader.confに書くのは正しいのですが、kern.maxdsizeじゃなくて、kern.maxdsizが正解。同じく、kern.maxssizeではなくkern.maxssizです。

boot/defaults/loader.confより

#kern.maxdsiz="" # Set the max data size
#kern.maxssiz="" # Set the max stack size

というわけで、/boot/loader.confに

kern.maxdsiz="2G"

と書けば、2GBまで割り当て可能になります。

GとかMとか単位を書いていいのかな?と気になったので、一応、ソースコードを追いかけてみました(マニュアルなどのドキュメントが見つからない…)。

src/sys/kern/kern_environment.c

の中の、getenv_quadという関数で、GとかMとかの解釈をしているので大丈夫でした。

調子にのって、"3G"とか指定すると、ブートしなくなりますので注意!

initがこけてpanic rebootします。
single userモードでも起動しなくなります。

もしやってしまった場合は〜〜〜ようするに、やってしまったんですが(笑)〜〜〜、ブート時に、ブートメニューから、コマンドライン形式のブートローダに抜けて、直接パラメータを変更します。たしか、

set kern.maxdsiz=512M
この値はカーネルで指定されている上限値で、これの値以上のメモリをプロセスに割り当て可能にするには、これらの値を変更した上でカーネルを再構築し、再起動する必要がある(もちろん、割り当ての制限を少なくしたい場合も)。


options MAXDSIZ="(1024*1024*1024)"
options MAXSSIZ="(1024*1024*1024)"
options DFLDSIZ="(1024*1024*1024)"

4.5R以降では以下の変数を/boot/loader.confで指定することもできるようだ。


kern.maxdsiz
kern.dfldsiz
kern.maxssiz




余談ですが、limitとunlimitはcsh系のbuilt-in commandであり、sh系の場合は、ulimitになります。

Last Update : 2007年10月03日 (水) 16:37