性能测试工具 Jmeter 批量上传一个目录的文件。然后提示 “开的文件过多”。。。。求助。。

当里个当 · 2017年02月10日 · 最后由 当里个当 回复于 2017年02月17日 · 4083 次阅读

就是在做压测时候,做的是每发送一次请求,上传一个文件。。。

最开始是没问题的,但是多了。。就报 error 了。。。我查看一下 log,居然提示的是 “打开的文件过多”。。。

求助。。这个怎么处理。。

我的 JVM 都改到 6G 了。。这都不够用吗。。。应该不是 JVM 的问题吧~
$JVM_ARGS -Xms6G -Xmx6G -XX:MaxPermSize=1024M -Dapple.laf.useScreenMenuBar=true -jar dirname $0/ApacheJMeter.jar "$@"

共收到 13 条回复 时间 点赞

猜测是 file descriptor 的数量限制?

#1 楼 @mypchas6fans 麻烦问下。。这个在哪看呀??怎么查。。请教。。。多谢多谢

应该是被测服务打开文件数超限了。如果被测服务是 Linux 机器,查一下 ulimit -n

#3 楼 @newbee 好勒。。。我去试试。。非常感谢指导~~

查看系统最大文件打开数
ulimit -a
修改
ulimit -n 65536

#5 楼 @dongdong9527 不对呀。。最大 65535.。。我发了不到 3W 个请求。。。怎么会报错呢。。请教

#3 楼 @newbee
最大 65535.。。我发了不到 3W 个请求。。。怎么会报错呢。。请教😂

搜索 FileNotFoundException (Too many open files),应该可以找到更多参考,比如这个

http://stackoverflow.com/questions/2272908/too-many-open-files-how-many-are-open-what-they-are-and-how-many-can-the-jvm

linux 上面使用 ulimit -c unlimited

#7 楼 @lucifer 应该是文件数限制这个思路,至于具体的只能你自己试了。
另外你这台 Windows 机器的文件数也查看一下是多少吧。

倾向于编写的脚本存在性能问题,表现为 FD(文件描述符)泄露,一般为磁盘 IO 或网络 IO 打开未关闭引起,或许 JMeter 本身存在这个 Bug,或者 JMeter 没用好,当然一味地调整 open files 上限可以缓解问题,但不能根本解决问题,长时间运行后依然会抛这个错误:Too many open files,所以建议文件上传的脚本自行实现,这样就变得可控的多,也能很快地找到问题所在,否则只能去翻 JMeter 的源码进行重构。

不是 server 端的事,应该是 client 的事。。具体原因没查到。。。崩溃了。。。
从排查的原因看,应该是有个最大的读取数。。。。
当收到 response 之后,之前打开的就关闭了,所以有时候会报错,有时候不会。。所以猜测应该有个最大上线数。

找到原因了。。本地 client 的 最大文件数 太低了。。。调高就再也没出现过了~~

当里个当 关闭了讨论 02月17日 10:48
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册