最近项目中300个左右的爬虫总是报
twisted.internet.error.ConnectBindError: Couldn't bind: 24: Too many open files.
由于网络质量的问题,会出现部分连接无法回收,于是查询资料,按照网上的建议,都是修改soft max limit 参数,
但是我改了,查看爬虫进程的 max open files 始终不变。
修改配置:
ulimit -n 2048
ulimit -HSn 2048
查看进程max open files :
cat /proc/进程ID/limits
经过折腾终于找到了解决办法,
原因:部署爬虫的进程管理工具是 supervisor,被这个工具的 max open files限制了,于是乎,修改该服务的配置文件:
vim /usr/lib/systemd/system/supervisord.service
增加这一行
查看效果,两个进程的限制都更改成功:
目前就没有再没有报过这个错误了,说明其两者是互相依赖关系。