在运行数小时后永久"名称解析暂时失败"

237*_*371 18 python urllib2 httplib

在Linux上运行了几个小时后,我使用urllib2,httplib和线程的Python 2.6程序开始为每个请求引发此错误:

<class 'urllib2.URLError'> URLError(gaierror(-3, 'Temporary failure in name resolution'),)

如果我重新启动程序,它会再次开始工作.我的猜测是某种资源枯竭但我不知道如何检查它.我该如何诊断和解决问题?

237*_*371 16

这是由于库无法关闭连接导致大量连接陷入CLOSE_WAIT状态.最终,由于资源耗尽,这会导致"名称解析暂时失败"错误.

  • 什么时候这个问题确切?我假设错误是由httplib库引起的? (12认同)
  • 借调,请提供有关您的调查结果的更多详情,谢谢! (10认同)
  • @ 2371:你是怎么发现资源耗尽的? (8认同)
  • 我在 python requests 中遇到了类似的问题。解决方案是通过会话对象使用连接池http://docs.python-requests.org/en/master/user/advanced/#session-objects (3认同)