としたにあんの左脳

備忘録です.

Ubuntu12.04のulimitの上限を上げる.

Ubuntu 12.04(他のLinux系OSも同じだと思う)でこんなプログラムを動かすと.

IOError: [Errno 24] Too many open files: xxx

っていうエラーがでる.

以下のコマンドで確認できるファイルオープン数の上限が1024になっているせいでファイルオープンできなくて,エラーを吐いている.

ulimit -n
>1024

以下のサイトを参考にファイル上限をあげてみた.vagrantで動かしているUbuntu12.04 LTS Serverで実験した. How to set ulimit in ubuntu linux? getting sudo: ulimit: command not found error | ubuntu forums

編集内容

sudo emacs /etc/security/limits.conf

以下を追加

vagrant hard nofile 65535
vagrant soft nofile 65535

sudo emacs /etc/pam.d/su

以下のコメントアウトをはずす

# session    required   pam_limits.so
sudo reboot

再起動後,同じプログラムを動かしてもエラー吐かなくなった.

ファイルオープン数の上限に達すると,TCPソケット開けないし,ライブラリのインポートできないしで,オワタ状態になるのでチューニングちゃんとしないといけないっすね.