| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> PHP知识库 -> 原生PHP、Laravel、MIXPHP、Go高并发性能测试QPS -> 正文阅读 |
|
[PHP知识库]原生PHP、Laravel、MIXPHP、Go高并发性能测试QPS |
系统环境:4核8G?内存,SSD硬盘 CentOS 6.5 64位 MySQL 5.6.29 PHP 5.6.22 Apache 2.2.31 nginx 1.10.0 启用OPcache web架构为: 把php请求利用Nginx反向代理给后端的Apache或者MIXPHP。 测试之前,请先查看apache的ab测试注意点:Apache的ab进行并发性能测试的注意点 一、基准性能测试 1000并发,1万请求数: ab?-n10000?-c1000?{URL} 1、Nginx静态文件 Nginx QPS:?14040/秒 暴力测试1.9万并发,19万请求(再高的并发服务就不稳定了): 没有失败请求,QPS: 10918/秒 2、原生PHP PHP QPS?:3246/秒 暴力测试?3000并发,3万请求: QPS?:?507/秒 并发再高的话,失败请求就逐渐多了起来,服务不可用了。 3、MIXPHP 基于?Swoole?的常驻内存型?PHP?高性能框架测试。 环境?swoole 1.10.4?、?mixphp 1.0.2 采用Nginx将php请求反向代理给mixphp:http://127.0.0.1:9501 QPS?:?6455/秒 暴力测试: 1.6万并发,16万请求数(再高的并发出错的请求就逐渐多了) QPS?:?4020/秒 此时系统负载2,CPU 40% 4、Go语言 GO QPS:17489/秒 暴力测试2万并发,20万请求: 2万并发的请求下,没有失败请求,QPS?:9053/秒。 基准测试由于不连接数据库,一般不用于实际项目业务场景的测试使用,仅供参考而已。 基准测试(不操作数据库)总结: 常规性能测试对比
暴力性能测试对比
二、读取数据库的性能测试 连接mysql数据库,只读取数据表中一行记录: 测试之前,先把mysql的并发连接数提高,my.cnf里面: [mysqld] thread_cache_size = 256 max_connections = 10000? 否则在高并发时,mysql就会报错: Error 1040: Too many connections 1、原生PHP php QPS?:1735/秒 暴力测试 2000并发,2万请求(再高的并发失败请求就逐渐多了起来) QPS?:641/秒 2、Laravel5.1框架QPS测试 laravel框架测试的注意点: 1、由于框架加载太多依赖,并发1000,1万请求时已经产生3000多个失败请求,所以需要降低测试要求; 2、对于laravel框架来说,需要给ab加上?-k?参数进行测试,否则会出现错误:apr_poll: The timeout specified has expired (70007)?。 测试命令: ab?-k?-c350?-n3500?http://la.dev/ 并发350,3500请求数: QPS?:?58/秒 对laravel进行性能调优: APP_DEBUG=false php?artisan?config:cache php?artisan?route:cache php?artisan?optimize?--force 性能调优后,QPS上升到?118/秒 比未调优之前提高50%。 此时系统负载150,cpu 50%,高负荷运转。 3、MIXPHP框架(PDO短链接) QPS?:?2935/秒 mixphp暴力测试 1.5万并发,15万请求数(再高的并发就不稳定啦) QPS?:?2422/秒 此时系统负载6-8,cpu 60%,在高并发的场景下,QPS下降并不明显。 4、MIXPHP框架(PDO长链接) QPS?:?4367/秒 长链接比短链接并发性能提高?50%。 mixphp长链接暴力测试 1.5万并发,15万请求 QPS?:3098/秒 此时系统负载6-8,cpu 60%,在高并发的场景下,QPS下降并不明显。 5、Go语言 go QPS?:4247/秒 go暴力测试,并发1.8万,请求18万: ab?-n?180000?-c?18000?http://localhost:9090/hello 在如此高的并发下,没有失败的请求,QPS依然达到了3037/秒; 服务器负载load average?平均5-10,cpu约50%。 再测试比1.8万高的并发,ab的Failed requests就逐渐多起来了(ab最多支持2万并发),原因是mysql数据库撑不住了,mysql报错:“dial tcp 127.0.0.1:3306: connect: connection timed out” go不愧为天生的高并发王者! 测试总结: 常规性能测试对比
暴力性能测试对比
完。 |
|
PHP知识库 最新文章 |
Laravel 下实现 Google 2fa 验证 |
UUCTF WP |
DASCTF10月 web |
XAMPP任意命令执行提升权限漏洞(CVE-2020- |
[GYCTF2020]Easyphp |
iwebsec靶场 代码执行关卡通关笔记 |
多个线程同步执行,多个线程依次执行,多个 |
php 没事记录下常用方法 (TP5.1) |
php之jwt |
2021-09-18 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 22:34:59- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |