Linux

如何找到兩台相同 Ubuntu 伺服器之間性能差異巨大的原因?

  • December 10, 2012

我在數據中心的同一機架中執行兩台Dell R410伺服器(在負載均衡器後面)。兩者都具有相同的硬體配置,執行 Ubuntu 10.4,安裝相同的軟體包並執行相同的 Java Web 伺服器(沒有其他負載),我看到兩者之間的性能差異很大。

性能差異在兩台伺服器的平均響應時間中最為明顯(在 Java 應用程序本身中測量,沒有網路延遲):其中一台比另一台快 20-30%,非常一致。

我曾經dstat弄清楚,如果有更多的上下文切換、IO、交換或任何東西,但我看不出有什麼區別。在相同的工作負載下(沒有交換,幾乎沒有 IO),一台伺服器上的 cpu 使用率和負載更高。

因此,差異似乎主要受 CPU 限制,但雖然使用sysbench(關閉所有其他負載)的簡單 cpu 基準測試確實產生了差異,但只有 6%。所以也許不僅是CPU,還有記憶體性能。

到目前為止,我已經檢查過:

  • 所有組件的韌體版本(相同)
  • BIOS 設置(我使用 進行了轉儲dmidecode,但沒有顯示任何差異)
  • 我對比了一下/proc/cpuinfo,沒有區別。
  • 我比較了 的輸出cpufreq-info,沒有區別。
  • Java / JVM 參數(兩個系統上相同的版本和參數)

另外,幾個月前我完全更換了 RAM,沒有任何效果。

我搞不清楚了。我該怎麼做才能弄清楚,發生了什麼?

更新:耶!兩台伺服器現在性能相同。這是 jim_m_somewhere 在評論中命名的“power CRAP”設置。“電源管理”的 BIOS 選項在快速伺服器上為“最高性能”,在另一個伺服器上為“活動電源控制器”(戴爾的預設設置)。顯然我忘記了,我是在兩年前設置的,而且我並沒有在所有伺服器上都這樣做。感謝大家非常有幫助的意見!

兩個想法,取決於你想走多遠:

  1. 交換兩台伺服器的磁碟,看看速度性能是停留在硬體上還是隨著軟體移動。
  2. 比較/opt/dell/toolkit/bin/syscfg -o complete-bios-config.out是否可以以某種方式欺騙此軟體包安裝的輸出。

輸出和差異的更多可能性:

  • sysctl -a(確保核心可調參數相同)
  • cat /proc/interrupts (也許還有其他一些硬體搞砸了?)
  • ipmitool 感測器列表(長鏡頭,但檢查更多的低電平差異、過熱、電壓問題等)

引用自:https://serverfault.com/questions/454988