我目前有一个流量非常高的服务(大约每秒 1000 个连接,而且这个流量已经无法通过优化来减少)。直到一周前,我还在 AWS 上,并且调整了一些 apache/NGNIX 配置来处理这种负载。根本没有问题。
我现在想更换主机,我选择了 OVH;新的服务器配置比后者好 4 倍(128GO RAM、24 核最新一代处理器,配备 30mb 缓存......)
现在问题来了;在新服务器上,当我每秒超过 600 个连接时,不知何故出现了 503 错误(由 Apache 引起)。-首先:我当然知道我必须对连接进行负载平衡,我也打算这样做;但在复制之前,我想要一个干净的配置。-Apache 配置为处理 4000 个并发连接,当我对简单进行压力测试时,它确实如此
所以我的假设是: - OVH(新主机)太频繁地阻止我的内部连接。但他们告诉我,只有当我超过 1GB/S 带宽时他们才会阻止(我没有 - 远远没有达到这个要求) - Apache 配置有点不同,导致服务器比以前更快进入 503(可能它不喜欢连接到 mysql 和获得结果之间的 0.5 秒)。确实存在很大区别;在新服务器(Ubuntu)上,我的 apache 位于 NGNIX 反向代理后面,并且位于 docker 容器中,而之前它是一个简单的 LAMP
有人能解释一下发生了什么吗?我完全迷茫了,很沮丧。
提前致谢。
答案1
答案是 backlog 配置。你可以在 Linux 系统(docker 上)上找到一些,也可以在 mysql、mongodb 等上找到一些...当流量很大时,你也需要调整这些设置。
我还改变了 TCP 连接的限制;默认情况下,这些受到 Linux 的限制。