我有一个新的系统,每当我运行产生过多进程的程序时,Ubuntu 就会冻结。(冻结到即使按住 Alt 和 SysReq 键并输入 REISUB 也不起作用,尽管我已激活它们)
我有一个使用多进程的 Python 程序,其中一个参数决定要生成的进程数。我一直在使用它,没有问题,在具有 12 个线程的 Intel i7-8700k 上生成了 24 个进程(在 Ubuntu 上)。
现在,我有一个新的 Threadripper 2950X 版本(即 16 核/32 线程),带有 Ubuntu 18.04 LTS。当我运行包含超过 20 个进程的程序时,它会冻结整个机器并迫使我进行硬重置。
但是,我可以启动该程序两次(因此是 16 和 16 个进程),它可以毫无问题地运行。
我如何找到问题?(例如将其缩小到 python、ubuntu 和硬件)
我查看了 /var/log/syslog,但没有什么发现(而且我不确定我在寻找什么)
答案1
答案2
您可以在 Python 中使用异步概念。它比线程更高效。它整体上只使用一个线程。有关更多详细信息,请参阅https://realpython.com/async-io-python/