gpt4 book ai didi

linux - 使用选项时lsof "lies"?

转载 作者:太空宇宙 更新时间:2023-11-04 04:56:33 24 4
gpt4 key购买 nike

我遇到一个问题,我的 Java 应用程序打开了太多文件。调试这个问题,我依赖于使用lsof。然而,以这种方式运行 lsof 需要太多时间(超过一分钟):

lsof |grep "java" 

我应该能够使用 -p 选项运行它,但它“撒谎”了。它显示的行数太少。

lsof -p <PID of the java process>

这是我的证明:

lsof |grep java  | wc -l 
1510146

lsof -p 802 | wc -l
4735

如果我使用 -u 选项限制用户名(进程所有者),也会发生同样的情况。

我的系统是:Linux 3.16.0-4-amd64 #1 SMP Debian 3.16.39-1+deb8u2 (2017-03-07) x86_64 GNU/Linux

我错过了什么吗?除了使用 lsof 之外还有其他选择吗?

最佳答案

lsof 没有说谎。命令的输出:

lsof |grep java  | wc -l 

可能包含其他程序打开的文件或进程的结果。

您要搜索的结果是命令的结果:

lsof -p <PID> | wc -l

您可以增加运行 Java 应用程序的用户打开文件的限制,在/etc/security/limits.conf 中添加以下行:

<USER>   hard   nofile  65536

您可以通过键入以下内容来检查当前用户的限制:

su - <USER>
ulimit -a

关于linux - 使用选项时lsof "lies"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44756148/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com