不涉及组网
版本信息:iMC PLAT 7.3(E0605)。
客户使用apm监控oracle数据库等应用时突然产生多条异常告警,告警显示应用可用性异常,但现场表示所有监控的应用均可用。
收集apmserver日志和imcapmedm日志,分析日志,发现报错如下所示。
ERROR com.imc.apm.application.weblogic.WeblogicServiceMgr.consoleReturn() - Cannot run program "../../common/jre/bin/java": error=24, 打开的文件过多
java.io.IOException: Cannot run program "../../common/jre/bin/java": error=24, 打开的文件过多
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1047)
at java.lang.Runtime.exec(Runtime.java:617)
at java.lang.Runtime.exec(Runtime.java:450)
查找linux系统下打开的文件过多对应的报错原因。可能原因为:
A、应用程序对资源使用不当造成,比如没有及时关闭Socket或数据库连接等。
B、可能应用确实需要打开比较多的文件句柄,而系统本身的设置限制了这一数量。
打开的文件过多常见的两种异常一是错误影响到基础 TCP 协议时抛出,而第二个则是错误影响到 I/O 操作时抛出。示例如下:
异常 1
java.net.SocketException: Too many open files
at java.net.PlainSocketImpl.accept(Compiled
Code)
at
java.net.ServerSocket.implAccept(Compiled Code)
at
java.net.ServerSocket.accept(Compiled Code)
at
weblogic.t3.srvr.ListenThread.run(Compiled Code)
异常 2
java.io.IOException:打开的文件过多
at java.lang.UNIXProcess.forkAndExec(Native
Method)
at java.lang.UNIXProcess.(UNIXProcess.java:54)
at java.lang.UNIXProcess.forkAndExec(Native Method)
at java.lang.UNIXProcess.(UNIXProcess.java:54)
at java.lang.Runtime.execInternal(Native Method)
at java.lang.Runtime.exec(Runtime.java:551)
at java.lang.Runtime.exec(Runtime.java:477)
at java.lang.Runtime.exec(Runtime.java:443)
增大系统的文件打开数和用户进程数
1. 修改文件打开数参数。
vi /etc/security/limits.conf
* soft nofile 1024000
* hard nofile 1024000
2. 修改用户进程限制数。
vi /etc/security/limits.d/20-nproc.conf
* soft nproc 40960
root soft nproc unlimited
3. 修改后重启操作系统
该案例暂时没有网友评论
✖
案例意见反馈
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作