【发布时间】: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中的爆炸战争。