
我有兩台運行相同硬體的伺服器:
- IBM xSeries x345 (8670/71X)
- 4GB記憶體
- 4 x 30Gb 磁碟,RAID 5,硬體控制器
在一台伺服器上,我有 Windows Server 2003 R2 SP2 + 所有修補程式。另一方面,我有 Windows Server 2008 SP2 + 所有補丁。
由於系統上沒有運行其他主要進程(如果有的話,win2003 系統負載更重),我安裝我們的軟體並執行自動化測試。 win2008系統運作時間要多出50%。
該軟體是套接字伺服器守護進程,配置為有 1 個進程始終執行偵聽客戶端連線。對於每個客戶端連接,它都會啟動一個新進程,將套接字連接到它,然後在客戶端和新進程之間代理原始套接字資料。所有可執行文件都經過簽名(但即使我為每個請求啟動的可執行文件使用未簽署的可執行文件,也沒有區別)。
在兩台伺服器上進行非常簡單的效能測試 (PassMark) 顯示了非常相似的結果。我假設問題出在我自己的軟體中,因為我無法想像 2008 年會比 2003 年慢那麼多。
在我深入分析該問題之前,是否有其他人在比較伺服器 2003 和伺服器 2008 上安裝相同軟體時發現速度明顯下降?如果有的話,原因是什麼?
答案1
去年我們部署了 10-15 台 SBS 2008 伺服器。大多數客戶都注意到整體速度變慢,無論是網路相關、電子郵件、文件存取、公共驅動器訪問,一切都變慢了。看來 2008 年的程式碼實在是太慢了。還記得維斯塔嗎? SBS 2008 是基於相同的程式碼建構的。我們都知道 XP 比 Vista 更快,因此 2003 年可能會比 2008 年更快/更穩定。
我想說R2要好得多(基於win7)並且大多數速度問題都已解決。這是什麼意思呢?我對你的 2008 盒子運行緩慢並不感到驚訝,這很正常。
答案2
您是否應用了所有特定於 IBM 的驅動程式/補丁,還是僅套用了 MS 的驅動程式/補丁?兩台機器報告的硬體是否相同,您是否嘗試過在機器之間交換磁碟以查看是否是物理問題或作業系統問題?
答案3
額外的開銷是否是由於產生新進程而引起的?聽起來該應用程式的行為更像是一個本機 Unix 守護進程,其中為每個連接產生一個附加進程。 Windows 在建立進程方面的開銷比 Unix 大得多,因此大多數 Windows 伺服器應用程式使用多執行緒模型來處理傳入連線。
答案4
機器上的位址大小是否有差異? 2003年的機器是32位的,2008年的機器是64位的嗎?