![](/img/trans.png)
[英]Troubleshooting a Java program that causes a server to hang with “too many files open”
[英]file descriptor leak in java program : too many open files
我有一個程序,文件描述符增加了。 我看到當我執行命令ls -l / proc / 5969 / fd時,其中5969是Java程序的pid,文件描述符的數量不斷增加。 但我無法打開其中一個文件解密器,以查看哪個文件保持打開狀態:這是清單的示例:
lrwx------ 1 root root 64 oct 24 16:08 52295 -> socket:[2577706264]
lrwx------ 1 root root 64 oct 24 16:08 52296 -> socket:[2579543392]
lrwx------ 1 root root 64 oct 24 16:08 52297 -> socket:[2578760962]
請幫助我找到解決此文件描述符泄漏的方法,以了解哪些文件保持打開狀態並增加文件描述符數目。
好吧,從快速的觀察來看,您正在套接字而不是文件上使用文件描述符
在UNIX中,文件和套接字都使用文件描述符,因此在不關閉打開的套接字時會遇到問題。
如此一來,您不會打開文件,而是實際上使端口號被鎖定,以防止其他程序使用。
嘗試
# lsof -p <pid>
將按進程ID列出所有打開的“文件”,並可能顯示套接字綁定到的IP /端口。 如果您的程序是客戶端程序,則您可能會被TCP RST斷開連接,並且無法正確清理文件描述符。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.