WordPress网站产生的max_execution_time致命错误在您的WordPress管理仪表盘中如下所示:
如果用php去抓取网页内容,传统的方式是用一个for循环,将url逐个遍历,假设每个url耗时1秒,6个url就需要耗时6s,这种方式效率太低了。通过swoole的进程管理模块,我们可以实现多进程抓取内容,每个进程对应负责一个url,从而实现1秒完成抓取任务
在 php.ini 中,有一个参数 max_execution_time 可以设置 PHP 脚本的最大执行时间,但是,在 php-cgi(php-fpm) 中,该参数不会起效。真正能够控制 PHP 脚本最大执行时:
502 和 php-fpm.conf 1.php-cgi进程数不够用。php执行时间长,导致没有空闲进程处理新请求。 2.php-cgi进程死掉。php-fpm超时时间短,当前进程执行超时关闭连接。 实例: 1.request_terminate_timeout引起的资源问题 request_terminate_timeout默认值为 0 秒,也就是说,PHP 脚本会一直执行下去。 php.ini 里面max_execution_time 可以设置 PHP 脚本的最大执行时间,但是,request_term
一个php脚本通过crontab每5分钟执行一次,考虑到脚本执行时间会超过5分钟,特意用set_time_limit(290)来控制脚本在290秒退出。某天突然发现后台有多个该脚本的进程在执行,也就是说set_time_limit(290)没有起作用。为了证明,特意使用如下代码测试。
1,curl进程运行了一个api查询接口,curl的时候设置了超时时间 --connect-timeout 1000 2,operation timed out after 1000 milliseconds with 0 bytes received 3,connect() timed out!
Swoole内核团队开设的专栏,会逐渐投入精力写文章介绍Swoole的开发历程,实现原理,应用实践等,大家可以更好的交流,共同学习,建设PHP生态。
随着php脚本语言使用的普及,目前webserice服务大部分都在用nginx+(php-fpm)的结构,了解了其工作过程后才可以在各个方面想办法做调整优化和故障排查,从以下几点总结一下这种模型。 一、nginx和php-fpm的关系和分工 nginx是web服务器,php-fpm是一个PHPFastCGI进程管理器,两者遵循fastcgi的协议进行通信,nginx负责静态类似html文件的处理,php-fpm负责php脚本语言的执行,这么设计的目的是为了解耦前端nginx和后端的php,不至于让容易出问题
Status Code 499、500、502、504也是后端Http服务经常返回的状态码,试想一下,对于每个状态码,如果你能通过一些修改或配置来人为复现它,是不是会更利于你去掌握它呢?本文就是通过制造它们的方式来学习它们。
php日志中有一条超时的日志,但是我request_terminate_timeout中设置的是0,理论上应该没有超时时间才对。
我们的PHP程序有时候需要定时执行,我们可以使用 ignore_user_abort 函数或是 在页面放置js让用户帮我们实现。但这两种方法都不太可靠,不稳定。我们可以借助Linux的Crontab工具来稳定可靠地触发执行PHP任务。
有两种启用方式:1, 在my.cnf 里 通过 log-slow-queries[=file_name]
PHP启动时将读取配置文件(php.ini)。对于PHP的服务器模块版本,仅在启动Web服务器时才发生一次。对于CGI和CLI版本,它会在每次调用时发生。
XHProf 是一个分层PHP性能分析工具。它报告函数级别的请求次数和各种指标,包括阻塞时间,CPU时间和内存使用情况。一个函数的开销,可细分成调用者和被调用者的开销,XHProf数据收集阶段,它记录调用次数的追踪和包容性的指标弧在动态callgraph的一个程序。它独有的数据计算的报告/后处理阶段。
使用mktime()制造出时间戳,再使用date()显示为yyyy-mm-dd格式的日期
502 Bad Gateway 是一种HTTP协议的服务器端错误状态代码,它表示作为网关或代理角色的服务器,从上游服务器(如tomcat、php-fpm)中接收到的响应是无效的。
之前介绍了《PHP性能分析之Xhprof安装》和《PHP性能分析之Xhprof的使用》,链接如下: PHP性能分析之Xhprof安装 PHP性能分析之Xhprof的使用 下面来介绍下Xhprof输出的
final是在PHP5版本引入的,它修饰的类不允许被继承,它修饰的方法不允许被重写。
xdebug是一个开源的php调试器,以php模块的形式加载并被使用。可以用来跟踪,调试和分析PHPPHP
一、概述 该类主要是检测一段代码的运行时间,检测一些PHP效率问题。 二、使用方法 首先require该类 主要使用接口为begin(),preTime()和end() begin($ou
数据库90%的性能问题由于SQL引起,线上SQL的执行快慢,直接影响着系统的稳定性。
我们晓得一旦站点慢下来之后有很多原因,假如站点是LNMP结构,我们可以从Nginx,PHP,Mysql三部分去找原因(当然排除负载和外部设备问题),在PHP这块我们有个慢日志,终究可视化度没有那么高,如何快速追踪到瓶颈呢? xhprof是facebook开源出来的一个php轻量级的性能分析工具,跟Xdebug类似,但性能开销更低,还可以用在生产环境中,也可以由程序开 关来控制是否进行profile。 Graphviz由一种被称为DOT语言的图形描述语言,可以根据提供的节点以及线生成图形。 xhprof 是可
本次代码符合PHP规范PRS_0根目录下新建一个Frame的目录(核心目录),建立APP目录(项目目录)统一访问入...
启用慢查询日志 mysql 中的 slow log 是用来记录执行时间较长(超过 long_query_time 秒)的 sql 的一种日志工具。 启用 slow log 在 my.cnf 中设置 [mysqld] slow_query_log=on slow_query_log_file=mysql-slow 重启 MySQL 服务。 1.工具集 五款常用工具 mysqldumpslow mysqlsla myprofi mysql-explain-slow-log
Apache的日志有很多可以自己定义的项目,其中一个 %T 能够显示出服务器处理请求所用的时间。我就是对这个的定义发生了疑问,所以做了一些考证。
此篇技术博文主要介绍的是crontab,Linux下的计划任务管理工具。涉及内容包括crontab使用配置、常见坑的分析和编者总结的错误调试方法。
image.png 开始整合ThinkPHP功能了,先把这两个导出Excel表的功能提交上去,项目地址:Github 昨天发csv格式的时候就说PHPExcel导出没有表头的问题,昨天研究了一下搞出来了 第一步:导入phpexcel 从官网下载或者从我的项目中拉取,路径是/ThinkPHP/Library/Vendor/PHPExcel,从官网下载的话也是放在这个路径下面 第二步:封装函数 /** * 数组转xls格式的excel文件 * @param array $data 需要生成e
PHP从5.4版本开始就提供了一个内置的WEB服务器,可以通过一个简单的命令`php -S`启动一个WEB服务器,极大简化了开发环境的搭建。
1、列出五种以上你使用过的PHP 的扩展的名称 (提示:常用的PHP扩展 , 如 GD 扩展)
应用程序把动态文件生成的html文件缓存到文件服务器,以后用户请求动态文件,直接从文件服务器加载对应的静态缓存的html文件返回给用户,这里面主要节省了动态语言的执行时间和数据库访问时间。但是会增加了缓存框架的加载和缓存查找的时间。
float lcg_value ( void ) lcg_value() 返回范围为 (0, 1) 的一个伪随机数。本函数组合了周期为 2^31 – 85 和 2^31 – 249 的两个同余发生器。本函数的周期等于这两个素数的乘积。
第一个方法是最常见的, 如果php服务器上没有权限去crontab, 也可以找一个自己的机器定期crontab去请求服务器
其中array1是个数组,我们直接在array_unique中传入数组即可。我们重新用一个数组接收之后,输出发现重复值去掉了。
通过redis 有序集合来存储执行时间,每次取出第一个元素,执行时间与当前时间对比,如果小于等于当前时间则执行改脚本。并且移除改元素。 由于redis 集合具有唯一性,所以不能放在一个表里。
Nginx 与 php-fpm 的结合 在 Linux 上,nginx 与 php-fpm 的通信有 tcp socket 和 unix socket 两种方式。 tcp socket 的优点是可以跨服务器,当 nginx 和 php-fpm 不在同一台机器上时,只能使用这种方式。 Unix socket 又叫 IPC (inter-process communication 进程间通信) socket,用于实现同一主机上的进程间通信,这种方式需要在 nginx 配置文件中填写 php-fpm 的 socket 文件位置。
导读:PHP 是 Web 开发最常用的语言,每个大版本的更新都带来不少新特性和性能提升。特别是 PHP 7.0 的发布,带来 PHP 性能飞跃。本文作者对各个 PHP 版本进行了 CPU 性能基准测试,并且带来了PHP下个大版本的消息。本文中文版由高可用架构志愿者翻译。
核心代码取自彩虹云任务阉割版,并经过极致阉割、二开,只留下简单核心,取名PHPcron,代码压缩包仅2~3kb,解压后也就两个文件,总共20kb,数据库改用纯sqlite,也有mysql版懒得发出来了。
PHP 本身的定时器介绍 Swoole 中定时器的使用方法 Swoole 定时器的底层原理
PHP获取服务器基本信息,免配置流程直接放到后台html即可输出到页面,灰常方便 只要直接复制粘贴就能显示对应信息哦 下面是PHP获取当前服务器信息的基本语句。 PHP程序版本: <?PHP e
报错信息 504 Gateway Time-out 原因是程序执行时间过长,导致请求超时。 解决方法 首先,尽可能地优化程序代码的执行时间。 其次,修改配置文件。 修改 php.ini 配置文件。 max_execution_time = 600 修改 nginx.conf 配置文件。 keepalive_timeout 600; fastcgi_connect_timeout 600; fastcgi_send_timeout 600; fastcgi_read_timeout 600; proxy_
概述 原生Percona版 PT-kill(Perl)工具只是单纯的KILL掉正在运行中的慢SQL,而不能作为一个监控工具使用,例如缺少邮件报警或者微信报警功能,固需要将其重构。
tp5的消息队列是基于database redis 和tp官方自己实现的 Topthink
XHProf是一个轻量级的 PHP 性能分析工具,提供了图形化的界面展示性能参数和过程。
分析之前请大家务必了解消息队列的实现 如果不了解请先阅读下: 有赞消息队列设计 去哪儿网消息队列设计
AppServ 是 PHP 网页架站工具组合包,作者将一些网络上免费的架站资源重新包装成单一的安装程序,以方便初学者快速完成架站,AppServ 所包含的软件有:Apache、
1.php-fpm.conf:是PHP-FPM特有的配置文件,是PHP-FPM进程管理器的配置文件
虽然通过nginx accesslog可以记录用户访问某个接口或者网页所消耗的时间,但是不能清晰地追踪到具体哪个位置或者说函数慢,所以通过php-fpm慢日志,slowlog设置可以让我们很好的看见哪些php进程速度太慢而导致的网站问题 php-fpm.conf的配置文件中有一个参数request_slowlog_timeout是这样描述的 ; The timeout for serving a single request after which a PHP backtrace will be ; dum
领取专属 10元无门槛券
手把手带您无忧上云