三月 15, 2016 | 伺服器和Devops

還在猶豫Drupal伺服器環境?來看看壓力測試後的選擇吧!

每個不同的網站,都有他最佳配置伺服器環境來使網站除了正常運作還可以運作的完美。Drupal也是,進來看看怎麼選擇吧!

前言

每個網站,都需要不同的伺服器環境,來使網站正常運作。相信玩過Drupal的人,都應該很清楚Drupal的「重量」(對資料庫來說負擔不輕)。那麼 Drupal 網站,到底要用什麼樣的環境,使 Drupal 可以流暢的執行呢?這邊我們就拿 Drupal 最基本需求的 PHP 與 Web server 來測試吧!

PHP 版本測試

測試同一個 Drupal 7.43 的網站,放在不同PHP環境下的測試結果(預設搭配伺服器為 Apache2 網站伺服器)。

1.測試環境:

利用 Docker 建立起多個 container 容器,透過安裝不同版本的PHP(PHP5.3、PHP5.5.9、PHP7 和 HHVM)來判斷提升PHP版本對於運行效能的提升,測試軟體為 ApacheBench,使用 ab -c 10 -n 1000 指令模擬10位測試者對目標(首頁與node頁)存取1000次,抓取的測試結果是每秒的處理量(Requests per second)與平均每個要求所花費的時間(ms)。

2.測試結果:

綠色與黃色的HHVM 3.11.1 跟PHP7每秒Requests per second幾乎相同,並且比橘紅色的PHP5.5快上了一倍以上的每秒Requests per second,當然PHP5.5本身就已經比PHP5.3快上了許多。

就以每秒Requests per second來看,PHP7與HHVM就比最低的PHP5.3能多處理15個請求量,比PHP5.5多處理10個請求量,這代表在相同伺服器的情況下,PHP7或HHVM比起PHP5.3、5.5可以接納更多的人瀏覽網站。

以下測試數據:

首頁平均每個要求所花費的時間(單位: 豪秒)

PHP5.3是2094.518 [ms]
PHP5.5是1071.983 [ms]
PHP7 是508.262 [ms]
HHVM 是409.415 [ms]

Node頁平均每個要求所花費的時間(單位: 豪秒)

PHP5.3是 1489.939 [ms]
PHP5.5是 639.126 [ms]
PHP7 是 391.538 [ms]
HHVM 是 354.449 [ms]

3.測試結論

PHP7與HHVM可謂壓倒性的勝利,但是其實Drupal在PHP7與HHVM的環境下仍然有些核心相容性問題,目前Drupal 7.x 中,仍有大多數模組並不支援PHP7,而HHVM 3.11.1中,也有部份跟Drupal7衝突到,所以我們目前得到的數據上來看,最穩定與最快速的就是PHP5.5了。

註:目前我們在使用 PHP5.6 版本下測試運作沒有問題,可以的話也快點跟上升級吧!

Web Server 版本測試

如果PHP版本會影響速度,那網站伺服器 Web Server 換上號稱輕量的NGINX又會如何呢? 讓我們繼續測下去。

1.測試環境

還是利用 Docker 建立起多個 container 來安裝不同版本的 NGINX(1.4.6、1.8.1),測試軟體還是為 ApacheBench,使用相同測試方法與目標來觀察每秒的處理量(每秒Requests per second)與平均每個要求所花費的時間(ms)。

2.測試結果

NGINX1.8.1比NGINX1.4.6的每秒處理量,首頁上有些微的上升,尤其在node頁裡面則是更為明顯。

首頁平均每個要求所花費的時間(單位: 豪秒)

NGINX 1.4.6 是 1323.208 [ms]
NGINX 1.8.1 是 1122.079 [ms]

node頁平均每個要求所花費的時間(單位: 豪秒)

NGINX 1.4.6是876.339 [ms]
NGINX 1.8.1是704.517 [ms]

3.測試結論

NGINX1.4.6版與1.8.1版的測試中,1.8.1版本雖然看起來只有小小的贏過1.4.6,但是仍然有進步,而且比起1.4.6版1.8.1版的每個要求處理時間較短,更短的要求的處理時間,也等於網頁的顯示時間更快。

總結

經過上面的測試之後,我們可以知道PHP與NGINX在處理Drupal上的速度有著密不可分的搭配選擇,可以說是網站很重要的一環,結果看來目前測過效能與相容性較好的組合,可以說就是 PHP5.6+NGINX最新版了。

如果還不滿意你的網站伺服器反應速度,除了更換新主機外,這些組合能更新就快上吧!

註:本次測試還沒探討透過其他快取、壓縮機制來得到的提升,但看到這邊的你,一定跟我們一樣相信只會更好不會更差哦(如果你的選擇跟我們一樣的話XD)。

歡迎大家一起來分享,你測試過後最好的搭配吧!

使用我們的服務即表示您同意Cookie政策。了解更多