栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

Question Accumulate

Question Accumulate

2021-11-05  Too many open files.

Question Description :  先启了zookeeper, 而后在连接kafka 时, 后出现下图所示问题. Inspect 消费 kafka 的数据, (思路: 因为kafka 的使用是要在zookeeper 开启的条件下进行的, 如果kafka 这边正常工作, 那么在zk上有数据,那就转向检查zk的problem.在实际生产/测试环境中,建议双边检查). 进入zk后,打印log日志, 出现了"Too many open files"的错误.

Analyze : linux 是有文件句柄(句柄即文件个数)限制的{Linux一切皆文件,所以打开文件数包含文件和Socket连接数},默认情况下该限制是1024, 但在高并发情况下是比较容易达到此数量的.

Solve : 

cat /proc/pid/limits      // (一定要以查看当前进程为准),查看当前进程最大打开文件数限制  

临时修改方案:ulimit -n 8192                // 将默认句柄数修改成8192.

彻底修改方案: /etc/security/limits.conf    在文件末尾添加

* soft nofile 65535
* hard nofile 65535

lsof命令是Linux中的一个系统监视命令,可以查看进程打开的文件、端口等,功能强大,上面的命令通过一串的管道后只保留了句柄数和PID, 

lsof -n|awk '{print $2}'|sort|uniq -c|sort -nr|more

       如果修改后,程序运行一段时间之后继续出现Too many open files异常,那么就应该查看句柄信息,进一步分析是什么句柄占用最多,排查原因,导出句柄信息到文件 lsof -p pid> lsof.log,筛选出占用句柄前十的信息.

cat lsof.log | awk '{print $8}' | sort | uniq -c | sort -rn | head -n 10

例如查询PID为25950的进程,使用的命令是:

lsof |grep 25950

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/422518.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号