`

关于出现too many open files异常

阅读更多
首行在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解决方法

    JAVA.NET.SOCKETEXCEPTION TOO MANY OPEN FILES解决方法 JAVA.NET.SOCKETEXCEPTION TOO MANY OPEN FILES...同时,程序员和系统管理员也需要加强代码的质量和服务器的维护,以避免 Too many open files 错误的出现。

    Too many open files 问题的解决.txt

    ### Too many open files 问题详解与解决方案 在Linux系统中,“Too many open files”错误是一个常见的性能瓶颈,尤其是在运行大量并发服务或应用时。这个问题的根本在于操作系统对每个进程可打开的文件数量有限制...

    Too many open files 解决方法

    通过以上步骤,可以永久性地增加每个进程可以打开的最大文件数,从而避免出现“Too many open files”的错误。 #### 注意事项 - 修改文件描述符的限制可能会带来一定的安全风险,因此建议根据实际需求合理设置。 -...

    报错:too many open files处理

    在IT行业中,我们经常遇到各种错误,其中之一是“too many open files”。这个错误通常发生在操作系统限制了同一时间可打开的文件数量,而程序试图超出这个限制时。在本篇文章中,我们将深入探讨这个问题,理解其...

    java.io.FileNotFoundException: *****(Too many open files)

    在Java编程中,"java.io.FileNotFoundException: ***** (Too many open files)" 是一个常见的错误,意味着程序尝试打开的文件数量超过了操作系统的限制。这个错误通常出现在处理大量文件或长时间运行的程序中,尤其...

    AIX关于Weblogic的报错_Too_many_open_files_的处理

    ### AIX关于Weblogic的报错“Too many open files”的处理 #### 背景与问题概述 在AIX环境中部署Weblogic时,可能会遇到一个常见的错误提示:“Too many open files”。这一错误提示通常出现在系统资源限制不当的...

    linux too many open files解决方案.docx

    当你把打开文件数量限制值增大到一定程度,你的 Too many open files 问题就不会再出现了。 永久修改 如果要永久修改打开文件数量限制,可以修改 `/etc/security/limits.conf` 文件,在文件中添加两行: `* - no...

    Linux报too many open files的解决方案

    Linux系统在运行时经常会出现"too many open files"(文件打开过多)的错误,这是一个非常常见的问题,通常发生在当系统运行的应用程序尝试打开的文件数量超过了系统限制时。为了解决这个问题,我们可以从两个方面...

    访问应用很慢,访问Nginx时,报错:accept() failed (24 Too many open files).docx

    "解决 Nginx 访问慢和 accept() failed 错误的方法" 在本文中,我们将讨论 Nginx 访问慢和 accept() failed 错误的解决方案。这个问题通常是由于 Nginx 的连接数超过了系统设定的最大值造成的。...

    Python错误提示:[Errno 24] Too many open files的分析与解决

    例如,错误日志中的`HTTPConnectionPool`异常表明在尝试建立新的HTTP连接时遇到了“Too many open files”的问题。 分析错误时,我们需要考虑以下几个方面: 1. **线程数量**:过多的线程可能导致文件句柄的过度...

    socket accept报too many open files的原因

    socket accept报Too many open files的原因

    Linux下打开的文件过多错误

    Linux下运行tomcat或者was出现java.net.SocketException: 打开的文件过多错误 tomcat报“too many open files”的错误,解决办法如下:

    mysql too many open connections问题解决方法

    MySQL中的“Too many open connections”错误通常意味着服务器已经达到了其允许的最大并发连接数,并且无法接受更多的连接请求。这是数据库管理中的一个常见问题,尤其是在高并发访问的应用中。以下是一些解决此问题...

    Ansj中文分词(强大)

    Ansj中文分词是一款纯Java、主要用于自然语言处理、高精度的中文分词工具,目标是“准确、高效、自由地进行中文分词”。 ... 此分词具有自己学习的功能,所以拜托大家不要.乱提交数据.会带坏人家的....

    39 案例实战:如何解决经典的Too many connections故障?背后原理是什么.pdf

    除了文件句柄限制之外,ulimit命令还可以限制其他资源的使用,例如coreFileSize(进程崩溃转储文件大小)、maxLockedMemory(最大锁定内存大小)、openFiles(最大打开文件句柄数)以及maxUserProcesses(最大用户...

    nginx fastdfs.docx

    - 关于 `tracker.conf` 的其他参数,可参考官方文档:http://bbs.chinaunix.net/thread-1941456-1-1.html 2. 对于存储节点(storage)的配置: - 复制 `storage.conf.sample` 文件为 `storage.conf`。 - 修改 `...

    2008mvp.zip

    因此,这可能是关于2008年微软MVP计划的相关资料。 【描述】"2008mvp.zip" 的描述为空,没有提供进一步的具体信息。这可能意味着我们需要解压缩文件并查看其内容来获取更多信息。 【标签】"2008mvp.zip" 同样没有...

    Hadoop集群(第12期副刊)_Hbase性能优化

    Linux系统最大可打开文件数一般默认的参数值是1024,如果你不进行修改并发量上来的时候会出现“Too Many Open Files”的错误,导致整个HBase不可运行,你可以用ulimit -n 命令进行修改,或者修改/etc/security/...

    http连接关闭

    too many open files问题分析和解决

Global site tag (gtag.js) - Google Analytics