Node.JS與PHP CLI Server對HTTP伺服器效能測試

來源:互聯網
上載者:User

環境:

64位Ubuntu14.04,i5-3230M
PHP5.4.31 with ZendOPcache
Node.JS 0.10.35

Node.JS 測試

var http = require('http');
http.createServer(function (req, res) {
    res.writeHead(200, {'Content-Type': 'text/html;charset=UTF-8'});
    res.write('<!DOCTYPE html><html><head><meta charset="UTF-8" /><title>Node測試</title></head><body>'+new Date().getTime()+'</body></html>');
    res.end();
}).listen(8082, '127.0.0.1');

運行程式:

node t.js

查看系統CPU空閑率:

sar 1

壓力測試,並發100,完成10萬請求:

ab -c100 -n100000 http://127.0.0.1:8082/t.js

記憶體從11MB漲到61MB,系統CPU空閑率65%, RPS達到6049.

 


 

 

PHP CLI Server 測試

<?php header('Content-Type: text/html;charset=UTF-8'); ?>
<!DOCTYPE html><html><head><meta charset="UTF-8" /><title>PHP測試</title></head><body><?php echo time(); ?></body></html>

運行程式:

php -S 127.0.0.1:8081 -t ./

查看系統CPU空閑率:

sar 1

壓力測試,並發100,完成10萬請求:

ab -c100 -n100000 http://127.0.0.1:8081/t.php
記憶體從19.6MB漲到20.0MB,系統CPU空閑率57%, RPS達到11405.

不開啟OPCACHE時,記憶體從8.3MB漲到9.0MB,系統CPU空閑率57%,RPS達到8851.

 


 

 

PHP Swoole 測試

<?php
$http = new swoole_http_server("0.0.0.0", 9501);
$http->set([
    'worker_num' => 5 //開啟5個背景工作處理序
]);
$http->on('request', function (swoole_http_request $request, swoole_http_response $response) {
    $response->header('Content-Type', 'text/html;charset=UTF-8');
    $response->end('<!DOCTYPE html><html><head><meta charset="UTF-8" /><title>PHP測試</title></head><body>'.time().'</body></html>');
});
$http->start();

運行程式:

php swoole.php

查看系統CPU空閑率:

sar 1

壓力測試,並發100,完成20萬請求:

ab -c100 -n200000 http://127.0.0.1:9501/swoole.php

測試後記憶體佔用達到117MB,系統CPU空閑率39%, RPS達到19216.

 

 

結論:Node.JS和PHP CLI Server都是單進程處理 HTTP 要求,但RPS上PHP幾乎是Node.JS的兩倍,記憶體佔用上PHP卻只有Node.JS的1/3。Node.JS值得稱道的是,系統CPU空閑率要比PHP高8%左右。PHP Swoole應用了多進程和多線程,RPS近20K,充分利用了多核,所以CPU空閑率也是三者中最低的。另外,PHP-FPM雖然不支援HTTP協議,但其處理PHP請求的效能並不會比PHP CLI Server差,而且PHP-FPM可以開啟多個背景工作處理序,充分利用多核。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.