小编pyb*_*993的帖子

MacOs:增加打开文件的最大值对 java 程序不起作用

我的操作系统是 MacOs sierra,我使用以下命令增加每个进程的最大打开文件数,并使它们永久受影响:

$ sysctl kern.maxfiles
kern.maxfiles: 12288
$ sysctl kern.maxfilesperproc
kern.maxfilesperproc: 10240
$ sudo sysctl -w kern.maxfiles=1048600
kern.maxfiles: 12288 -> 1048600
$ sudo sysctl -w kern.maxfilesperproc=1048576
kern.maxfilesperproc: 10240 -> 1048576
$ ulimit -S -n
256
$ ulimit -S -n 1048576
$ ulimit -S -n
Run Code Online (Sandbox Code Playgroud)

当我ulimit -a用来查看终端中的限制时,它确实有效。

但是,当我运行我的 Java 服务器程序时,当套接字连接接近 5110 时,

“打开的文件太多仍然抛出异常”

所以我写了下面的代码来查看java运行时内核的参数?

String [] cmd={"/bin/bash","-c","ulimit -a"};
Process proc = Runtime.getRuntime().exec(cmd);
InputStream stderr = proc.getInputStream();
InputStreamReader isr = new InputStreamReader(stderr);
BufferedReader br = new BufferedReader(isr);
String line; …
Run Code Online (Sandbox Code Playgroud)

java configuration ulimit server macos-sierra

6
推荐指数
0
解决办法
538
查看次数

标签 统计

configuration ×1

java ×1

macos-sierra ×1

server ×1

ulimit ×1