【问题标题】:Too many open files when using jetty 9 on linux (ubuntu)在 linux (ubuntu) 上使用 jetty 9 时打开的文件太多
【发布时间】:2014-03-31 13:36:07
【问题描述】:

我有一个运行 grails 应用程序的 jetty 9.1.3 服务器。在 os x 上测试时一切都很好,但在 ubuntu 上我注意到它正在打开大量文件

如果我跑了

lsof | awk '{ print $2; }' | sort -rn | uniq -c | sort -rn | head 

我看到的两个平台:

操作系统:

423 1561

Ubuntu

27393 15238

然后我运行了一个完整的 lsof 来查看使用了哪些文件,我看到重复的条目,例如:

java 15238 16672 jetty mem REG 202,1 575389 1239666 /tmp/jetty-0.0.0.0-8080-root.war-_-any-6199673264702494065.dir/webapp/WEB-INF/lib/commons-collections-3.2 .1.jar

java 15238 16672 jetty 159r REG 202,1 575389 1239666 /tmp/jetty-0.0.0.0-8080-root.war-_-any-6199673264702494065.dir/webapp/WEB-INF/lib/commons-collections-3.2 .1.jar

这种模式在 lsof 输出中一遍又一遍地重复,并且发生在类路径上的每个 jar 中:

grep commons-collections lsof.log | wc -l

138

谁能解释一下这里可能发生了什么以及如何解决它?

【问题讨论】:

  • 找到原因了吗?我有类似的问题,但lsof 输出显示重复打开的 js 文件,来自/tmp 中的爆炸战争。

标签: ubuntu jetty


【解决方案1】:

我遇到了同样的问题。 我在 Jetty 7、Jetty 8、Jetty 9.0.2 和 Jetty 9.1.5(始终在 Ubuntu 上)上部署了我的 grails 应用程序。 除了最后一个 Jetty 9.1.5 之外,所有的 jetty 版本都可以正常工作。 Windows 7 上的 Jetty 9.1.5 也可以正常运行。 所以看来 Ubuntu 上的 Jetty 9.1.x 有问题。

我修复了编辑 /etc/security/limits.conf 文件的问题。 首先运行以下命令:

ulimit -n

这将告诉您最大文件打开限制(在我的情况下是 1024)。 以 root 身份编辑 /etc/security/limits.conf 文件并添加以下两行:

* soft nofile 65535
* hard nofile 65535

要使更改生效,您应该关闭终端会话并打开一个新会话。 您可以再次运行ulimit -n 命令以确保更改。 现在再次启动 Jetty 并检查它是否运行正常。 这对我有用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-11
    相关资源
    最近更新 更多