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

本文涉及的产品
性能测试 PTS,5000VUM额度
简介: 最近由于产品业务出现请求瓶颈,需要更换产品框架,针对现在集中主流方案进行了逐一测试  服务器硬件配置: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等 经过框架路由之后 损耗还是很严重的!! 







相关实践学习
通过性能测试PTS对云服务器ECS进行规格选择与性能压测
本文为您介绍如何利用性能测试PTS对云服务器ECS进行规格选择与性能压测。
目录
相关文章
|
29天前
|
JavaScript 前端开发 中间件
探索后端技术:Node.js与Express框架的完美融合
【10月更文挑战第7天】 在当今数字化时代,Web应用已成为日常生活不可或缺的一部分。本文将深入探讨后端技术的两大重要角色——Node.js和Express框架,分析它们如何通过其独特的特性和优势,为现代Web开发提供强大支持。我们将从Node.js的非阻塞I/O和事件驱动机制,到Express框架的简洁路由和中间件特性,全面解析它们的工作原理及应用场景。此外,本文还将分享一些实际开发中的小技巧,帮助你更有效地利用这些技术构建高效、可扩展的Web应用。无论你是刚入门的新手,还是经验丰富的开发者,相信这篇文章都能为你带来新的启发和思考。
|
1月前
|
开发框架 JavaScript 前端开发
使用 Node.js 和 Express 构建 Web 应用
【10月更文挑战第2天】使用 Node.js 和 Express 构建 Web 应用
|
8天前
|
JavaScript 中间件 关系型数据库
构建高效的后端服务:Node.js 与 Express 的实践指南
在后端开发领域,Node.js 与 Express 的组合因其轻量级和高效性而广受欢迎。本文将深入探讨如何利用这一组合构建高性能的后端服务。我们将从 Node.js 的事件驱动和非阻塞 I/O 模型出发,解释其如何优化网络请求处理。接着,通过 Express 框架的简洁 API,展示如何快速搭建 RESTful API。文章还将涉及中间件的使用,以及如何结合 MySQL 数据库进行数据操作。最后,我们将讨论性能优化技巧,包括异步编程模式和缓存策略,以确保服务的稳定性和扩展性。
|
15天前
|
Web App开发 JavaScript 中间件
构建高效后端服务:Node.js与Express框架的完美结合
【10月更文挑战第21天】本文将引导你走进Node.js和Express框架的世界,探索它们如何共同打造一个高效、可扩展的后端服务。通过深入浅出的解释和实际代码示例,我们将一起理解这一组合的魅力所在,并学习如何利用它们来构建现代Web应用。
38 1
|
3天前
|
Web App开发 JavaScript 前端开发
探索后端开发:Node.js与Express的完美结合
【10月更文挑战第33天】本文将带领读者深入了解Node.js和Express的强强联手,通过实际案例揭示它们如何简化后端开发流程,提升应用性能。我们将一起探索这两个技术的核心概念、优势以及它们如何共同作用于现代Web开发中。准备好,让我们一起开启这场技术之旅!
11 0
|
3天前
|
Web App开发 JavaScript 前端开发
构建高效后端服务:Node.js与Express框架的实践
【10月更文挑战第33天】在数字化时代的浪潮中,后端服务的效率和可靠性成为企业竞争的关键。本文将深入探讨如何利用Node.js和Express框架构建高效且易于维护的后端服务。通过实践案例和代码示例,我们将揭示这一组合如何简化开发流程、优化性能,并提升用户体验。无论你是初学者还是有经验的开发者,这篇文章都将为你提供宝贵的见解和实用技巧。
|
4天前
|
Web App开发 JavaScript 中间件
构建高效后端服务:Node.js与Express框架的融合之道
【10月更文挑战第31天】在追求快速、灵活和高效的后端开发领域,Node.js与Express框架的结合如同咖啡遇见了奶油——完美融合。本文将带你探索这一组合如何让后端服务搭建变得既轻松又充满乐趣,同时确保你的应用能够以光速运行。
10 0
|
29天前
|
JSON JavaScript 前端开发
Node.js Express 框架
10月更文挑战第7天
27 2
|
1月前
|
JSON JavaScript 前端开发
使用 Node.js 和 Express 构建 RESTful API 服务器
【10月更文挑战第3天】使用 Node.js 和 Express 构建 RESTful API 服务器
|
1月前
|
Web App开发 JavaScript 前端开发
使用Node.js和Express框架构建Web服务器
使用Node.js和Express框架构建Web服务器
下一篇
无影云桌面