PHP常见函数
有时候,运行nginx和PHP CGI(PHP FPM)web服务的Linux服务器,突然系统负载上升,用top命令查看,很多phpcgi进程的CPU利用率接近100%后来通过跟踪发现,这种情况与PHP的file_get_contents()函数密切相关。
在大中型网站中,基于HTTP协议的API调用比较常见PHP程序员喜欢使用简单方便的file﹣get﹣contents(“http://example.com/”)函数来获取URL的返回内容但是,如果http://example.com/网站响应缓慢,则文件﹣get﹣contents()将始终停留在那里,并且不会超过时间限制。
我们知道,马克斯中有一个参数,它可以指定执行时间,它可以休闲鹿设置PHP脚本的最大执行时间。但是,在PHP CGI(PHP FPM)中,这个参数不起作用PHP FPM.CONF配置文件中的下列参数可以真正控制PHP脚本的最大执行时间:
查看素描?
服务单个请求的超时(以秒为单位),在此之后将终止工作进程
应在“max_execution_time”ini选项因某种原因未停止脚本执行时使用
“0s”表示“off”
<value name=“request\u terminate\u timeout”>0s</value>
默认值为0秒,这意味着PHP脚本将继续执行这样,当所有的PHP CGI进程都被困在file﹣get﹣contents()函数中时,nginx+PHP web服务器将不再处理新的PHP请求,nginx将向用户返回“502坏网关”有必要修改这个参数来设置PHP脚本的最大执行时间,但是没有必要治愈这些症状。例如,更改为<value name=“request﹣terminate﹣timeout>30s</value>如果file﹣get﹣contents()获取网页内容的速度很慢,这意味着150个PHP CGI进程每秒只能处理5个请求,而webserver也很难避免“502坏网关”。
要彻底解决这个问题,PHP程序员只能摆脱直接使用文件“get”内容(“http://example.com/”)的习惯,只需稍微修改一下,添加一个超时,然后按照以下方式实现httpget请求如果遇到问题,可以将以下代码封装到函数中。
PHP常见函数的更多相关文章
- 一篇说尽Excel常见函数用法
一篇说尽Excel常见函数用法 Word,PPT,Excel这三个Office软件是职场办公里最常用的三个软件,但是我发现简书上写PPT的教程多,Excel的少,即使有,也是零零散散.因为Excel的 ...
- LoadRunner常见函数分析
LoadRunner常见函数分析 ?%Ze\N%?~"_J}.t051Testing软件测试网;FQ X%L|GO+R Web用户Action51Testing软件测试网b,Q8iO w1j ...
- oracle 统计语句 与常见函数的归纳(未完待续)
一.统计语句 1. count count(*)与count(0)语句的区别: count(*)统计所有数量 count(0)统计第一列不为空的 2. 两个统计量的减法 select (select ...
- [Bullet3]创建世界(场景)及常见函数
创建世界(场景)及常见函数 官方文档:http://bulletphysics.org 开源代码:https://github.com/bulletphysics/bullet3/releases A ...
- 汇编实现: C库常见函数,串操作指令作用
目录 汇编实现: C库常见函数 一丶汇编实现Strncpy拷贝函数 二丶loads实现Strlen操作. 三丶stos的作用 汇编实现: C库常见函数 一丶汇编实现Strncpy拷贝函数 void _ ...
- C++常见函数使用
备注:总结C++中一些常见函数的使用,提高工作效率 数组的拼接: //报文头的前6B固定 DRV_UCHAR pkt_info_head[PALIVE_TO_NP_LEN] = {0x70, 0xff ...
- MYSQL的索引和常见函数
MySQL的索引 索引机制 MySQL属于关系型数据库,为了提高查询速度,可以创建索引. 索引:由表中的一个或多个字段生成的键组成,这些键存储在数据结构(B树或者hash表中),于是又分为B树索引(I ...
- loadrunner——常见函数
loadrunner——常见函数 分类: LoadRunner 2012-04-11 20:41 703人阅读 评论(0) 收藏 举报 loadrunnersearchweb服务器脚本stringwe ...
- SQLite3日期与时间,常见函数
SQLite3日期与时间,常见函数 import sqlite3 #con = sqlite3.connect('example.db') con = sqlite3.connect(":m ...
- MySQL 进阶4 SQL常见函数: 字符函数/数学函数/日期函数/流程控制函数(if/case)
# 进阶4 SQL常见函数 分类: 1/单行函数: 字符函数: concat(),length(),ifnull(__,default) ,instr(), trim(),upper(),lower( ...
随机推荐
- ubuntu 12.04 nfs-server/client安装配置
由于opennebula的共享存储的方式需要nfs,为了opennebula 3.8在ubuntu 12.04上搭建做铺垫,先介绍下nfs server和client端的安装和配置. 1. nfs ...
- Oracle 11g 监听很慢,由于监听日志文件太大引起的问题(Windows 下)
现象:Windows 操作系统的Oracle 数据库,使用sqlplus 连接(不指定实例名)连接很快,程序连接或使用连接工具或在Net Manager 中测试连接都需要花费约三四十秒的时间(程序连接 ...
- pytorch0.4.1安装
pytorch官网:https://pytorch.org/ 这里安装pytorch0.4.1版本(最新版本为1.3.0系列,但是在跑github上的一些项目时会不断地报“ UseWarinig:Le ...
- Select 优化
https://yq.aliyun.com/articles/704238?spm=a2c4e.11155472.0.0.66be4efeaUB5bk
- 过滤emoji表情的方法
public static function replaceEmoji($str) { $str = preg_replace_callback( '/./u', function (array $m ...
- MongoDB 谨防索引seek的效率问题(转)
目录 背景 初步分析 索引seeks的原因 优化思路 小结 声明:本文同步发表于 MongoDB 中文社区,传送门:http://www.mongoing.com/archives/27310 背景 ...
- 使用layui的form.on绑定select选中事件, form.on()不执行的原因分析
使用layui的form.on绑定select选中事件中, form.on()不执行, 主要原因有 1, select标签中没有写lay_filter属性,用来监听 <select id=&qu ...
- 删除Excel表格中一堆英文中的汉字
昨天需要处理一个Excel文件,删除一堆英文里的汉字,开始搜了下方法,没找到,然后手动一个多小时,弄了一半吧也就,结果电脑卡了,忘了保存,就白做了...不知道为啥这次没有自动保存,所以,重要的事说三遍 ...
- Linux 教程学习笔记
目录 一.Linux 系统启动过程 1.分为 5 个阶段 3.shell.操作系统.内核的关系 二.Linux 系统目录结构 三.Linux 文件基本属性 1.Linux文件属性 3.更改文件属性: ...
- Shiro认证、角色、权限
Apache Shiro 是 Java 的一个安全框架.Shiro 可以帮助我们完成:认证.授权.加密.会话管理.与 Web 集成.缓存等. Shiro的内置Realm:IniRealm和JdbcRe ...