HibiAPI icon indicating copy to clipboard operation
HibiAPI copied to clipboard

运行时抛出 `OSError: [Errno 24] Too many open files`

Open Kyomotoi opened this issue 3 years ago • 0 comments

错误概览

hibiapi 配置成服务后:

[Unit]
Description="HibiAPI Service"

[Service]
User=root
WorkingDirectory=...
ExecStart=hibiapi
Restart=always
RestartSec=2

[Install]
WantedBy=multi-user.target

运行一段时间,抛出如下错误:

future: <Task finished name='Task-6778' coro=<login() done, defined at /usr/local/lib/python3.8/dist-packages/hibiapi/app/routes/pixiv.py:47> exception=OSError(24, 'Too many open files')>
Traceback (most recent call last):

> File "/usr/local/lib/python3.8/dist-packages/hibiapi/app/routes/pixiv.py", line 56, in login
  File "/usr/local/lib/python3.8/dist-packages/hibiapi/api/pixiv/net.py", line 58, in login
  File "/usr/local/lib/python3.8/dist-packages/hibiapi/api/pixiv/net.py", line 83, in auth
  File "/usr/local/lib/python3.8/dist-packages/hibiapi/utils/net.py", line 106, in __aenter__
  File "/usr/local/lib/python3.8/dist-packages/hibiapi/utils/net.py", line 85, in create_client
  File "/usr/local/lib/python3.8/dist-packages/httpx/_client.py", line 1373, in __init__
  File "/usr/local/lib/python3.8/dist-packages/httpx/_client.py", line 1421, in _init_transport
  File "/usr/local/lib/python3.8/dist-packages/httpx/_transports/default.py", line 261, in __init__
  File "/usr/local/lib/python3.8/dist-packages/httpx/_config.py", line 49, in create_ssl_context
  File "/usr/local/lib/python3.8/dist-packages/httpx/_config.py", line 73, in __init__
  File "/usr/local/lib/python3.8/dist-packages/httpx/_config.py", line 85, in load_ssl_context
  File "/usr/local/lib/python3.8/dist-packages/httpx/_config.py", line 142, in load_ssl_context_verify
OSError: [Errno 24] Too many open files

尝试修复

修改 /etc/security/limits.conf 新增如下:

*                hard    nofile          655350
*                soft    nofile          655350

*                hard    nproc           655350
*                soft    nproc           655350

root             hard    nofile          655350
root             soft    nofile          655350

纯摆烂改的 655350

  • 重启服务器

键入 ulimit -a:

-t: cpu time (seconds)              unlimited
-f: file size (blocks)              unlimited
-d: data seg size (kbytes)          unlimited
-s: stack size (kbytes)             8192
-c: core file size (blocks)         0
-m: resident set size (kbytes)      unlimited
-u: processes                       31477
-n: file descriptors                655350
-l: locked-in-memory size (kbytes)  65536
-v: address space (kbytes)          unlimited
-x: file locks                      unlimited
-i: pending signals                 31477
-q: bytes in POSIX msg queues       819200
-e: max nice                        0
-r: max rt priority                 0
-N 15:                              unlimited

ulimit -n:

655350

可以看到,修改已生效

经过一段时间后(不超过一天),报错依存

环境

  • Ubuntu 20.04 x86_64 Linux 5.4.0-104-generic
  • RAM: 7957MiB
  • Disk: 488G
  • Python: 3.8.10

Kyomotoi avatar Apr 02 '22 16:04 Kyomotoi