OSError:[Error 24] Too many open files python 解决方案

OSError:[Error 24] Too many open files python 解决方案

问题描述

在高并发或者接口压测过程中常常会遇到的错误,这里并不是程序中打开文件过多,而是某个时间端服务打开的连接数超出服务器的句柄数限制所导致的报错。所以这里我们不要惊慌或者自己的代码出了bug,我的服务是使用supervisor进行管理的,在压测过程中出现了这个问题。

问题排查

  1. 通过 ps -ef 查看自己服务的进程ID,再通过lsof -p pid | wc -l 查看当前服务打开的句柄数,通过命令ulimit -a 查看当前设置的最大句柄数设置,如下图所示,我的服务的句柄数为1180,而系统的限制为65533,1180 < 65533 为什么会出现这样的情况,我刚开始也再质疑,蒙圈的去走读了几次代码。
    我当前的服务目前设置的最大句柄数为65533

  2. 如果你的服务是直接使用命令行启动的话别急,而且 服务句柄数 是大于服务器限制的话。通过一下方式配置的话即可解决。
    修改系统配置文件,增大允许打开的文件数
    vim /etc/security/limits.conf
    #在最后加入

* soft nofile 65533 
* hard nofile 65533

保存退出后重启系统
再通过ulimit -a 查看是否修改成功

  1. 通过命令 vi /proc/pid/limits 查看当前的句柄数限制,奇怪,为什么通过ulimit

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值