当前位置: > > > > 查看“打开的文件描述符”
来源:stackoverflow
2024-04-20 19:27:27
0浏览
收藏
IT行业相对于一般传统行业,发展更新速度更快,一旦停止了学习,很快就会被行业所淘汰。所以我们需要踏踏实实的不断学习,精进自己的技术,尤其是初学者。今天给大家整理了《查看“打开的文件描述符”》,聊聊,我们一起来看看吧!
问题内容
我有一个网页,后端用 Go 编写并在 Ubuntu 上运行,经过一定天数和活动(如发条)后,goroutine 将引发“恐慌”并开始给出 502 代理错误。我在 Go 中遇到的错误是“打开的文件太多。”
经过一些研究,我觉得我已经将问题范围缩小到“打开文件描述符”太多。我读过不同的建议解决方案,这些解决方案似乎对不同的人有不同的结果。这一切都很好,但如果我想实际查看这些所谓的实时打开文件描述符,以便我可以真正查明这些“文件”是什么,我该怎么做?我问这个问题是因为我不想尝试猜测我的 Go 程序的哪些部分导致了这个问题,我想看看是否可以进一步缩小范围(可能是未正确关闭的 MySQL 套接字,或者操作系统文件)未正确关闭等)
解决方案
您可以使用 lsof
命令 (Linux) 来“列出打开的文件”。将会有很多输出,因此最好使用选项来过滤输出。如果您知道进程的 PID,lsof -p <PID>
可能会很有用。使用 ps
命令查找 PID。
到这里,我们也就讲完了《查看“打开的文件描述符”》的内容了。个人认为,基础知识的学习和巩固,是为了更好的将其运用到项目中,欢迎关注公众号,带你了解更多关于的知识点!