RuntimeError:无法启动新线程

RuntimeError:无法启动新线程

我遇到一个问题,在我的服务器上运行同一个 Python 程序的多个实例导致某些作业引发以下错误:

  File "/home/joe/workspace/20211016_235943_532300_ltr/venv38/lib/python3.8/site-packages/paramiko/client.py", line 406, in connect
    t.start_client(timeout=timeout)
  File "/home/joe/workspace/20211016_235943_532300_ltr/venv38/lib/python3.8/site-packages/paramiko/transport.py", line 653, in start_client
    self.start()
  File "/usr/local/lib/python3.8/threading.py", line 852, in start
    _start_new_thread(self._bootstrap, ())
RuntimeError: can't start new thread

错误消息很明确,看起来建立 SSH 连接的 Paramiko 库无法创建新线程。我在 Stackoverflow 上阅读了有关此问题的文章,甚至尝试实施此解决方案-

$ ps -fLu exec | wc -l
3956

$ ulimit -u
16384

$ ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 513699
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 16384
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

这并没有解决问题,我找不到更好的解决方案。此服务器的唯一目的是执行这些工作,以便我可以指定系统可以支持的任何最大值。

如能得到有关如何解决该问题的任何建议,我将非常感激。

一些相关的系统信息:

$ free -h
              total        used        free      shared  buff/cache   available
Mem:           125G        5.0G        1.3G         93M        119G        120G
Swap:           62G         36K         62G

$ cat /proc/sys/kernel/threads-max
1027399

$ cat /proc/sys/kernel/pid_max
32768

$ cat /proc/sys/vm/max_map_count
65530

相关内容