最近压测中被 502 问题搞的头大,请大家帮忙看看(都发生在压力上升期,服务器压力不大):
1. connection reset by peer 发生在 php 脚本执行 10 秒
2. connection timed out 发生在连接 php 后端 3 秒
以上两个错误时间都是在 access log 的 request_time 中看到的,很有规律。
但是,当我写一个执行时间超过 10 秒钟,在单独访问(无压力)状况下,不会报错。
发生 502 错误时, php 本身是没有报错的,都执行成功。
以上就是能知道的现象了,不知道该怎么进行下一步。
服务器环境是: centos6,kernel(2.6.32), php5.2.14, php-fpm 模式, nginx1.6.3
Access log:
[28/Nov/2015:14:41:08 +0800] "GET /ben2.php HTTP/1.1" 502 172 "-" "Apache-HttpClient/4.2.6 (java 1.5)" "-" 3.000
[28/Nov/2015:14:41:11 +0800] "GET /ben2.php HTTP/1.1" 502 172 "-" "Apache-HttpClient/4.2.6 (java 1.5)" "-" 10.000
Error log:
2015/11/28 14:41:08 [error] 12981#0: *798215 connect() failed (110: Connection timed out) while connecting to upstream, client: xx.xx.xx.xx, server: xx.xx.xx, request: "GET /ben2.php HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "xx.xx.xx"
2015/11/28 14:41:11 [error] 12981#0: *798323 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: xx.xx.xx.xx, server: xx.xx.xx, request: "GET /ben2.php HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "xx.xx.xx"