标签: lsof

lsof - 仅将输出限制为物理文件 - 如何?

我如何告诉 lsof 我只需要列出物理文件(不是套接字,不是 TCP/IP 连接,只有物理文件)?

linux lsof

33
推荐指数
2
解决办法
3万
查看次数

如何跟踪进程在其生命周期中打开的所有文件

我知道使用 lsof 来检查进程当前访问的文件。有没有办法查看应用程序在其生命周期中打开的所有文件?

linux filesystems lsof

24
推荐指数
2
解决办法
2万
查看次数

`lsof -p <pid> | 和有什么区别?wc -l` 和 `ls /proc/<pid>/fd | wc -l`?

背景:我正在监视用于为特定用户运行进程的 ulimit。(我偶尔会看到以不正确的限制开始的进程。)我问了几个自称是 Linux 专家的人,一个建议lsof -p <pid>,另一个建议ls /proc/<pid>/fd,但都没有肯定哪个更准确地反映了对最大值的实际计数进程的打开文件限制。

那么,它是哪个?

lsof -p <pid> | wc -l
Run Code Online (Sandbox Code Playgroud)

或者

ls /proc/<pid>/fd | wc -l
Run Code Online (Sandbox Code Playgroud)

请详细说明区别。谢谢!

linux lsof ulimit

16
推荐指数
1
解决办法
8657
查看次数

链接到特定的 inode

我有一个文件已被删除,但仍被程序打开。我使用 lsof 找到了 inode 编号。我怎样才能创建一个硬链接回到那个inode?

linux lsof inode

14
推荐指数
1
解决办法
3890
查看次数

在 Linux 上,如何查看进程在文件中的距离?

如果我有一个管道命令,例如

   cat myfile | processor_application
Run Code Online (Sandbox Code Playgroud)

其中processor_application 是从标准中读取的东西,以块为单位,进行处理,是否有可能看到文件 cat 已经走了多远?

可能使用lsof?

谢谢!

linux lsof pipe

13
推荐指数
3
解决办法
1697
查看次数

服务器上的 TCP 监控:比较 netstat 与 lsof?

我正在监视服务器上的 TCP 堆栈,希望能够推断出盒子上的应用程序存在的问题。

我的第一个倾向是测量所有报告状态(LISTEN、ESTABLISHED、FIN_WAIT2、TIME_WAIT 等)中的套接字数量并检测一些异常情况。

一位队友建议“lsof”将是一个更好的工具来查看 TCP 堆栈处于什么状态。

服务器故障人群的任何偏好或经验提示?

linux unix netstat tcp lsof

12
推荐指数
1
解决办法
7764
查看次数

如何追踪文件描述符泄漏?

我有一个正在泄漏文件描述符的 Java 进程(Glassfish)。我知道这一点,因为我得到了有用的java.io.IOException: Too many open files例外。我可以/proc/PID#/fd查看所有打开的文件描述符。当我使用 lsof 时,我得到了大量这样的条目:

java 18510 root 8811u sock 0,4 1576079 无法识别协议
java 18510 root 8812u sock 0,4 1576111 无法识别协议
java 18510 root 8813u sock 0,4 1576150 无法识别协议

我看到每分钟创建 12 个新的。我可以在 lsof 上使用哪些选项或我可以使用哪些其他工具来帮助跟踪无法识别协议的套接字文件描述符?

lsof max-file-descriptors

12
推荐指数
2
解决办法
3万
查看次数

lsof 的非 CPU 密集型替代品?

我们运行一个Apache Cassandra集群,其中每个主机在任何给定时间都有几十万个文件打开。

我们希望能够定期获取打开文件的数量并将这个数字输入到Graphite 中,但是当我们在 Graphitelsof下运行时collectd,它最终需要几分钟才能完成并同时消耗过多的 CPU .

我想知道是否有另一种更友好的方式来获取 lsof 提供的相同数据,或者甚至是一种运行 lsof 的方法,它不会明显地占用 CPU?(虽然我认为后一种方法可能需要比目前更长的时间才能完成......并不理想)。

也许内核在某处维护了一些包含打开文件数的变量?妄想?

更新:

作为对其中一个答案的回应,我们已经在使用-b-n标志。这是我在下面运行的完整命令collectd

sudo lsof -b -n -w | stdbuf -i0 -o0 -e0 wc -l
Run Code Online (Sandbox Code Playgroud)

linux lsof

12
推荐指数
2
解决办法
2046
查看次数

如何让我的老板明白服务器故障是一件坏事?

我目前在东京为一家刚刚开始认真的在线业务的小公司工作。最近,我们在租用的 VPS 服务器上遇到了最大打开文件问题,导致服务暂时停止运行(实际上或多或少是暂时停止)。现在作为一个好公民,我通知了我的老板并要求他再买一台服务器,因为一旦服务器宕机,我们将损失金钱,无法出售任何东西。

令人惊讶的是,什么也没发生。

更糟糕的是,他只是喜欢拖延任何可能真正让我们花钱的事情。

我如何向我的老板传达信息,即服务器宕机实际上是一件坏事?或者我们实际上可以做些什么来使用其他方式修复它?(不,我们不能提高文件限制:))

linux redhat lsof

11
推荐指数
2
解决办法
902
查看次数

如何观察 nginx 正在做什么?(解决:“1024个worker_connections还不够”)

我有一个在 nginx 上运行的流量非常低的站点,有 4 个工人,每个有 1024 个连接。

每隔几个小时,我就会在错误日志中看到“1024 个 worker_connections 不够”,我的网站速度变慢/变得不稳定。在接下来的几个小时内,nginx 重启完全解决了这个问题。

显然发生了一些奇怪的事情,我无法为我的应用程序的 4k 并发用户提供服务。

除了查看访问日志(看起来很正常)之外,有没有办法更详细地观察 nginx 正在做什么?

是否有一些臭名昭著的配置组合可能导致旧连接保持打开而不关闭?

谢谢。

编辑 这看起来不对

# lsof |grep nginx |grep CLOSE_WAIT |wc -l
1271
Run Code Online (Sandbox Code Playgroud)

nginx lsof

10
推荐指数
1
解决办法
1万
查看次数

标签 统计

lsof ×10

linux ×8

filesystems ×1

inode ×1

max-file-descriptors ×1

netstat ×1

nginx ×1

pipe ×1

redhat ×1

tcp ×1

ulimit ×1

unix ×1