Skip to content

Instantly share code, notes, and snippets.

@ndimiduk
Last active April 17, 2024 01:13
Show Gist options
  • Save ndimiduk/a6c2aa781c20fb8bb9c20abbcf5bac4f to your computer and use it in GitHub Desktop.
Save ndimiduk/a6c2aa781c20fb8bb9c20abbcf5bac4f to your computer and use it in GitHub Desktop.
Demonstrating the effect of JVM arg -XX:-MaxFDLimit on OSX
$ cat /Library/LaunchDaemons/limit.maxfiles.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>limit.maxfiles</string>
<key>ProgramArguments</key>
<array>
<string>launchctl</string>
<string>limit</string>
<string>maxfiles</string>
<string>524288</string>
<string>524288</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>ServiceIPC</key>
<false/>
</dict>
</plist>
$ ulimit -n ; ulimit -Hn
524288
524288
$ java -version
openjdk version "1.8.0_222"
OpenJDK Runtime Environment (AdoptOpenJDK)(build 1.8.0_222-b10)
OpenJDK 64-Bit Server VM (AdoptOpenJDK)(build 25.222-b10, mixed mode)
$ cat Fds.java
import com.sun.management.UnixOperatingSystemMXBean;
import java.lang.management.ManagementFactory;
public class Fds {
public static void main(final String[] argv) {
final UnixOperatingSystemMXBean osMBean =
(UnixOperatingSystemMXBean) ManagementFactory.getOperatingSystemMXBean();
System.out.println("opendfs: " + osMBean.getOpenFileDescriptorCount());
System.out.println("maxfds: " + osMBean.getMaxFileDescriptorCount());
}
}
$ javac Fds.java
$ java Fds
opendfs: 5
maxfds: 10240
$ java -XX:-MaxFDLimit Fds
opendfs: 5
maxfds: 524288
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment