网站首页 > 资源文章 正文
测试环境
- 每个运行时在1或2个Docker容器中运行
- 每个容器有1个CPU和1GB RAM
- 负载测试工具位于同一Docker网络中
测试应用程序
Symfony提供了运行时组件。根据官方文档,它“从任何全局状态中提取引导逻辑,以确保应用程序可以在运行时运行,如”。这意味着,您可以使用任何您喜欢的运行时来开发应用程序,但在生产中运行最高性能。因此,我们不仅可以使用传统的服务器运行应用程序,还可以使用Swoole,AMPHP和ReactPHP等库。展望未来,最后两人被排除在竞争之外。
负载测试工具
K6用于运行负载测试。每个运行时运行3次,30秒内有10、100和1000个并发连接。
运行时
- Apache(prefork模式)+ mod_php
- Apache(事件模式)+ PHP-FPM
- Nginx + PHP-FPM
- Nginx Unit应用服务器
- Nginx Unit应用服务器
- Nginx + Roadrunner(fcgi模式)
- FrankenPHP
- FrankenPHP(worker模式)
- Swoole
所有运行时都基于官方Docker镜像。如果不使用镜像,则在构建过程中将应用程序的代码复制到镜像中。PHP 8.3无处不在,除了Nginx Unit。2024年初,Nginx Unit支持的最高PHP版本为8.2。
不幸的是,我没有找到与Symfony 7兼容的最新版本的ReactPHP和AMPHP运行时。PHPPM GitHub和Dockerhub看起来都被抛弃了。
应用以下PHP和Symfony设置:
- 使用php.ini-production(附带官方Docker容器)
- 已启用Opcache
- 启用JIT
- 根据Symfony最佳实践配置preload
- Composer自动加载器已优化
- Symfony在生产模式下运行
- 服务容器转储到单个文件
- Symfony缓存在容器构建期间预热
应用程序代码以及容器配置可以在GitHub https://github.com/DimDev/php-runtimes-benchmark上找到。
结果
- 001_Apache+mod_php和002_Apache + PHP-FPM显示了几乎相同的结果。
- 003_Nginx+PHP-FPM在工作负载较低(并发10和100)时非常接近001_Apache+mod_php和002_Apache + PHP-FPM。
- 003_Nginx+PHP-FPM在并发量为1000时,能够服务的请求数是Apache堆栈的2倍
- 004_Nginx单元。首先-哇!!它比传统和最流行的003_Nginx+PHP-FPM快3倍
- 我不认为005_Roadrunner和006_Nginx+Roadrunner之间有很大的区别
- 尽管如此,基于Roadrunner的堆栈比003_Nginx+PHP-FPM快2倍以上
- 007_FrankenPHP(非工作模式)从性能角度来看非常接近003_Nginx+PHP-FPM
- 008_FrankenPHP(worker mode). Double WOW!我不相信从第一次尝试和运行负载测试3或4倍。因此,当发送1000个并发请求时,FrankenPHP(工人模式)比Nginx+PHP-FPM快10倍。同时,也面临着一个问题。无法用php-ini. production启动容器。
- 009_swoole -也是双重WOW!.几乎与008_FrankenPHP(wm)相同的速度。非常快。但是,请记住,您的代码应该调整为与Swoole一起运行。对于Symfony,我们有一个bundle,它扩展了symfony/runtime组件。
- 上一篇: 一首《远山如昨》唱入人心(远山远处)
- 下一篇: 一个伟大的作家,不是谁都可以给他颁奖的,哪怕是上帝
猜你喜欢
- 2024-09-23 巴洛克时期音乐(五):巴洛克时期的器乐(二)
- 2024-09-23 如何摆脱节后工作焦虑症?(节后焦虑症是什么心理)
- 2024-09-23 《晚宴》的音乐(晚宴轻音乐)
- 2024-09-23 「音乐」婉转悠扬的凯尔特民谣(凯尔特民谣简谱)
- 2024-09-23 PHP运行模式(php运行命令)
- 2024-09-23 藏书人与卖书人,不同的景致,完全是天地之别
- 2024-09-23 一天一首歌单曲分享(一天一首歌曲张乙)
- 2024-09-23 Go 1.15.1和Go 1.14.8发布:一个安全问题修复
- 2024-09-23 怀念《角斗士》(怀念《角斗士》的文案)
- 2024-09-23 日本动漫里的神曲(日漫中的神曲)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- 电脑显示器花屏 (79)
- 403 forbidden (65)
- linux怎么查看系统版本 (54)
- 补码运算 (63)
- 缓存服务器 (61)
- 定时重启 (59)
- plsql developer (73)
- 对话框打开时命令无法执行 (61)
- excel数据透视表 (72)
- oracle认证 (56)
- 网页不能复制 (84)
- photoshop外挂滤镜 (58)
- 网页无法复制粘贴 (55)
- vmware workstation 7 1 3 (78)
- jdk 64位下载 (65)
- phpstudy 2013 (66)
- 卡通形象生成 (55)
- psd模板免费下载 (67)
- shift (58)
- localhost打不开 (58)
- 检测代理服务器设置 (55)
- frequency (66)
- indesign教程 (55)
- 运行命令大全 (61)
- ping exe (64)
本文暂时没有评论,来添加一个吧(●'◡'●)