linux socket句柄泄露,socket句柄泄漏问题的定位: losf和strace的联合使用!
最近遇到一个socket句柄泄漏的问题, 我们来简要说说如何定位:
1. 确定哪个进程在泄漏, 可以用命令 lsof -n|awk '{print $2}'| sort | uniq -c | sort -nr | head ,这个命令找的是打开句柄数目最多的进程, 多敲入几次, 就知道是那个进程在增长了。 而且累积到一定阶段, 泄漏的进程打开的句柄数会增长。 此步骤可以找到泄漏的进程号xxx
2. 利用ps -aux | grep xxx 可以确认是那个进程。
3. 反复敲入 ll /proc/xxx/fd确认进程的打开句柄数在增长。
4. 如果这个服务有多个进程, 建议先调节成一个(便于集中分析), 然后用strace -p xxx查看系统调用信息, 然后找到该close但没有close的地方, 很好找的。
5. 从strace信息中找到网络对端的ip和port, 确认对端服务是干啥的, 然后就知道自己这端对应的代码在哪里了, 圈定了范围, review代码就简单了。
搞定! 如果要看类似分析, 请参考之前的文章: http://blog.csdn.net/stpeace/article/details/51809584 《聊聊进程异常重启的问题------顺便详解linux句柄泄漏问题的定位(知识点: lsof -p xxx; ll /proc/xxx/fd)》
linux socket句柄泄露,socket句柄泄漏问题的定位: losf和strace的联合使用!相关推荐
- windbg调试句柄泄露
本人系统是win7 64位,待调试程序是32位.这里使用的方法是真机配合虚拟机同时调试的方法来找出句柄泄露的源码位置. 如果真机直接使用X64版本的windbg侦测句柄泄露时显示: 0:000:x86 ...
- Windows 句柄泄露学习总结
句柄泄露实例分析 http://www.cnblogs.com/Leo_wl/p/5397274.html 在上篇文章.NET对象与Windows句柄(二):句柄分类和.NET句柄泄露的例子中,我们有 ...
- Linux下高并发socket最大连接数所受的各种限制
修改最大打开文件数 # ulimit -n 修改最大进程数 # ulimit -u ------------------------------------------------------ Lin ...
- linux socket文件数限制,Linux下高并发socket最大连接数所受的限制问题
Linux下高并发socket最大连接数所受的限制问题1.修改用户进程可打开文件数限制在Linux平台上,无论编写客户端程序还是服务端程序,在进行高并发TCP连接处理时, 最高的并发数量都要受到系统对 ...
- Linux进程最大socket数,Linux下高并发socket最大连接数所受的各种限制(详解)
1.修改用户进程可打开文件数限制 在Linux平台上,无论编写客户端程序还是服务端程序,在进行高并发TCP连接处理时,最高的并发数量都要受到系统对用户单一进程同时可打开文件数量的限制(这是因为系统为每 ...
- 【Linux】详解socket编程接口
socket编程接口详解 1. socket常见API 2. IPv4协议的地址信息结构:sockaddr_in结构体 2.1 sockaddr结构体 2.2 in_addr结构体 2.3 socka ...
- C++笔记--Linux网络编程(15-0)-socket(供自查,文档说明)
目录 网络基础 协议的概念 什么是协议 典型协议 网络应用程序设计模式 C/S模式 B/S模式 优缺点 分层模型 OSI七层模型 TCP/IP四层模型 通信过程 协议格式 数据包封装 以太网帧格式 A ...
- Linux之进程数和句柄数
Linux之进程数和句柄数 1.背景 由于业务的需要,我们在阿里云上面申请了30多台主机,安装的是centos7.2.1511系统.一般情况下,我们需要对文件句柄数.进程数等做一些标准化的配置. 2. ...
- [linux][c语言]用socket实现简单的服务器客户端交互
Socket解释: 网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket. Socket的英文原义是"孔"或"插座".作为B ...
最新文章
- 渗透Xen hypervisor
- Android多线程分析之一:使用Thread异步下载图像
- Java集合框架一览笔录
- JZOJ 5354. 【NOIP2017提高A组模拟9.9】导弹拦截
- 11相机不流畅_小米11最新售价确定,标准版价格亲民,网友:幸福来得真突然...
- 利用ffmpeg来进行视频解码的完整示例代码(H.264)
- Java中的代码块标记
- matlab常用的代码,matlab常用代码
- Linux下rz/sz安装及使用方法_上传和下载文件
- 能让IT部门告别996的办公神器,你一定要知道
- Solr删除managedschema
- God of War Ascension / 战神4, 再一次迎来新导演!
- 遍历children_二叉树:层序遍历登场!
- matlab方差 anov,方差分析
- 使用Windows命令行reg控制注册表键值
- 开源之道解读 Liunx 基金会开源办公室调查报告
- MOS 管 场效应管
- 配置python命令tab键自动补全
- Node.js b站教学视频汇总笔记(完)CommonJS模块规范、 require、npm、Express(中间件)、MongoDB、MySQL
- 《论文阅读》FlowStep3D: Model Unrolling for Self-Supervised Scene Flow Estimation
热门文章
- oracle导入导出表
- 移动应用的黄金四分类
- Windows Phone 7之初体验(四.平台架构简介)
- 华为机试HJ44:Sudoku(数独问题,深度优先遍历DFS解法)
- gorm存指针数据_C语言重点——指针篇(一篇让你完全搞懂指针)
- android 按钮列表,android – 如何使按钮看起来像列表
- 黑马博客——详细步骤(二)项目功能的实现之登录功能
- 2020.7.20-每日进步
- 软件测试:职场上那些你不得不学会的事儿
- java获取汉字的拼音首字母_java获取汉字的拼音首字母