【分享】文件句柄数递增问题排查--引申出SOCKET泄露

本文介绍了如何排查服务器文件句柄数增加的问题,通过`ulimit -n`检查限制,使用`lsof`命令分析进程占用句柄情况。当发现进程句柄数递增且存在大量无法识别协议的SOCKET时,可能存在SOCKET泄露。检查socket生命周期管理,确保正确关闭或释放资源。
摘要由CSDN通过智能技术生成
最近在linux上开发的一个c++项目,存在打开的文件句柄数时而递增的现象,当超过服务器设置的单进程最大文件句柄数时出现进程挂死,解决问题迫在眉睫;

若想知道服务器上设置的单进程最大文件句柄数,可通过命令:

ulimit -n


一般默认的单进程能打开的最大文件句柄数为1024,当然你可以更改其值,但终归治标不治本;

本身这个项目我掐指一算打开的文件句柄数不会超过100,更加坚定有问题,首先查看当前服务器打开的文件句柄数汇总情况:

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


首先根据汇总情况查看你的服务进程占用了多少个文件句柄,数量上是否有所递增的趋势,若发现递增不减的再细致查看该进

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值