Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php fpm&;Nginx在docker conatainer中的性能_Php_Mysql_Laravel_Docker_Nginx - Fatal编程技术网

Php fpm&;Nginx在docker conatainer中的性能

Php fpm&;Nginx在docker conatainer中的性能,php,mysql,laravel,docker,nginx,Php,Mysql,Laravel,Docker,Nginx,我们正在开发一个在线考试系统,该系统将同时具有高流量,该系统使用laravel和MySQL作为数据库开发。 我们的服务器有40个核心和64 GB RAM内存。 我在docker容器中安装了Nginx PHP在另一个容器中 Mysql在另一个容器中, 我们还使用经典方法测试了系统,所有服务都直接在同一台服务器上工作,而无需docker。 但问题是该系统不能同时处理600多个用户。 我们尝试了Nginx性能调优和nothings works,以及php fpm。 我不知道为什么会发生这种情况,我们尝

我们正在开发一个在线考试系统,该系统将同时具有高流量,该系统使用laravel和MySQL作为数据库开发。 我们的服务器有40个核心和64 GB RAM内存。 我在docker容器中安装了Nginx PHP在另一个容器中 Mysql在另一个容器中, 我们还使用经典方法测试了系统,所有服务都直接在同一台服务器上工作,而无需docker。 但问题是该系统不能同时处理600多个用户。 我们尝试了Nginx性能调优和nothings works,以及php fpm。 我不知道为什么会发生这种情况,我们尝试了所有有帮助的架构,但没有任何效果,每个PHP fpm进程都使用了27%的CPU。 当我使用

阿帕切班奇酒店

为了向服务器发送请求,然后尝试从我的浏览器加载主页,需要很长时间才能响应该页面,并且多次返回超时。 我正在使用
Nginx:stable alpine
作为Nginx docker图像

php:7.4-fpm-alpine
作为PHP图像。 我没有更改PHP或Nginx的任何默认配置。 那么,为了获得最佳性能,我必须应用什么样的PHP和Nginx最佳配置呢

发送请求前的htop结果

使用发送请求后的htop

sudo ab-n 5000-c 600

每秒速率=RPM

关于你的my.CNF[myqLDL]部分

的建议
thread_cache_size=100  # from 9 to reduce threads_created RPhr of 78 
net_buffer_length=32K  # from 16K to reduce # packets per hour 
query_cache_size=0  # from 1M to conserve RAM because the QCtype of OFF
slow_query_log=ON  # from OFF to allow awareness and proactively correct
long_query_time=1  # from 10 seconds - if overwhelmed with entries, raise the seconds by 1 
innodb_write_io_threads=64  # from 4 to expedite writing to tables on storage devices

还有更多的机会来改进配置。查看配置文件、网络配置文件,免费下载实用程序脚本,以帮助进行性能调整,特别是findfragtables.sql,它有助于提醒您定期优化频繁使用的表。

对于涉及的每台服务器,请提供其他信息。MySQL主机服务器上是否有SSD或NVME设备?在pastebin.com上发布并共享链接。从SSH登录根目录中,文本结果为:B)显示全局状态;至少24小时正常运行后C)显示全局变量;D) 显示完整的进程列表;E) 地位;以及可选的非常有用的信息,如果可用,包括-htop或top(适用于大多数活动应用程序)、ulimit-a(适用于Linux/Unix限制列表)、iostat-xm 5 3(适用于按设备和核心/cpu计数划分的IOPS),以及服务器工作负载优化分析以提供建议。@WilsonHauck感谢您的帮助,我在pastebin.com上发布并包含您要求的所有信息。这是连接此服务器上任何SSD或NVME设备的链接吗?支持所有活动的单一服务器?在OS命令提示符下,您可以发布htop或top的文本结果吗?新请求,MySQLTuner.pl(perl脚本)的文本结果,以获取更多信息,包括引擎、表计数和数据大小以及更多详细信息。你的国家/时区是什么?我们在UTC-6小时美国中部时区。我们可以聊天吗?您的8.0.0-dmr版本于2016-09-12发布,作为开发里程碑发布。DMR通常不用于任何生产系统。建议8.0.21,发布日期为2020-07-13,是一个很好的候选版本,3个月后其他人会发现并报告该版本有任何困难。