有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

当ulimit已更改为unlimit时,java无法增加Wildfly的“最大打开文件数”

我正在用wildfly开发Ubuntu 16.04。我收到一个错误“由以下原因引起:java.net.SocketException:打开的文件太多”。所以我把ulimit改为ulimite,适用于所有用户

core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 128429
max locked memory       (kbytes, -l) 16384
max memory size         (kbytes, -m) unlimited
open files                      (-n) 65535
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 65535
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

在/etc/security/limits中。形态

* soft     nproc          65535
* hard     nproc          65535
* soft     nofile         65535
* hard     nofile         65535
root soft     nproc          65535
root hard     nproc          65535
root soft     nofile         65535
root hard     nofile         65535

问题是,除了wildfly之外,另一个java进程获得了一个新的open files值(65535)

 cat /proc/1717/limits
Limit                     Soft Limit           Hard Limit           Units
Max cpu time              unlimited            unlimited            seconds
Max file size             unlimited            unlimited            bytes
Max data size             unlimited            unlimited            bytes
Max stack size            8388608              unlimited            bytes
Max core file size        0                    unlimited            bytes
Max resident set          unlimited            unlimited            bytes
Max processes             128429               128429               processes
Max open files            4096                 4096                 files
Max locked memory         16777216             16777216             bytes
Max address space         unlimited            unlimited            bytes
Max file locks            unlimited            unlimited            locks
Max pending signals       128429               128429               signals
Max msgqueue size         819200               819200               bytes
Max nice priority         0                    0
Max realtime priority     0                    0
Max realtime timeout      unlimited            unlimited            us

我已经重启了服务器。请告诉我如何解决这个问题


共 (1) 个答案

  1. # 1 楼答案

    JBoss ulimit的最大进程可以根据服务器接收的每日负载进行设置,但标准大小为65536,openfiles也可以设置为65536以上。我们对并发用户和每秒最大点击数进行了负载测试,以得出数字结论

    检查JBossulimit

    jboss@user1>ulimit -aS  -> soft limit
    jboss@user1>ulimit -aH  -> hard limit