Linux 文件句柄数 https://www.cnblogs.com/feng0815/p/8620564.html
1, 问题阐述:
too many open files: 顾名思义即打开过多文件数.
不过这里的 files 不单是文件的意思, 也包括打开的通讯链接 (比如 socket), 正在监听的端口等等, 所以有时候也可以叫做句柄 (handle), 这个错误通常也可以叫做句柄数超出系统限制.
2, 产生的原因:
经常在使用 Linux 的时候出现, 大多数情况是由于程序没有正常关闭一些资源引起的, 所以出现这种情况, 请检查 io 读写, socket 通讯等是否正常关闭.
3, 经典案例:
很多项目上线不久运行了一段时间后, 服务突然宕了, 经检查日志, 出现了 too many open files 错误.
1) 统计各进程打开句柄数: lsof -n|awk '{print $2}'|sort|uniq -c|sort -nr
2) 统计各用户打开句柄数: lsof -n|awk '{print $3}'|sort|uniq -c|sort -nr
3) 统计各命令打开句柄数: lsof -n|awk '{print $1}'|sort|uniq -c|sort -nr
tcp 的 65535 个连接之迷
tcp 的 65535 个连接之迷
Linux 下高并发 socket 最大连接数所受的各种限制
Linux 下高并发 socket 最大连接数所受的各种限制 https://www.cnblogs.com/dasn/articles/5566001.html
在 Linux 平台上, 无论编写客户端程序还是服务端程序, 在进行高并发 TCP 连接处理时, 最高的并发数量都要受到系统对用户单一进程同时可打开文件数量的限制 (这是因为系统为每个 TCP 连接都要创建一个 socket 句柄, 每个 socket 句柄同时也是一个文件句柄). 可使用 ulimit 命令查看系统允许当前用户进程打开的文件数限制:
[[email protected] ~]$ ulimit -n
Linux 进程数和句柄数
Linux 进程数和句柄数
Linux 命令神器: lsof 入门
Linux 命令神器: lsof 入门 https://linux.cn/article-4099-1.html
来源: http://www.bubuko.com/infodetail-3114824.html