文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

php 高并发报语法错误怎么解决

2023-05-14 19:14

关注

php高并发报语法错误的解决办法:1、检查nginx的配置访问数或者连接数,并增加nginx的两个参数;2、确认php-fpm的worker进程是否够用,然后增加worker_connections进程的数量;3、禁用掉记录的慢日志即可。

php 高并发报语法错误怎么解决

本教程操作环境:Windows10系统、PHP8.1版、Dell G3电脑。

php 高并发报语法错误怎么解决?

Nginx+Php高并发报502、504问题解决:

最近在帮公司优化php项目。一边优化一边百度。这个项目访问量挺大的(平均每分钟请求在80000+)。

用了三台aws服务器。两台8核16G、一台4核16G。小的这台做Nginx并跑少量的php-fpm进程。基本上放上去就挂。访问全是502、504。因为项目是没有问题的,之前测试跑过了。然后就开始百度找问题。

1、怀疑是nginx的配置访问数或者连接数太小了扛不住,然后就增加nginx的两个参数。

每个进程允许的最多连接数,理论上每台nginx服务器的最大连接数为worker_processes*worker_connections

 worker_connections 5000;

一个nginx进程打开的最多文件描述符数目,理论值应该是最多打开文件数(ulimit -n)与nginx进程数相除

worker_rlimit_nofile 20000;

php请求的超时时间和缓存等

fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 64k;
fastcgi_buffers 4 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 256k;

nginx设置完了 重启一下。。但是测试了一下 完全没反应。

2、怀疑是php的配置问题。

确认php-fpm的worker进程是否够用,如果不够用就等于没有开启一样

计算开启worker进程数目:

ps -ef | grep 'php-fpm'|grep -v 'master'|grep -v 'grep' |wc -l

计算正在使用的worker进程,正在处理的请求

netstat -anp | grep 'php-fpm'|grep -v 'LISTENING'|grep -v 'php-fpm.conf'|wc -l

如果上面两个值接近可以考虑增加worker_connections进程的数量

以及修改修改php-fpm.conf中的php进程数。无论是调大还是调小这几个参数都不行。。。。绝望了!

修改了php-fpm.conf的日志级别log_level = debug。在error_log文件中看到了一下错误:

[29-Mar-2014 22:40:10] ERROR: failed to ptrace(PEEKDATA) pid 4276: Input/output error (5)
[29-Mar-2014 22:53:54] ERROR: failed to ptrace(PEEKDATA) pid 4319: Input/output error (5)
[29-Mar-2014 22:56:30] ERROR: failed to ptrace(PEEKDATA) pid 4342: Input/output error (5)

于是,我又开始google这个错误。找到一遍文章(http://www.mamicode.com/info-detail-1488604.html)。上面说需要禁用掉记录的慢日志;slowlog = /var/log/php-fpm/slow.log;request_slowlog_timeout = 15s。此时,我才知道php也是记录访问时请求比较慢的日志。然后打开慢日志文件。发现全是php请求redis的错误日志。。。

找到问题原因了,就是php请求redis数据的时候,应该是请求的连接数太多了。redis连接不上导致的问题。。因为此处的业务比较复杂,所以redis的key是多个字段拼接的。查询的时候是用的模糊查询。所有导致redis的性能下降,后面大量的请求连接不上redis。因为这块儿链接redis的代码是我改的。。于是我又把原来请求mysql的代码还原了。。

目前项目正常运行了,每台服务器的cpu基本上都快100%了。担心还会出问题,cpu爆满,mysql的请求连接抗不住。。。等后面再来优化吧!!!!

以上就是php 高并发报语法错误怎么解决的详细内容,更多请关注编程网其它相关文章!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     801人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     348人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     311人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     432人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     220人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯