记一次接口调用耗时服务端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上新建仓库,得到 ...
- (zxing.net)一维码Code 93的简介、实现与解码
一.简介 一维码Code 93: Code 93码与Code 39码的字符集相同,但93码的密度要比39码高,因而在面积不足的情况下,可以用93码代替39码.它没有自校验功能,为了确保数据安全性,采用 ...
- C语言/C++编程学习:和QT零距离接触的意义
C语言是面向过程的,而C++是面向对象的 C和C++的区别: C是一个结构化语言,它的重点在于算法和数据结构.C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现 ...
- java学习笔记—web计算器(36)
MVC模式 模式主要的任务是帮助开发者解决一类问题. MVC模式主要是用于规划你的网站的开发的一个基本的结构. Servlet记住充当的是控制器层.cn.itcast.controller Java类 ...
- 深入了解java虚拟机(JVM) 第十一章 类的加载
一.类加载机制概述 虚拟机把描述类的数据从class文件加载到内存并对数据进行效验,解析和初始化,最终形成可以被虚拟机直接使用的java类型,这就是虚拟机的类加载机制. 二.类加载的机制 类加载的过程 ...
- C#取得控制台应用程序的根目录方法
如有雷同,不胜荣幸,若转载,请注明 取得控制台应用程序的根目录方法1:Environment.CurrentDirectory 取得或设置当前工作目录的完整限定路径2:AppDomain.Curren ...
- Elasticsearch5.4 删除type
首先要说明的是现在的Elasticsearch已经不支持删除一个type了,所以使用delete命令想要尝试删除一个type的时候会出现如下错误,如果存在一个名为edemo的index和tets的ty ...
- nginx之重写
rewrite可以写在server段.location段和if段.语法: rewrite regexp replacement [flag] flag是标记.有4种标记,它们的作用如下表. flag ...
- 30 个免费的 Sketch 必备插件
简评:中秋三天小长假,要不要学点啥?比如简单的设计?比如用 Sketch 做个项目? Sketch 有许多值得称赞的地方,其丰富的插件就是亮点之一.Sketch 的社区有着大量免费高效的插件.今天这篇 ...
- 支持向量机通俗导论(SVM学习)
1.了解SVM 支持向量机,因其英文名为support vector machine,故一般简称SVM,通俗来讲,它是一种二类分类模型,其基本模型定义为特征空间上的间隔最大的线性分类器,其学习策略便是 ...