我有兩台相同的 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 守護程序。