1. 程式人生 > >nginx、php-fpm、swoole HTTP/TCP壓測對比

nginx、php-fpm、swoole HTTP/TCP壓測對比

本次測試是在win7下docker環境中進行壓測,共建立一個nginx容器、一個php-fpm容器和一個swoole容器,客戶端請求nginx伺服器,nginx接收使用者訪問請求並轉發給php-fpm,php-fpm接收資料併發送資料給swoole伺服器

均使用docker環境下進行ab壓測併發100,1萬次請求,結果如下:

壓測資料表明,效能:swoole TCP 長連線 > SWOOLE HTTP > PHP-FPM,原因在於swoole建立的TCP連線在PHP請求結束或者呼叫$cli->close時並不會關閉,下一次執行connect呼叫時會複用上一次建立的連線,而HTTP是基於TCP連線的,如果連線被頻繁地啟動然後斷開就會花費很多資源在TCP三次握手以及四次揮手上,效率比較低

具體壓測資料如下:

1、swoole HTTP連線:

docker run --rm --net=host jordi/ab -n 10000 -c 100 http://test.epweike.net/

10000連線數併發100訪問 只開啟一個swoole client連線,qps:918

10000連線數併發100訪問 ,開啟1000個swoole client連線,qps:872

2、SWOOLE TCP連線

 docker run --rm --net=host jordi/ab -n 10000 -c -k 100 http://test.epweike.net/

10000連線數併發100訪問 只開啟一個swoole client連線,qps:1733

 

10000連線數併發100訪問 ,開啟1000個swoole client連線,qps:1744

 

  

3、nginx+php-fpm

10000連線數併發100訪問 ,不開swoole client連線,原生php輸出,qps:115