我们使用Nginx + PHP + FastCGI作为我们的Web服务器,我们在错误日志中看到了一堆超时错误(见下文)。 我们很快重新启动了nginx,并解决了问题 – 现在。 但是,我们正试图find根本原因并解决问题,所以不会再发生。
你能向我们解释这个错误还是指出我们朝着正确的方向?
检查导致错误的组件的文档和/或源代码。
看起来我们一起发生了两个错误:18657(连接失败)和18656(上游超时)。
他们什么时候发生?
您可以在发生日志时(及时)find日志中的时间戳。 要理解它们出现的原因(如何),请检查文档/源代码。 如果这对您来说太复杂了,请联系您的系统pipe理员,让它为您分析。 对于您使用的确切服务器版本,您正在使用的确切FASTCGI实现以及您正在使用的确切PHPconfiguration,这可以是非常具体的。
有没有办法看到错误发生时服务器上的networking统计信息? 我们希望看到有多less个php进程,入站连接等,当我们遇到问题的时候。
联系您的系统pipe理员。 她/他应该能够提供您正在寻找的任何types的监控。 (这个选项可能只适用于未来,而不是过去)
我们怎么能重现这个问题,并确定它?
除非你find原因,否则不能具体回答。 您可以开始监视并等待它发生,或者您可以尝试通过一次抽取数千个请求来激发您的服务器。
我强烈build议你开始监视你的服务器。 这将使您更好地了解可能运行哪些问题。 你描述的两个错误看起来像networking问题。 这可能是您正在联系的服务器(可能是本地计算机)超时(上游超时),甚至拒绝连接(连接失败)。
然后,您可以尝试不要让太多的连接触发这个,所以直接将故障转移给用户(而不是过分强调系统)和/或如果您能find原因,请调整networking设置以更好地处理与您典型的网站使用的要求。 但是,服务器在技术上可能无法处理您所面临的请求的数量/types(硬性限制)。 监控将帮助你找出答案。