Friday, September 23, 2011

error=24, Too many open files


Many users have experience in getting this error when building with maven.

The way to over come this problem is to increase the file limit of the OS.

An article on how to Set ulimit parameters on ubuntu can be found in [1].

[1]http://posidev.com/blog/2009/06/04/set-ulimit-parameters-on-ubuntu/

What they have mentioned there is :

By default the number of open files pro user in Ubuntu 8.04 is 1024. In my case this number was too small so I have to increase it.This is done with the ulimit command:

$ulimit -a # see all the kernel parameters
$ulimit -n #see the number of open files
$ulimit -n 9000 # set the number open files to 9000

The problem with this way is that the ulimit parameter is only set currently for this command terminla and user.If you open a new tab and type again ulimit -a you will see that the number of open files is 1024.This means that after a reboot you’ll need to set the parameter again.

First, in order to set this options automatically you have to edit the etc/security/limits.conf file.

$sudo gedit /etc/security/limits.conf #open the file in gedit

The # means that this part is commented.The wildcard * means for all users.We need to set the nofile option meaning maximum number of open files.If you want to change the number of files of user, you should add this line in the limits.conf:

user soft nofile 9000

user hard nofile 65000

If you want to set the nofile only for superuser you just write root instead of user.

root soft nofile 9000

root hard nofile 65000

Second you have to add a line in the /etc/pam.d/common-session file:

$ sudo gedit /etc/pam.d/common-session #open the file in gedit

Then add the line:

session required pam_limits.so

Now after rebooting you can see in the terminal with ulimit -a the change.

The option with wildcard *didn’t work for me , because I used root accout to run my programms and wildcard option doesn’t affect the superuser.

Remark: Using the same steps you should be able to set and change other parameters ( core file size, max user processes, stack size ….) from the ulimit options.

No comments:

Post a Comment