Solved

open file descriptors

Posted on 2006-11-05
13
1,880 Views
Last Modified: 2013-12-16
on Linux server how do I find what is the maximum number of open file descriptors per JVM process and how do I change it and what is the recommended number? so its 3 questions :)
0
Comment
Question by:Buffon
  • 6
  • 5
13 Comments
 
LVL 24

Expert Comment

by:slyong
ID: 17878082
Hi,

I am not sure how to find the maximum number of open file descriptors per JVM.  On Linux, the system wide file descriptor can be found:

# cat /proc/sys/fs/file-max

to change it
# echo "65535" > /proc/sys/fs/file-max

to check how many file descriptor being used:
# cat /proc/sys/fs/file-nr
1400    119     65535
   |           |          |__ maximum number of file descriptors allowed on the system
   |           |    
   |           |__ total free allocated file descriptors
   |
   |__  total allocated file descriptors

to show the open file descriptor for processes:
# lsof
0
 
LVL 11

Author Comment

by:Buffon
ID: 17879279
thanks for reply, but I already know about max for wide system, I really need it per process (I think its the same for jvm process) and not wide system :(
by the way what is "total free allocated file descriptors"?
0
 
LVL 43

Expert Comment

by:ravenpl
ID: 17879409
The default fd limit for any process in linux is 1024
You can verify it: ulimit -n
You can change: ulimit -n 10240 # but increasing the limit is allowed only to root user.
If You want increase it system wide - You would have to do two things
- put the command in some early init script (like /etc/rc.d/rc)
- increase it for each user that logs into the system, it's /etc/security/limits.conf - add line like
*              -       nofile          10240
0
Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
LVL 11

Author Comment

by:Buffon
ID: 17879418
is it recommended to increase it? what is the impact on system?
0
 
LVL 43

Expert Comment

by:ravenpl
ID: 17879432
The limit there is mainly for security reason(as You already know there is limited number of FDs in whole system), but it also helps debugging leaking applications(the other question ;).
It's not recommended to increase this limit globally (as I suggested above) - but if application needs more than 1024 or leaks(then it's temporarty sollution) I would advise to increase the limit for this application only.
In the latter case the application(daemon) have to be initially run as root.
0
 
LVL 11

Author Comment

by:Buffon
ID: 17879452
ok it runs as root and I have root access, so its not a problem. how do I increase this number only for this application?
0
 
LVL 43

Expert Comment

by:ravenpl
ID: 17879461
How the application is started?
0
 
LVL 11

Author Comment

by:Buffon
ID: 17879470
through ssh, as root, java Server......
0
 
LVL 43

Expert Comment

by:ravenpl
ID: 17879477
Then simply create a script which will run the app (or maybe it's already script), and before running the app/java add
ulimit -n 10240
0
 
LVL 11

Author Comment

by:Buffon
ID: 17879483
bash script? so it applies only for current session application? I run it with & parameter and then I close the ssh, will it work?
0
 
LVL 43

Accepted Solution

by:
ravenpl earned 500 total points
ID: 17879501
the ulimit works for current process and all childs(but each process has it's own limit).
> I run it with & parameter
Yes. But of course the application has to be capable of running in background. Otherwise use nohup command in addition
nohup command parameters &
0
 
LVL 11

Author Comment

by:Buffon
ID: 17879528
yes, of course it continues to run in background, so no need for nohup?
0

Featured Post

Microsoft Certification Exam 74-409

Veeam® is happy to provide the Microsoft community with a study guide prepared by MVP and MCT, Orin Thomas. This guide will take you through each of the exam objectives, helping you to prepare for and pass the examination.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

I. Introduction There's an interesting discussion going on now in an Experts Exchange Group — Attachments with no extension (http://www.experts-exchange.com/discussions/210281/Attachments-with-no-extension.html). This reminded me of questions tha…
It’s 2016. Password authentication should be dead — or at least close to dying. But, unfortunately, it has not traversed Quagga stage yet. Using password authentication is like laundering hotel guest linens with a washboard — it’s Passé.
Learn how to find files with the shell using the find and locate commands. Use locate to find a needle in a haystack.: With locate, check if the file still exists.: Use find to get the actual location of the file.:
How to Install VMware Tools in Red Hat Enterprise Linux 6.4 (RHEL 6.4) Step-by-Step Tutorial

749 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question