
之前做的外包项目,还在维护期。使用 Laravel5.5 开发,部署在 AWS 。
目前 500 错误率有点高,3%左右。
系统是给设备用的,设备会定期上报,每次上报会发起几个请求(>=2 )
最高的时候请求量是 1 分钟接近 3.5 万( CloudWatch 统计的)
目前服务器 CPU 平均使用率很低,不到 20%,数据库的使用率也是 15%左右,iops 最高 700 多(上限 3000 ), 而且目前数据库的活动会话数很低。
补充一下,php-fpm 的状态
listen queue: 0 max listen queue: 3210 listen queue len: 65535 idle processes: 724 active processes: 76 total processes: 800 max active processes: 801 max children reached: 0 slow requests: 0 1 Vogan 2020-04-11 11:41:05 +08:00 via iPhone 1. 看 log 。nginx 的 log 和 laravel 的 log 2. 低负载但是 50x 很有可能 PHP 的进程数开得少,导致少数进程响应大量请求 3. 如果是 API,建议使用 lumen |
2 cszchen OP @Vogan 不是 API,xml 格式的,协议叫 tr069 。现在每台服务器 800 个静态进程,日志没找出什么问题。。 |
4 dnsaq 2020-04-11 13:09:42 +08:00 via iPhone 这叫负载不高,我没看懂为啥前端给 8 核 x2,数据库却给 4 核,redis 真的有用起来嘛。 |
5 dnsaq 2020-04-11 13:12:03 +08:00 via iPhone 上报量大就做队列 |
6 DonnyChao 2020-04-11 13:37:51 +08:00 海外服务器的话,还有可能是线路问题 |
7 v2orz 2020-04-11 13:48:04 +08:00 检查一下各个服务器的 tcp 连接状态,TIME_WAIT 和 CLOSE_WAIT 是不是很多(千 /万) 还有各种内核参数 |
8 marcolin 2020-04-11 14:02:45 +08:00 看你的 log,800 个 process 都曾经被打满了,而且有排队等候的队列( max_listen_queue ) 看下响应时间的分布就清楚了,可能是请求响应的太慢 |