记一次接口调用耗时服务端PHP-FPM配置调优
最近测试人员不时有反馈,APP首页打开会出现除了基本的页面布局,需要展示数据的地方都是空白。
想着最近首页接口有过调整,新增数据。会不会是接口改动导致的??
但APP首页接口都是读取redis的,应该不至于出现接口异常的问题啊!!
手上本来有迭代任务进行中,没去看这个问题。
昨天快下班那会手上任务快做完了。上服务器看看nginx日志,php日志,同时登录阿里云服务器管理控制台查看ecs机器的内存和cpu使用记录,redis使用情况。
发现问题出现得有规律,一般是运营人员在管理后台发布消息推送,随后几分钟就会出现resquest_time耗时比较厉害。平时大部分接口0.01-0.09秒接口请求完成调用返回。但发布消息推送后,接口调用记录显示耗时上升厉害0.1秒->0.5秒->1秒->3秒->7秒,最多的达到15点几秒。

查看最近的nginx错误日志:
FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream, client: ***

网上搜索相关资料,找到如下:
https://blog.csdn.net/leonnew/article/details/79738593

凭直觉首要排除1和3,直接去看2的问题,看php错误日志:

搜索“WARNING: [pool www] server reached pm.max_children setting (5), consider raising it” 错误原因,找到如下:
https://lirongyao.com/server-reached-pm-max_children-setting.html
看php配置:

估计是运维搭建生产环境把php-fpm启动后进程数配置太小,和运维沟通后,发个邮件让运维更改php7配置。
中午吃饭时候运维把配置给改了重启,不久后运营人员那边新发一个push消息推送。
再上生产服务器,竟没有错误日志了。。又打开APP,同事们没有出现白屏无数据的情况,我手机偶现白屏一次。
PHP-FPM配置已经改了啊,为啥还是有白屏??
立即上阿里云管理后台查看日志服务,看到push发出后,单是首页的有个接口一分钟内超出280的调用。
这让我想起项目刚上线不久,有对项目使用的laravel框架接口调用次数限制由默认60次一分钟上调到一分钟200过。

手机偶尔白屏应该就是laravel框架这个限制次数导致的!
再上调laravel次数限制为500上生产,等运营再次发送push消息推送,APP已不见白屏的情况。
登录阿里云管理后台查看日志服务,首页接口调用时间基本正常,最长的没超过0.2秒:

如果不做php-fpm配置的修改,正常情况下,没人攻击服务器恶意捣乱什么的,不会出现什么问题。
公司商务近期在做该APP推广,经过我这边已经接入头条app广告,热葫芦,小豆故事,还有接入测试完成即将上线的百度app广告。
用户数正在不断上升。运营人员消息推送发布,同一时间大量的用户打开APP,接口调用急剧增加,需要启动php进程数会被迅速拉起,原有的配置已经很难满足需求。
记一次接口调用耗时服务端PHP-FPM配置调优的更多相关文章
- XFire客户端调用CXF服务端(四)
前面章节:http://www.cnblogs.com/xiehongwei/p/8082337.html 已经开发出了CXF服务端,现在用XFire开发客户端调用CXF服务端,代码如下: impor ...
- chrony时间同步 服务端 客户端 安装配置
chrony时间同步 服务端 客户端 安装配置 原创内容http://www.cnblogs.com/elvi/p/7658021.html #!/bin/sh #运行环境 centos7 #chro ...
- 红帽学习笔记[RHCE]OpenLDAP 服务端与客户端配置
目录 OpenLDAP 服务端与客户端配置 关于LDIF 一个LDIF基本结构一个条目 属性 Object的类型 服务端 安装 生成证书 生成默认数据 修改基本的配置 导入基础数据 关于ldif的格式 ...
- seata服务端和客户端配置(使用nacos进行注册发现,使用mysql进行数据持久化),以及过程中可能会出现的问题与解决方案
seata服务端和客户端配置(使用nacos进行注册发现,使用mysql进行数据持久化),以及过程中可能会出现的问题与解决方案 说明: 之所以只用nacos进行了注册与发现,因为seata使用naco ...
- Java调用Http/Https接口(1)--编写服务端
Http接口输入的数据一般是键值对或json数据,返回的一般是json数据.本系列文章主要介绍Java调用Http接口的各种方法,本文主要介绍服务端的编写,方便后续文章里的客户端的调用.文中所使用到的 ...
- webservice -- cxf客户端调用axis2服务端
背景: 有个项目, 需要由第三方提供用户信息, 实现用户同步操作, 对方给提供webservice接口(axis2实现)并也使用axis2作主客户端调用我方提供的webservice接口 起初, 由于 ...
- java 从零开始手写 RPC (05) reflect 反射实现通用调用之服务端
通用调用 java 从零开始手写 RPC (01) 基于 socket 实现 java 从零开始手写 RPC (02)-netty4 实现客户端和服务端 java 从零开始手写 RPC (03) 如何 ...
- JAVA WEBSERVICE服务端&客户端的配置及调用(基于JDK)
前言:我之前是从事C#开发的,因公司项目目前转战JAVA&ANDROID开发,由于对JAVA的各种不了解,遇到的也是重重困难.目前在做WEBSERVICE提供数据支持,看了网上相关大片的资料也 ...
- php使用webservice调用C#服务端/调用PHP服务端
由于公司业务需要,用自产平台对接某大厂MES系统,大厂提出使用webservice来互通,一脸懵逼啊,一直没有使用过php的webservice的我,瞬间打开手册开始阅读,最终爬过无数坑之后,总结出如 ...
随机推荐
- vs2015上使用github进行版本控制
我是用的是vs2015企业版 一.首先创建项目,右下角选择新建git存储库 二.在工具栏选择团队-管理连接,打开团队资源管理器,点击同步 . 三.选择下面的发布选项 四.在gitgub上新建仓库,得到 ...
- AutoMapper在C#中的有趣应用
最近发现了一个比较有趣的东西 AutoMapper,主要将Model转换为DTO,DTO更注重数据,对领域对象进行合理封装,从而不会将领域对象的行为过分暴露给表现层. 先来看一点实例,两个类之间的映射 ...
- 巧用网页开发者工具F12 审查、修改元素、去除广告、屏蔽遮罩
巧用网页开发者工具F12 审查.修改元素.去除广告.屏蔽遮罩 每当打开一个网页的时候,是否为页面有很多广告而烦恼:是否为要操作页面(例如观看超清视频),请先注册登录等等事情而麻烦:是否对网页加锁的视频 ...
- c# 图片等比缩略
public Bitmap getnew(Image bit, int TargetWidth, int TargetHeight)//beishu参数为放大的倍数.放大缩小都可以,0.8即为缩小至原 ...
- 201621123023《Java程序设计》第13周学习总结
一.本周学习总结 以你喜欢的方式(思维导图.OneNote或其他)归纳总结多网络相关内容. 二.为你的系统增加网络功能(购物车.图书馆管理.斗地主等)-分组完成 为了让你的系统可以被多个用户通过网络同 ...
- JZOJ6096 森林
题目传送门 Description 我们定义对一棵树做一次变换的含义为:当以 1 号节点为根时,交换两个互相不为祖先的点的子树: 一棵树的权值为对它进行至多一次变换能得到的最大直径长度: 初始时 ...
- leetcode 72 编辑距离 JAVA
题目: 给定两个单词 word1 和 word2,计算出将 word1 转换成 word2 所使用的最少操作数 . 你可以对一个单词进行如下三种操作: 插入一个字符 删除一个字符 替换一个字符 示例 ...
- “全栈2019”Java异常第一章:什么是异常?
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java异 ...
- java实际项目中interface和abstract interface 区别
参考:https://zhidao.baidu.com/question/424485344260391052.html 这2种有什么区别,根据实际项目经验 帮我解答下 谢谢啊~~~~~~~~~问题补 ...
- angular核心原理解析3:指令的执行过程
指令的执行过程分析. 我们知道指令的执行分两个阶段,一个是compile,一个是link. 我们可以在指令中自定义compile和link. 首先,我们来讲解如何自定义link函数 举个例子: < ...