我有一个客户端进程,它对服务器进程执行RPC(通过ømq)。整个周末我都让客户端在调试器中运行。
今天早上,我收到了来自客户的大量“太多打开文件”的错误。当然,记录器没有记录异常堆栈跟踪,所以我试图找到错误发生的位置。我假设某个地方我没有正确关闭套接字。然而,lsof的输出报告了一堆这些(pid是2369):
seth@titan ~ $ lsof | grep 2369
...
python 2369 2427 seth 947u 0000 0,10 0 7715 anon_inode
python 2369 2427 seth 948u 0000 0,10 0 7715 anon_inode
python 2369 2427 seth 949u 0000 0,10 0 7715 anon_inode
python 2369 2427 seth 950u 0000 0,10 0 7715 anon_inode
...
我希望在TIME_WAIT
或其他东西中看到一堆套接字。
anon_inodes
是什么?他们与网络有什么关系,还是我在错误的树上咆哮?
这是薄荷17.3上的python3.4.3(3.19.0-33-通用#38~14.04.1-Ubuntu SMP)。