项目问题描述,第三方调a接口,a接口去数据库查数据。有时候会出现502的错误
查了sql每次查询时间大概在一秒。 无法继续优化
set_time_limit(0);
mysql_close(数据库连接);
1、必现502,应用“挂了”
(1)后端机器上检查:检查进程是否在
ps -ef |grep php
检查端口是否被占用lnp 或者anp
netstat -anp |grep 端口号
只获取HTTP头文件
curl -I url地址
(2)看下接入层,nginx请求日志access.log
-f 实时查看日志文件
tail - 100f 实时查看日志文件 后一百行
tail -100f access.log |grep 查询的信息
2、偶现502 查看cpu使用率
top 运行中可以通过 top 的内部命令对进程的显示方式进行控制。内部命令如下表:
s- 改变画面更新频率
l - 关闭或开启第一部分第一行 top 信息的表示
t - 关闭或开启第一部分第二行 Tasks 和第三行 Cpus 信息的表示
m - 关闭或开启第一部分第四行 Mem 和 第五行 Swap 信息的表示
N - 以 PID 的大小的顺序排列表示进程列表(第三部分后述)
P - 以 CPU 占用率大小的顺序排列进程列表 (第三部分后述)
M - 以内存占用率大小的顺序排列进程列表 (第三部分后述)
h - 显示帮助
n - 设置在进程列表所显示进程的数量
q - 退出 top
s -改变画面更新周期
top
(1)CPU使用率高,QPS增加
考虑有大流量,后端压力导致短暂不可用,可以考虑 dns,lvs,硬件负载均衡器。
504 : 修改nginx的超时参数,将参数调大一点,如设置为60秒. send_timeout 60;