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


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

軟硬件:

  OS :boot2docker Linux
  cpu: i5-6500 單核
  內存:1G
  PHP Vsersion:7.2.9
  swoole:4.1.2

  nginx:1.12

  

均使用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

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM