添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

Problem:
After migration to new hardware platform and new system (Centos 7 to Centos 9) and set new system limits Jetty server doesn’t start or crash with too many open files alarm.
New system params:
Hardware:
Two Intel Xeon Gold 6336Y CPU @ 2.40GHz
256GB RAM
Storage: RAID10 on NVMe Samsung drives

Software:
Centos 9
Limits for file descriptors: hard 100000, soft 50000
Java: OpenJDK 64-Bit Server VM version 11.0.18+10-LTS

On startup I set in opennms.conf:
JAVA_HEAP_SIZE=150000
MAXIMUM_FILE_DESCRIPTORS=50000
RUNAS=root

OpenNMS daemons started and worked, but Jetty didn’t start - too many open files.

I changed settings in opennms.conf
JAVA_HEAP_SIZE=150000
MAXIMUM_FILE_DESCRIPTORS=30000
RUNAS=root

OpenNMS daemons started, Jetty started, but after some time Jetty crashed with too many open files.

Now, I changed settings to:
JAVA_HEAP_SIZE=150000
MAXIMUM_FILE_DESCRIPTORS=20000
RUNAS=root

All deamons are worked, but how long??? I don’t know…

I heve about 12000 nodes, 70000 interfaces and 32000 services in OpenNMS monitoring environment.

Expected outcome:
I thint that is only Jetty problem. What can I do to set higher value of MAXIMUM_FILE_DESCRIPTORS and get Jetty working?

OpenNMS version:
OpenNMS 33.0.3

Other relevant data:

2024-04-19 08:00:53,067 WARN  [qtp150522667-23695-acceptor-1@79c54f26-ServerConnector@480500dd{HTTP/1.1, (http/1.1)}{0.0.0.0:8980}] o.e.j.s.AbstractConnector:
java.io.IOException: Too many open files
        at java.base/sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method) ~[?:?]
        at java.base/sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:533) ~[?:?]
        at java.base/sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:285) ~[?:?]
        at org.eclipse.jetty.server.ServerConnector.accept(ServerConnector.java:388) ~[jetty-server-9.4.53.v20231009.jar:9.4.53.v20231009]
        at org.eclipse.jetty.server.AbstractConnector$Acceptor.run(AbstractConnector.java:704) [jetty-server-9.4.53.v20231009.jar:9.4.53.v20231009]
        at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:883) [jetty-util-9.4.53.v20231009.jar:9.4.53.v20231009]
        at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1034) [jetty-util-9.4.53.v20231009.jar:9.4.53.v20231009]
        at java.base/java.lang.Thread.run(Thread.java:829) [?:?]
2024-04-19 08:00:53,067 WARN  [qtp150522667-23693-acceptor-0@499de329-ServerConnector@480500dd{HTTP/1.1, (http/1.1)}{0.0.0.0:8980}] o.e.j.s.AbstractConnector:
java.io.IOException: Too many open files
        at java.base/sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method) ~[?:?]
        at java.base/sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:533) ~[?:?]
        at java.base/sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:285) ~[?:?]
        at org.eclipse.jetty.server.ServerConnector.accept(ServerConnector.java:388) ~[jetty-server-9.4.53.v20231009.jar:9.4.53.v20231009]
        at org.eclipse.jetty.server.AbstractConnector$Acceptor.run(AbstractConnector.java:704) [jetty-server-9.4.53.v20231009.jar:9.4.53.v20231009]
        at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:883) [jetty-util-9.4.53.v20231009.jar:9.4.53.v20231009]
        at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1034) [jetty-util-9.4.53.v20231009.jar:9.4.53.v20231009]
        at java.base/java.lang.Thread.run(Thread.java:829) [?:?]
2024-04-19 08:00:53,067 WARN  [qtp150522667-23694-acceptor-2@525b8290-ServerConnector@480500dd{HTTP/1.1, (http/1.1)}{0.0.0.0:8980}] o.e.j.s.AbstractConnector:
              

Can you double-check what limits are applied to the Java process when OpenNMS is running?

We have instructions on the page