FreeBSD6.2のサーバが以下のメッセージを発してフリーズすることが増えました。
collecting pv entries -- suggest increasing PMAP_SHPGPERPROC
# sysctl -w kern.maxfiles=32767 # sysctl -w kern.maxfilesperproc=14745
アクセスが増えた際に発生するようなのでsysctlを変更。
# vi /etc/sysctl.conf kern.maxfiles=32767 kern.maxfilesperproc=14745
再起動後も有効にするために/etc/sysctl.confにも書いておく。
# vi /boot/loader.conf kern.maxusers=384
しばらく様子見。
# sysctl -a | grep files kern.maxfiles: 32767 kern.maxfilesperproc: 14745 kern.openfiles: 4247 p1003_1b.mapped_files: 1
確認。kern.maxfiles はカーネルが扱える上限、kern.maxfilesperprocは1プロセスが扱える上限、kern.openfilesは現在開いているファイル数。
MRTGででも監視すべきかも。
8/29追記。sysctl変更点の追加とloader.confの修正等。
参考
http://d.hatena.ne.jp/ms-k/20040826
http://www.nognog.com/techmemo/FreeBSD_Tuning_HOWTO.php
http://www.freebsd.org/doc/ja/books/handbook/configtuning-sysctl.html
http://www.documents.daoffice.com/faq/06890.html
http://www.nxhack.tarumi.kobe.jp/FreeBSD_kernel_tuning.html
http://blog.unknown.jp/mt/archives/000357.html