背景:Google Cloud 上的 Debian Stretch amd64 服务器,使用 Apache 2.4.25。它通过 proxy_fcgi 到 PHP-FPM 运行基于 PHP 的网站。后端数据库是 PostgreSQL 10。Postgres 软件包已从官方 Postgres apt repo 安装,其他一切都是来自 Debian repos 的 vanilla。有一个端口 80 重定向到 443,带有 Let's Encrypt 证书。HTTP/2 和 Brotli 已启用。同一台服务器上还有一个到 Server-Sent Event 守护程序的反向代理(https://github.com/vgno/ssehub)。
服务器已经运行了 2 年多,但最近几个月出现了间歇性故障,网站停止响应请求。通常几分钟后就会恢复。我做了很多日志分析,似乎与服务器进程无关。CPU 使用率正常,内存使用率低,Apache、PostgreSQL、FPM、syslog、ssehub 的日志中没有出现错误。服务器还安装了 fail2ban,但也没有日志条目。我在 Apache 和 FPM 中加入了额外的诊断日志来检查需要很长时间处理的请求,但什么也没发现。
以下是 的输出iptables -L
:
Chain INPUT (policy ACCEPT)
target prot opt source destination
f2b-sshd tcp -- anywhere anywhere multiport dports ssh
DROP udp -- anywhere anywhere udp dpt:l2f policy match dir in pol none
DROP all -- anywhere anywhere ctstate INVALID
ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED
ACCEPT udp -- anywhere anywhere multiport dports isakmp,ipsec-nat-t
ACCEPT udp -- anywhere anywhere udp dpt:l2f policy match dir in pol ipsec
DROP udp -- anywhere anywhere udp dpt:l2f
Chain FORWARD (policy ACCEPT)
target prot opt source destination
DROP all -- anywhere anywhere ctstate INVALID
ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED
ACCEPT all -- anywhere anywhere
ACCEPT all -- 192.168.42.0/24 192.168.42.0/24
ACCEPT all -- anywhere 192.168.43.0/24 ctstate RELATED,ESTABLISHED
ACCEPT all -- 192.168.43.0/24 anywhere
DROP all -- anywhere anywhere
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain f2b-sshd (1 references)
target prot opt source destination
RETURN all -- anywhere anywhere
有什么建议可以说明可能的原因或我应该检查的内容吗?目前我能想到的唯一原因是网络拥塞,但这很难证明,因为这是一个间歇性问题,通常在我意识到并开始进行一些测试时就会解决。此外,Google Cloud 出现如此频繁的网络问题似乎令人惊讶。Google 是否有我不知道的某种流量整形策略?这是一个流量非常低的服务器,问题经常发生在几乎没有人使用该网站的非工作时间。