news 2026/4/23 11:16:01

Linux ss命令比lsof命令快的原因剖析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Linux ss命令比lsof命令快的原因剖析

主要区别

1.lsof(慢的原因)

  • 遍历进程信息lsof需要遍历/proc文件系统下的所有进程目录,检查每个进程的文件描述符
  • 解析大量文件:需要读取/proc/[pid]/fd/*/proc/[pid]/maps等文件
  • 获取详细信息:为了显示进程名、用户等信息,需要读取更多进程元数据
  • 单进程运行:通常是单线程遍历所有进程

2.ss -tuln(快的原因)

  • 直接访问内核数据结构:通过 netlink 接口直接从内核获取 socket 信息
  • 批量获取:一次性获取所有网络连接信息,而不是逐个进程查询
  • 内核优化:网络栈在内核中是高度优化的数据结构
  • 只关注网络:专注于网络连接,不涉及其他文件类型

具体技术对比

# lsof 的工作流程(简化)1. 遍历 /proc/*/fd 目录2. 对每个进程,读取 fd 符号链接3. 解析 socket:[inode]格式4. 去其他数据结构匹配 inode5. 收集并格式化输出# ss 的工作流程(简化)1. 通过 netlink 发送查询请求2. 内核批量返回 socket 列表3. 直接格式化输出

性能对比数据

# 在典型系统上测试$timess -tuln>/dev/null real 0m0.008s $timelsof-i -n>/dev/null real 0m0.350s# 慢40倍以上!

使用场景建议

使用 ss

  • 仅需要查看网络连接时
  • 需要快速查看端口占用
  • 在脚本或自动化工具中使用
  • 需要实时监控网络状态

使用 lsof

  • 需要知道哪个进程占用了端口
  • 需要查看进程打开的所有文件(包括网络、普通文件、管道等)
  • 调试特定进程的资源使用情况
  • 需要更详细的信息(用户、进程名、命令行等)

实际例子

# 快速查看监听端口 - 用 ssss -tuln|grepLISTEN# 找出谁占用了80端口 - 用 lsof 更合适lsof-i:80# 或者用 ss + lsof 组合PORT=80ss -tulp|grep:$PORT# 或者直接用 ss 的 -p 选项(部分系统支持)ss -tulnp|grep:$PORT

总结

ss快是因为它走专用通道直接访问内核的网络数据结构,而lsof慢是因为它需要遍历整个进程空间并解析大量文件。如果你的需求只是查看网络连接状态,总是优先使用ss;如果需要进程级的详细信息,才使用lsof

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/19 10:30:35

django-flask基于python汽车维修保养管理系统pycharm -Vue

目录基于Python的汽车维修保养管理系统(Django/Flask Vue.js)核心功能模块技术实现亮点关于博主开发技术路线相关技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!基于Python的汽车维修…

作者头像 李华
网站建设 2026/4/23 9:57:46

A.每日一题——128. 最长连续序列

题目链接:128. 最长连续序列(中等) 算法原理: 解法:哈希表 23ms击败91.35% 时间复杂度O(N) 题目要求时间复杂度是O(N),那么我们就不能直接调用Arrays.sort直接排序,因为这样的话时间复杂度会飙升…

作者头像 李华
网站建设 2026/4/23 9:59:06

近几年持证人薪资高20%的CAIE证书,这些坑千万别踩

AI技术加速渗透职场,CAIE注册人工智能工程师认证凭借对职业竞争力的提升作用,成为不少人转型进阶的选择。但伴随报考热度攀升,各类陷阱也层出不穷。本文结合官方规则,拆解核心避坑要点,帮大家合理规划备考路径&#xf…

作者头像 李华
网站建设 2026/4/23 9:56:14

GESP认证C++编程真题解析 | B4258 [GESP202503 一级] 四舍五入

​欢迎大家订阅我的专栏:算法题解:C与Python实现! 本专栏旨在帮助大家从基础到进阶 ,逐步提升编程能力,助力信息学竞赛备战! 专栏特色 1.经典算法练习:根据信息学竞赛大纲,精心挑选…

作者头像 李华
网站建设 2026/4/23 9:55:54

基于Springboot流浪动物救助系统o8g44kwc(程序、源码、数据库、调试部署方案及开发环境)系统界面展示及获取方式置于文档末尾,可供参考。

一、系统程序文件列表二、开题报告内容一、开题背景与意义1.1 研究背景随着城市化进程的加速,流浪动物问题日益凸显。大量流浪动物在城市中生存,它们面临着食物短缺、疾病肆虐、意外伤害等诸多困境。同时,流浪动物的存在也给城市管理和公共卫…

作者头像 李华