背景
我最近买了华硕 ZenBook Pro。我使用它在本地测试深度学习实验。这些实验通常在 CPU 和 GPU 上都相当耗费计算资源。最近,我在进行一些繁重的计算时遇到了性能大幅下降的情况。
我已经安装了 Ubuntu 16.04。
问题
例如,当我使用 TensorFlow、Keras 安排训练作业或在 ROS 或 Python 中运行 CPU 和 GPU 繁重的作业时,就会出现问题。在预期性能(即良好和高性能)大约 30-60 秒后,性能突然下降,整个计算机几乎没有响应。需要完全重启才能恢复功能。
使用top
或nvidia-smi
系统监视器,我没有看到任何处理器对 CPU 或内存的使用突然激增。没有其他进程开始使用 CPU 或 GPU。
当处于无响应状态时,我还看到没有处理器使用任何明显的处理能力。
我怀疑 Ubuntu 的电源管理导致了这个问题,因为我的风扇有时也会失控,但我不是 Linux 专家。然而,当我安装 Ubuntu 时,我不得不用它进行初始启动,acpi=off
如果它有帮助的话。
编辑:我已经在安装了 Ubuntu 16.04 的其他计算机上测试了相同的代码,没有发现任何问题。
我非常感激任何能够帮助我定位问题或指导我到可以自己研究的地方的帮助。
答案1
这可能是 nvidia 驱动程序的问题,您是从 nvidia 网站下载的 .RUN 安装的还是从 ubuntu 提供的?应该可以通过设备管理器获取,通过谷歌搜索很容易找到安装驱动程序的指南。
我个人的建议是使用 Linux 发行版存储库中的专有 nvidia 驱动程序,这是因为开源驱动程序 nouveau 工作正常,但在需要性能时(并且是您的案例),nouveau 不是最佳解决方案。此外,在这种情况下从制造商网站下载也不是最佳解决方案,因为他们编写了通用 Linux 驱动程序,这肯定会为您提供更高的性能,但也会有更多的错误。我可以给您的另一个建议是测试不同版本的驱动程序。
答案2
如果散热不足,笔记本电脑会变得非常热。您的 CPU 是现代 Intel I7,大多数现代(昂贵)高端处理器在过热时会自动降低时钟速度,以避免崩溃,并且并不总是恢复到正常速度。
这一理论得到了以下事实的支持:问题仅在计算机负载过大时才会出现。这可能是 CPU、GPU 或两者的问题。
我建议添加一些 CPU 和 GPU 温度指示器,这样您就可以直观地看到它们的变化。以下内容可能会有所帮助:
如果问题确实是过热,您可以采取以下步骤:
- 冷却垫可能会改善这种情况
- 确保所有气道清洁
- 如果你的环境很尘土飞扬,清洁内饰可能会有所帮助
- 如果计算机仍在保修期内,请使用
- 如果不在保修期内,CPU 的导热膏可能需要更换
- 冷却风扇可能有故障
答案3
您的 CPU 可能过热。考虑到您的系统基本上没有响应,您需要设置一种方法来监控并将温度、时钟速度和其他参数写入磁盘,这样在重新启动后,您死后信息。
您可以使用如下脚本,它将检查风扇速度、各种温度和 CPU 时钟频率。这可能会为您提供足够的信息来弄清楚(或暗示)正在发生的事情。其他任何事情都可能是盲目的(这并不意味着他们不会击中目标)。
sed
可以使用和grep
/或获得更精美的输出格式awk
,这里有几个示例(见下文)。您还可以收集其他信息(见下文),但我想这些就足够了。
这有望帮助您找到问题(您的问题!)...现在,至于解决方案,这值得另一个问题。
用于监控各种参数的脚本。
#!/bin/bash
echo -n "" > monitor.log
while true ; do
echo "$(date +"%H:%M:%S")" >> monitor.log
sensors | sed 's/^/ /' >> monitor.log
cat /proc/cpuinfo | grep '\(processor\)\|\(cpu\ MHz\)' | sed 's/^/ /' >> monitor.log
echo "" >> monitor.log
# Write output every 2 seconds
sleep 2
done
关于如何格式化传感器输出等的参考。
https://unix.stackexchange.com/questions/79060/personalize-sensors-output-and-save-it-to-file
其他信息的参考。
https://askubuntu.com/questions/450045/show-cpu-usage-using-a-command