我有两台相同的 Linux 笔记本电脑(Core™ i7-4810MQ,32GB RAM),都运行 Ubuntu 16.04。在机器 2 上运行任何命令似乎都需要在机器 1 上花费大约 4-12 倍的时间,具体取决于活动。上周晚些时候在运行一些简单的gradle
构建时注意到了这一点,从那时起就没有改变。
为了进行测量,我在每个系统上运行了 C++ 构建。我之所以选择这个是因为几个月前我编写了 C++ 程序,并在两个系统上都构建了它。它们没有被测量,但当时它们花费的时间大致相同。今天在每个系统上运行以下内容:
make clean && time make -j8
系统 1 完成并生成以下报告:
real 0m54.627s
user 5m54.188s
sys 0m23.008s
系统 2 需要更长的时间:
real 11m1.053s
user 65m59.512s
sys 4m10.404s
在 Stack Exchange 和 Google 上进行搜索会导致出现大量诊断该问题的线索,但它们似乎都假设有一个进程正在减慢机器速度。top
,iostat
等gnome-system-monitor
报告两台机器上的资源使用情况相同 - 都没有忙于做任何困难的事情,并且有大量的 CPU、内存、带宽和 io 可用。
当 Linux 系统明显性能不佳但不是硬件功能限制时,首先要检查什么?
答案1
我不会接受这个答案,但这是我学到的教训:如果分析工具无法提供帮助,请仔细考虑系统最近发生了哪些变化。我们对系统 2 所做的唯一更改(过去一周内未对系统 1 所做的更改)是在系统 2 上启动 Gradle 守护进程。这一定是问题的原因,事实也确实如此。