PHP7+Swoole、Node Express、Sails、Beego、ThinkPHP 并发性能测试

简介: 最近由于产品业务出现请求瓶颈,需要更换产品框架,针对现在集中主流方案进行了逐一测试  服务器硬件配置:2 核 2G虚拟机 , 10000请求 500并发测试结果如下性能测试结果1、Nodejs Express测试结果如下 大约每秒处理2100请求 响应时间在230ms左右,cpu负...

最近由于产品业务出现请求瓶颈,需要更换产品框架,针对现在集中主流方案进行了逐一测试  

服务器硬件配置:2 核 2G虚拟机 , 10000请求 500并发测试结果如下


性能测试结果

1、Nodejs Express测试结果如下 大约每秒处理2100请求 响应时间在230ms左右,cpu负载百分之40左右

Server Software:
Server Hostname:        172.16.200.202
Server Port:            3000

Document Path:          /
Document Length:        12 bytes

Concurrency Level:      500
Time taken for tests:   4.692 seconds
Complete requests:      10000
Failed requests:        0
Total transferred:      2060000 bytes
HTML transferred:       120000 bytes
Requests per second:    2131.47 [#/sec] (mean)
Time per request:       234.580 [ms] (mean)
Time per request:       0.469 [ms] (mean, across all concurrent requests)
Transfer rate:          428.79 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        1   16   8.3     15      57
Processing:    71  212  31.0    204     359
Waiting:       71  211  31.0    203     359
Total:         86  228  29.0    221     380

Percentage of the requests served within a certain time (ms)
  50%    221
  66%    230
  75%    241
  80%    248
  90%    258
  95%    291
  98%    302
  99%    304
 100%    380 (longest request)


2、PHP7+Swoole 秒处理请求2300  响应时间40s左右 cpu只占用了15% 

Server Software:        12XueWeibo
Server Hostname:        172.16.200.202
Server Port:            3456

Document Path:          /
Document Length:        27 bytes

Concurrency Level:      100
Time taken for tests:   3.406 seconds
Complete requests:      8000
Failed requests:        0
Total transferred:      1584000 bytes
HTML transferred:       216000 bytes
Requests per second:    2348.89 [#/sec] (mean)
Time per request:       42.573 [ms] (mean)
Time per request:       0.426 [ms] (mean, across all concurrent requests)
Transfer rate:          454.18 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        4   18   2.9     19      28
Processing:    10   24   3.5     24      46
Waiting:       10   24   3.5     24      46
Total:         16   42   3.4     42      60

Percentage of the requests served within a certain time (ms)
  50%     42
  66%     44
  75%     44
  80%     45
  90%     46
  95%     48
  98%     49
  99%     51
 100%     60 (longest request)

3、Nodejs Sails  每秒处理500左右请求 每个请求响应用掉190ms 时间 cpu 百分之50左右


Benchmarking 172.16.200.202 (be patient)
Completed 800 requests
Completed 1600 requests
Completed 2400 requests
Completed 3200 requests
Completed 4000 requests
Completed 4800 requests
Completed 5600 requests
Completed 6400 requests
Completed 7200 requests
Completed 8000 requests
Finished 8000 requests


Server Software:
Server Hostname:        172.16.200.202
Server Port:            1337

Document Path:          /
Document Length:        10444 bytes

Concurrency Level:      100
Time taken for tests:   14.820 seconds
Complete requests:      8000
Failed requests:        0
Total transferred:      87740708 bytes
HTML transferred:       83552000 bytes
Requests per second:    539.81 [#/sec] (mean)
Time per request:       185.249 [ms] (mean)
Time per request:       1.852 [ms] (mean, across all concurrent requests)
Transfer rate:          5781.69 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        2   12  14.3     11    1231
Processing:    23  173  48.9    165     515
Waiting:       16  125  40.9    123     432
Total:         34  185  50.2    176    1313

Percentage of the requests served within a certain time (ms)
  50%    176
  66%    179
  75%    181
  80%    184
  90%    239
  95%    298
  98%    343
  99%    362
 100%   1313 (longest request)

4、golang Beego   每秒大约处理2400个请求  每个请求响应时间45ms  cpu 百分之15左右


Document Path:          /routerinfo
Document Length:        1152 bytes

Concurrency Level:      100
Time taken for tests:   3.494 seconds
Complete requests:      8000
Failed requests:        7641
   (Connect: 0, Receive: 0, Length: 7641, Exceptions: 0)
Total transferred:      10348153 bytes
HTML transferred:       9468153 bytes
Requests per second:    2289.46 [#/sec] (mean)
Time per request:       43.678 [ms] (mean)
Time per request:       0.437 [ms] (mean, across all concurrent requests)
Transfer rate:          2892.06 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        2   17   4.5     18      27
Processing:    11   26   8.0     24      85
Waiting:       11   26   8.0     24      85
Total:         15   43   6.9     42      96

Percentage of the requests served within a certain time (ms)
  50%     42
  66%     44
  75%     46
  80%     46
  90%     49
  95%     54
  98%     64
  99%     71
 100%     96 (longest request)


5、 ThinkPHP 请求量缩减10倍1000, 并发量缩减50倍10,结果如下 每秒106请求 平均响应时间 94ms ,目前api就是用的此框架 果断需要更换了

Server Software:        Tengine/2.1.2
Server Hostname:        api.uia.com
Server Port:            80

Document Path:          /index/index/index
Document Length:        622 bytes

Concurrency Level:      10
Time taken for tests:   9.405 seconds
Complete requests:      1000
Failed requests:        0
Total transferred:      960000 bytes
HTML transferred:       622000 bytes
Requests per second:    106.33 [#/sec] (mean)
Time per request:       94.047 [ms] (mean)
Time per request:       9.405 [ms] (mean, across all concurrent requests)
Transfer rate:          99.68 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        1    2   0.6      2       8
Processing:    32   92  14.5     91     170
Waiting:       32   92  14.4     91     170
Total:         33   94  14.5     93     172

Percentage of the requests served within a certain time (ms)
  50%     93
  66%     99
  75%    103
  80%    105
  90%    111
  95%    117
  98%    126
  99%    133
 100%    172 (longest request)




很显然从结果看来 Sails、ThinkPHP等 经过框架路由之后 损耗还是很严重的!! 







目录
相关文章
|
3月前
|
消息中间件 NoSQL 调度
温故而知新,PHP Swoole使用过程中的一些思考
本文回顾了异步任务处理、进程与协程调度机制、Redis与消息队列的应用、Swoole协程原理等内容,探讨了CPU时间片分配、IO阻塞、协程切换等关键技术问题,适用于高并发场景下的性能优化与系统设计。
167 6
|
JavaScript 前端开发 中间件
探索后端技术:Node.js与Express框架的完美融合
【10月更文挑战第7天】 在当今数字化时代,Web应用已成为日常生活不可或缺的一部分。本文将深入探讨后端技术的两大重要角色——Node.js和Express框架,分析它们如何通过其独特的特性和优势,为现代Web开发提供强大支持。我们将从Node.js的非阻塞I/O和事件驱动机制,到Express框架的简洁路由和中间件特性,全面解析它们的工作原理及应用场景。此外,本文还将分享一些实际开发中的小技巧,帮助你更有效地利用这些技术构建高效、可扩展的Web应用。无论你是刚入门的新手,还是经验丰富的开发者,相信这篇文章都能为你带来新的启发和思考。
|
7月前
|
前端开发 JavaScript NoSQL
使用 Node.js、Express 和 React 构建强大的 API
本文详细介绍如何使用 Node.js、Express 和 React 构建强大且动态的 API。从开发环境搭建到集成 React 前端,再到利用 APIPost 高效测试 API,适合各水平开发者。内容涵盖 Node.js 运行时、Express 框架与 React 库的基础知识及协同工作方式,还涉及数据库连接和前后端数据交互。通过实际代码示例,助你快速上手并优化应用性能。
|
开发框架 JavaScript 前端开发
使用 Node.js 和 Express 构建 Web 应用
【10月更文挑战第2天】使用 Node.js 和 Express 构建 Web 应用
|
JavaScript 中间件 关系型数据库
构建高效的后端服务:Node.js 与 Express 的实践指南
在后端开发领域,Node.js 与 Express 的组合因其轻量级和高效性而广受欢迎。本文将深入探讨如何利用这一组合构建高性能的后端服务。我们将从 Node.js 的事件驱动和非阻塞 I/O 模型出发,解释其如何优化网络请求处理。接着,通过 Express 框架的简洁 API,展示如何快速搭建 RESTful API。文章还将涉及中间件的使用,以及如何结合 MySQL 数据库进行数据操作。最后,我们将讨论性能优化技巧,包括异步编程模式和缓存策略,以确保服务的稳定性和扩展性。
|
Web App开发 JSON JavaScript
Node.js 中的中间件机制与 Express 应用
Node.js 中的中间件机制与 Express 应用
|
缓存 负载均衡 JavaScript
构建高效后端服务:Node.js与Express框架实践
在数字化时代的浪潮中,后端服务的重要性不言而喻。本文将通过深入浅出的方式介绍如何利用Node.js及其强大的Express框架来搭建一个高效的后端服务。我们将从零开始,逐步深入,不仅涉及基础的代码编写,更会探讨如何优化性能和处理高并发场景。无论你是后端新手还是希望提高现有技能的开发者,这篇文章都将为你提供宝贵的知识和启示。
|
JavaScript
使用node.js搭建一个express后端服务器
Express 是 Node.js 的一个库,用于搭建后端服务器。本文将指导你从零开始构建一个简易的 Express 服务器,包括项目初始化、代码编写、服务启动与项目结构优化。通过创建 handler 和 router 文件夹分离路由和处理逻辑,使项目更清晰易维护。最后,通过 Postman 测试确保服务正常运行。
798 1
|
JavaScript Java PHP
快速对比:Django、Spring Boot、Node.js 和 PHP
快速对比:Django、Spring Boot、Node.js 和 PHP
669 7
|
Web App开发 JavaScript 中间件
构建高效后端服务:Node.js与Express框架的完美结合
【10月更文挑战第21天】本文将引导你走进Node.js和Express框架的世界,探索它们如何共同打造一个高效、可扩展的后端服务。通过深入浅出的解释和实际代码示例,我们将一起理解这一组合的魅力所在,并学习如何利用它们来构建现代Web应用。
415 1