Ubuntu 在多线程上运行程序时会冻结

Ubuntu 在多线程上运行程序时会冻结

我有一个新的系统,每当我运行产生过多进程的程序时,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,但没有什么发现(而且我不确定我在寻找什么)

系统监视器屏幕冻结的照片: 在此处输入图片描述

更新:当我两次运行该程序,每次使用 16 个进程时,也会出现此问题 htop 输出冻结

答案1

最终发现是硬件问题。

我可以使用此方法重现此问题测试

我正在使用 PRIME-X399-A 主板。我注意到最近发布了一个 BIOS 更新。更新 BIOS 解决了该问题。

答案2

您可以在 Python 中使用异步概念。它比线程更高效。它整体上只使用一个线程。有关更多详细信息,请参阅https://realpython.com/async-io-python/

相关内容