Go、Nginx、Php、Nodejs誰能勝出紫禁之巔

來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。

聲明:這裡的測試架構都是很常用的架構,不去跟一些奇葩但是所謂效能極高的架構進行對比


由於我們在項目中大量使用Iris和nginx這兩個Web架構(純Go語言實現,零記憶體拷貝),同時也聽過很多人問Go的Http效能對比nginx、對比nodejs到底如何,有鑒於此,今天我們就來做一個Web架構效能真實比拼。

測試環境圖:

下面從多個維度對4個架構進行對比:Nginx   VS   Nginx-php-fpm   VS  Iris    VS   nodejs-Express


一、 Nginx


並發壓力測試100  -  100K


第一張圖是在不同並發壓力下,每秒處理的請求數

第二張是每秒吞吐的資料量

第三張是99.9%、平均、標準方差的延遲統計,可以看出有0.01%的請求延遲在2秒左右

第四張是單線程統計

(這些圖後面不會再解釋,請大家自行對比)


這張圖是soccket錯誤和請求總數的對比,這裡的比例是100K / 3.5M





二、Nginx-Php-Fpm






三、Iris(Golang)






四、Express-Nodejs










總結:

因為其它的評測往往對比的是Go最慢的架構之一 --標準庫,因此這裡對比了另外一個常用的最快的架構iris。

從上面圖可以看出,Iris和Nginx的速度、請求延遲、吞吐、socket錯誤率都是差不多的,在延遲方面iris的表現甚至更好,nginx 最大2秒,iris 0.2-0.3秒

nginx-php的並發數是不錯的,但是在並發超過數百後,錯誤率明顯上升的非常高

Express這個結果我不知道為什麼,可能是沒有調優的原因?(這四個架構都沒有進行調優)


最後再對比一下二次開發難度,iris因為是基於go的,因此非常非常非常簡單,而且二次開發效率非常高,nginx用lua可以做一些事情,但是總是沒有直接用同一種語言方便,而且用lua可能存在一些缺陷;Express不清楚,不評價,但是go的網路編程模型應該是比回調的方式簡單很多的。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.