05-10-2013
Rule of thumb: if there are more than 100 threads per process, then the Java process is badly programmed - talk to the application owner/vendor.
If there are more than 1000 threads per process, then the Java process is definitely wrong.
I suggest to put a "ulimit -S -u 3000" soft limit into each Java start script.
This is a per-user limit. Therefore, it makes sense to start your Java apps as different users.
Sometimes it also helps to limit the file handles with "ulimit -S -n 1024", the default on most Linux systems. (Some application vendors suggest to tune this up - with a negative effect.)
Last but not least I think (have not yet evidence) kernel.pid_max not only limits the processes but also the application threads.
Tune it up with "sysctl kernel.pid_max=99999", and also add this to /etc/sysctl.conf.
99999 i.e. 5 digits is safe with processes like xfs that have a buggy "pidfile" handling. BTW an immediate tune-up is safe; a tune-down should happen only in /etc/sysctl.conf to be applied at next system reboot.
Last edited by MadeInGermany; 05-10-2013 at 06:31 AM..
This User Gave Thanks to MadeInGermany For This Post:
10 More Discussions You Might Find Interesting
1. Solaris
Well, I am not even sure if its failing, cause at the other end I have a select call and it wakes up and reads the data I sent fine.
Ok here is the issue, I have a UDP socket(non blocking) through which I push some data to another port. At the other end I have select loop, waiting for this data.... (6 Replies)
Discussion started by: Naanu
6 Replies
2. Solaris
Hi everybody,
I have an Unix box running Solaris and every day for 1 hour or 2 the box is stuck and I can only get this error message when trying to type a command :
bash-3.00$ vmstat 5
bash: fork: Resource temporarily unavailable
How can I trace what's is going wrong with this box ?... (5 Replies)
Discussion started by: unclefab
5 Replies
3. UNIX for Advanced & Expert Users
Hello. I have code which create processes with fork(). I set a limit for processes by typing ulimit -u 20. Then I run my code who should create 100 processes. Unfortunately, I have a mistake there and I forgot to quit all of my forked processes when fork gave me return value -1. So I am trapped in... (5 Replies)
Discussion started by: samos
5 Replies
4. Solaris
installed 64bit 16GB VM on 64bit ESX server.
Written small C code to map the 2GB of memory by mmap after creating 3 child
and map getting failed by throwing "resource unavailable temporarily" after mapping 1.6 GB of memory out of 2GB. But same 1.5Gb memory mapping works fine.
I checked... (0 Replies)
Discussion started by: siddharoodh
0 Replies
5. UNIX for Dummies Questions & Answers
Hi,
Now I am programming to communicate with some network printer through TCP Socket program.By sending command "\033E 1\r" to printer,causes, check the port for error normally.
In my case i used following code
bytesSent = send( sockfd, "\033E 1\r",sizeof("\033E 1\r"), 0);
... (1 Reply)
Discussion started by: kavinsivakumar
1 Replies
6. Red Hat
First post, sorry to be a bother but this one has been dogging me. I have a process user (java application server) that trips a resource limit every couple weeks and need help finding what limit we're hitting.
First, this is what's running:
This is the error when jobs are run or the... (0 Replies)
Discussion started by: Katahdin
0 Replies
7. UNIX for Advanced & Expert Users
Solaris 10 Server refuse to connect :wall:
fork: Resource temporarily unavailable , server unexpectedly unavailable network connection , refuse error, disconnect message, fatal error type2, (protocol error type2)
Issue has been resolved after taken few steps :b:
First of all need to check... (1 Reply)
Discussion started by: taherahmed
1 Replies
8. UNIX for Dummies Questions & Answers
I wrote a script that works most of the time but gave me
fork: resource temporarily unavailable
some of the time. I restarted my computer and now it runs fine but googling "fork: resource temporarily unavailable" and looking on the forums has not actually helped me figure out what exactly I... (3 Replies)
Discussion started by: monstrousturtle
3 Replies
9. Programming
Hello,
I am using the termios library to write data that I get from a Bluetooth device to a modem via serial.
The data arrive from the Bluetooth device correctly every 50ms and I have to bypass them on the serial ttyUSB3 where it is connected to a modem connected to a socket with static IP.
The... (10 Replies)
Discussion started by: enaud
10 Replies
10. UNIX for Dummies Questions & Answers
I wrote a perl program that simultaneously reads in data from 691 tar.gz files using zcat. I can run one instance of the program without any issues and the memory and swap sizes are negligible. However, when I attempt to run more than 1 I start to get fork: resource unavailable messages. Are... (6 Replies)
Discussion started by: aquinom85
6 Replies
LEARN ABOUT MOJAVE
systemd-sysctl.service
SYSTEMD-SYSCTL.SERVICE(8) systemd-sysctl.service SYSTEMD-SYSCTL.SERVICE(8)
NAME
systemd-sysctl.service, systemd-sysctl - Configure kernel parameters at boot
SYNOPSIS
/lib/systemd/systemd-sysctl [OPTIONS...] [CONFIGFILE...]
systemd-sysctl.service
DESCRIPTION
systemd-sysctl.service is an early boot service that configures sysctl(8) kernel parameters by invoking /lib/systemd/systemd-sysctl.
When invoked with no arguments, /lib/systemd/systemd-sysctl applies all directives from configuration files listed in sysctl.d(5). If one
or more filenames are passed on the command line, only the directives in these files are applied.
In addition, --prefix= option may be used to limit which sysctl settings are applied.
See sysctl.d(5) for information about the configuration of sysctl settings. After sysctl configuration is changed on disk, it must be
written to the files in /proc/sys before it takes effect. It is possible to update specific settings, or simply to reload all
configuration, see Examples below.
OPTIONS
--prefix=
Only apply rules with the specified prefix.
-h, --help
Print a short help text and exit.
--version
Print a short version string and exit.
EXAMPLES
Example 1. Reset all sysctl settings
systemctl restart systemd-sysctl
Example 2. View coredump handler configuration
# sysctl kernel.core_pattern
kernel.core_pattern = |/libexec/abrt-hook-ccpp %s %c %p %u %g %t %P %I
Example 3. Update coredump handler configuration
# /lib/systemd/systemd-sysctl --prefix kernel.core_pattern
This searches all the directories listed in sysctl.d(5) for configuration files and writes /proc/sys/kernel/core_pattern.
Example 4. Update coredump handler configuration according to a specific file
# /lib/systemd/systemd-sysctl 50-coredump.conf
This applies all the settings found in 50-coredump.conf. Either /etc/sysctl.d/50-coredump.conf, or /run/sysctl.d/50-coredump.conf, or
/usr/lib/sysctl.d/50-coredump.conf will be used, in the order of preference.
See sysctl(8) for various ways to directly apply sysctl settings.
SEE ALSO
systemd(1), sysctl.d(5), sysctl(8),
systemd 237 SYSTEMD-SYSCTL.SERVICE(8)