本文由 台灣深藍vBulletin技術論壇站長 ckmarkhsu 撰寫,歡迎轉載唯轉載請保留全文與出處
http://www.twvbb.com/vbb/thread/30/1077/
===========================================================
這份心得能夠成文,過程可說是血跡斑斑
首先我們討論 WebServer
在這篇文章中 http://www.twvbb.com/vbb/thread/30/290/ 我提到Win 平台下 apache 版本的選用
根據測試,Apache2.0.x 的效能顯然遠勝於 Apache1.4.x (至少是 3 倍)
但若您的論壇(以下均以 vBulletin 3.5 為例)每十五分鐘達 200 人以上同時在線
您便會發現 Apache 會不時的 Crash(崩潰),CPU 資源使用 99%,且無法自己重新啟動
這點困擾我非常久,敝人有個 400~500 人同時在線的論壇,每日 Crash 三四次,實讓我不勝其擾
起先我認為是 PHP 的記憶體溢位或者是 APC 相關軟體的問題,但更換或關閉後均無改善
在歷時一個月的測試與評估後,技術管理群一致認為
引用:
Apache 於 WinNT 平台在未知的原因下會導致記憶體致命的錯誤(這只是猜測)
但如果不用 Apache 那該怎麼辦呢? 我們考慮過了雷電 HTTP,IIS6。
最後考慮到與 WinNT 系統間最佳化與穩定度,我們決定採用了 IIS
經過目前一段時間測試,事實證明,IIS6 異常的穩定,所謂的異常,就是超乎我們預期
至於效能,我想這也是一個非常重要的考量
根據不嚴謹的測試(以下均將 MySQL 獨立於其他主機)
引用:
雷電HTTPD + ispai-PHP4 效能 = 100% (未安裝 Zend Optimizer)
Apache2.0.x + Apache2-PHP4 效能 = 100% (安裝 Zend Optimizer)
IIS6 + ispai-PHP4 效能 = 120% (安裝 Zend Optimizer)
簡言之,雷電的效能約和 Apache2.0.x 相當,但 IIS6 效能約是他們的 1.2 倍
最後我們又測試了 Zend 與 Microsfot 合作開發的 ZendCore 套件
(相關新聞可以參考 http://www.goodman-lai.idv.tw/2006/1...cgiphpiis.html)
以下又是不嚴謹的測試
引用:
IIS6 + ispai-PHP4 效能 = 100% (安裝 Zend Optimizer)
IIS6 + fcgi-PHP5.2RC6-Win 效能 = 125% (安裝 ZendCore2 for Win)
以目前測試版來說,IIS6 + ZendCore2 效能約是 IIS6+isapi-PHP4 的 1.25 倍
一般認為,IIS6 配合 ISAPI 效能遠高於 FCGI,但如果未來 ZendCore2 for Win 推出後恐可扭轉這個事實
IIS6 與 MySQL 平均 CPU 使用率
(以下是以 vBulletin 3.5 為例,若其他 CMS 應該 WebServer 的負載不會這麼高)
約是 IIS6 90% CPU 使用量, MySQL 10% CPU 使用量
Windows 版本之選擇
依據長期的測試經驗
Windows9x 系列根本不適合當作伺服器系統(這不用多做解釋吧)
而 WinXP 系列雖然使用 NT5.1 核心,但其記憶體管理與網路架構效率仍相當糟糕
使用 Apache2.0.x 架設時會有嚴重的 session 數瓶頸,且其 IIS 具有 10 個 session 的限制
因此我較推薦的是 Win2003 系列,不但在記憶體管理和網路架構上有較高效率,且 IIS6 一有較好的穩定度
後記
最後來一個不嚴謹的參考數據
WebServer
Core2 E6300 + Win2003
IIS6 + isapi-PHP4.4 + ZendOptimizer3 + vBulletin 3.5
約可以負載到 800 人順暢瀏覽,其他論壇系統(phpBB2, DZ) 應該高於此值
至於有人會問為什麼不改用 FreeBSD 或是 Linux 呢? 當然是有不得已的苦衷啦^^"
感謝 台灣某大FTP站長與台灣深藍學生聯合論壇技術管理員 petercpg 友情幫忙
以上文章由 台灣深藍vBulletin技術論壇 站長 ckmarkhsu 撰寫
沒有留言:
張貼留言