我有一个新系统,每当我运行一个产生太多进程的程序时,Ubuntu 就会冻结。(冻结,即使按住 Alt 和 SysReq 键并键入 REISUB 也无济于事,即使我激活了它们)
我有一个使用多进程的 python 程序,其中一个参数确定要生成的进程数。我一直在毫无问题地使用它,在具有 12 个线程的 Intel i7-8700k 上生成 24 个进程(在 Ubuntu 上)。
现在,我有一个带有 Ubuntu 18.04 LTS 的新 Threadripper 2950X 版本(即 16 核 / 32 线程)。当我运行超过 20 个进程的程序时,它会冻结整个机器并迫使我进行硬重置。
但是,我可以启动程序两次(所以 16 和 16 进程),它会毫无问题地运行。
我如何找到问题?(即缩小到python vs ubuntu vs hardware)
我查看了 /var/log/syslog 但没有什么突出的(而且我不确定我在寻找什么)
原来是硬件问题。
我能够使用此测试重现该问题。
我正在使用 PRIME-X399-A 主板。我注意到最近发布了一个 BIOS 更新。更新bios解决了这个问题。
您可以在 python 中使用异步概念。它比线程更有效。它只使用了一个线程作为一个整体。有关更多详细信息,请参阅https://realpython.com/async-io-python/