首行在Linux系统中用ulimit -a确认,已经设置了max open files为65535,按道理来说,一个应用应该不会打开这么多的文件数。
我首先怀疑的是短连接引起的这个问题,后来经过监控,发现连接数变化正常,但是连接数减少的时候也没有影响到pipe数量的减少,所以首先排除了这个可能。
第二是怀疑memcache的连接问题,因为以前在网上也有听说过memcache的连接有问题。后来上网一查,发现danga.memcached2.0.1存在nio管道句柄泄漏问题。和我这个问题十分类似,经过阅读了解了其中的原因,后看到2.5.1版本已经修正了这个问题。只要更换client版本即可修复。
我给点补充:
Q:什么是最大文件数?
A:This number indicates the maximum number of files normal users (i.e. non-root) can have open in a single session
这个是来自redhad的解释,意思就是普通用户在一个单一进程中所能打开的最多文件数
Q:如何查看当前系统配置的最大文件数
A:用ulimit-a 结果如下:其中红色部分为最大文件数
[root@sanp_244 ~]# ulimit -a
core file size (blocks, -c) unlimited
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 147584
max locked memory (kbytes, -l) 32
max memory size (kbytes, -m) unlimited
open files (-n) 60000
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 10240
cpu time (seconds, -t) unlimited
max user processes (-u) 147584
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
[root@sanp_244 ~]# ulimit -a
core file size (blocks, -c) unlimited
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 147584
max locked memory (kbytes, -l) 32
max memory size (kbytes, -m) unlimited
open files (-n) 60000
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 10240
cpu time (seconds, -t) unlimited
max user processes (-u) 147584
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
Q:如何修改这个数?
A:在root账户下执行ulimit -n 65535,执行完后通过ulimit-a 发现文件最大数已经变成65535
Q:如何查看某个进程已经使用的文件数?
A: lsof -p 29165 |wc -l 其中29165是你要输入的进程号,输出结果为一个数字
补充:lsof 就是“list open files” 的意思,不是每个linux系统都有装lsof这个程序,而且这个一定要在root账户下才能使用,因为要访问内核信息
分享到:
相关推荐
JAVA.NET.SOCKETEXCEPTION TOO MANY OPEN FILES解决方法,三种方案,临时,永久,根治
Too many open files 问题的解决.txt
AIX关于Weblogic的报错_Too_many_open_files_的处理
转:java.net.SocketException: Too many open files解决方法最近随着网站访问量的提高把web服务器移到linux下了,在移服务器的第二天,tomcat频繁的报 java.net.SocketException: Too many open files错误,错误...
NULL 博文链接:https://phl.iteye.com/blog/2256121
linux too many open files解决方案.docx
该文档是介绍访问应用很慢,访问Nginx时,报错:accept() failed (24 Too many open files)的解决方案,与大家共享!
本文主要介绍Linux报too many open files时的解决方法,感兴趣的朋友可以看一下。
NULL 博文链接:https://yizhilong28.iteye.com/blog/1154098
主要给大家介绍了Python中出现错误提示:[Errno 24] Too many open files的分析与解决,需要的朋友可以参考借鉴,下面来一起看看吧。
socket accept报Too many open files的原因
Linux下运行tomcat或者was出现java.net.SocketException: 打开的文件过多错误 tomcat报“too many open files”的错误,解决办法如下:
每个步骤亲测通过,项目实战全部OK,如果要搭建nginx 跟fastdfs的朋友,可以下载下来保存,这是我看了很多文档以及实验完善过的文档,每个步骤都比较详细
2008mvp.zip
java工程中想要读取或者导出**.yaml文件所需要的支持jar包,下载解压后直接添加到项目中即可。 如果是使用eclispe创建的yaml文件,那么还需要下载eclipse支持yaml文档的插件
too many open files问题分析和解决
google webrtc 实现视频通话,客户端和服务端采用websocket 连接,实现信令转换,可以正常视频通话,记得提前打开权限
Linux系统最大可打开文件数一般默认的参数值是1024,如果你不进行修改并发量上来的时候会出现“Too Many Open Files”的错误,导致整个HBase不可运行,你可以用ulimit -n 命令进行修改,或者修改/etc/security/...
运行在Linux系统上的Java程序运行了一段时间后出现Too many open files的异常情况。 这种情况常见于高并发访问文件系统,多线程网络连接等场景。程序经常访问的文件、socket在Linux中都是文件file,系统需要记录...