Linux – determine ulimit for root user

linuxsolrulimit

we believe we have increased the max open file descriptors for the root user. This was done by adding this line to /etc/security/limits.conf:

*         -    nofile            2048

We think we've confirmed that the root user's limit was increased because we can tell (not described here) that our application (solr – which is run by root) has 1098 files open. However, we can't tell for sure how many open files the root user is allowed. We would expect this command to work, but it doesn't seem to be:

$ sudo -u root -s "ulimit -Sn"
1024

Any ideas? Thanks!

Best Answer

Get the PID of the process that solr is running and then cat /proc/$SOLR_PID/limits -- this will tell you the actual limits of the process.

I'd recommend to run things like solr as a seperated unprivileged user. When doing this you have multiple options (limits.conf or add a ulimit -n 2048 to the init script, ...). The last one isn't all that shiny but works for quick settings and restarting the daemon

RANT: don't tell me you can't restart becauso you'll lose service. If that is the case you should have a HA setup anyway :)