Solved

open file descriptors

Posted on 2006-11-05
13
1,874 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
 
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
How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

 
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

Better Security Awareness With Threat Intelligence

See how one of the leading financial services organizations uses Recorded Future as part of a holistic threat intelligence program to promote security awareness and proactively and efficiently identify threats.

Join & Write a Comment

How many times have you wanted to quickly do the same thing to a list but found yourself typing it again and again? I first figured out a small time saver with the up arrow to recall the last command but that can only get you so far if you have a bi…
If you have a server on collocation with the super-fast CPU, that doesn't mean that you get it running at full power. Here is a preamble. When doing inventory of Linux servers, that I'm administering, I've found that some of them are running on l…
Connecting to an Amazon Linux EC2 Instance from Windows Using PuTTY.
This demo shows you how to set up the containerized NetScaler CPX with NetScaler Management and Analytics System in a non-routable Mesos/Marathon environment for use with Micro-Services applications.

746 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

Need Help in Real-Time?

Connect with top rated Experts

12 Experts available now in Live!

Get 1:1 Help Now