G'day,爲什麼我們的64位版本的Apache沒有改善CPU使用率?
我們構建了Apache 2.2.14的64位版本,並將其部署到運行Sol10的各種Sun服務器上。用於測試的服務器類型是Sun T2000(32GB內存),5120(8GB)和5240(16GB)。
對於其中的每一個,我們都注意到CPU使用率並沒有明顯的改善,事實上服務器運行的比運行32位版本稍微熱點。
我們已經通過回滾到32位版本並再次向前滾動到64位版本來證實了這一觀察。由於這是一個主要的網絡農場,我們擁有廣泛的服務器監控基礎架構和RRD圖表,可用於各種測量。圖表可用於每日,每週,每月和每年的時間範圍。在這些圖表中,CPU使用率的微小變化非常明顯,我們服務器上的命中率在整個白天都是循環的,但仍然相當穩定,每個服務器的峯值約爲2k /秒。兒童的數量也是每天循環使用,每臺服務器在1k到3k之間變化。由於所有服務器都位於負載平衡層後面,所以階躍變化不能歸因於命中率或孩子的變化。
我們使用以下編譯標誌使用Sunstudio 12.1附帶的CC編譯器。 鏈接標誌是相似的,但沒有-D定義。
export CFLAGS="-xopenmp=parallel -xalias_level=basic \
-xtarget=ultraT1 -m64 -xarch=sparc -xbuiltin=%all \
-xdepend -xmemalign=8s -xO5 -xprefetch=auto,explicit" \
-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
我們在Apache配置中沒有做任何異常事情,它很漂亮。
編輯:性能是根據CPU與請求對比內存(依次)確定的。 64位處理器的請求數量相對較少,內存佔用量稍高。差異是在誤差範圍內,只有在接近滿負荷時才顯示
我已閱讀過「How to develop to take advantage of 64 bit systems?」這個問題,那裏有一些有趣的信息。這似乎是關於32位地址空間的4GB的限制外
- 尋址內存,64位值的
- 操縱主要的問題。
在我看來,我們也希望SSL性能有所提高。
關於爲什麼我們的表現沒有改善的任何建議?
或者有什麼建議?
我們實際上是否應該看到績效改善?
我認爲這是一個編程和從代碼構建可執行文件的問題。因此,它在這裏,而不是服務器故障。如果這是構建服務器本身的配置問題,那麼我同意它應該在Server Fault上。 – 2010-02-03 12:31:01