最近,我从另一个开发人员那里继承了一个web服务器设置。基本上如下:
2台运行apache 2的web服务器2台负载平衡器运行nginx 2数据库服务器运行MySQL
大约每周,apache服务器都会对请求失去响应,负载均衡器最终返回504网关超时。我登录到web服务器并检查它返回的正常运行时间:18:40:49 up 5 days, 20:15, 1 user, load average: 122.37, 119.80, 107.57,与实例可用的进程数(8个)相比,这个值非常高。
为了尽快恢复联机,我重新启动了web服务器,一切都恢复了正常:18:54:19 up 5 min, 1 user, load average: 0.11, 0.22, 0.10
我并不是要求明确的答案,因为我应该进一步研究问题的根源,但我想就这个问题提出一些提示和建议:
谢谢你的帮助。
发布于 2014-05-05 21:17:20
重新启动修复的高负载可能是某种泄漏的症状。如果内存使用量增加,或者是由于内存泄漏,或者仅仅是因为应用程序平台维护了一些数据结构,随着时间的推移而增加,那么服务器最终可能会交换很多数据。
这显然取决于很多因素,但我看到but服务器的内存太紧,会出现像您所描述的症状。
另一种可能是,应用程序生成后台线程,这些线程由于某种原因一直在运行,并花费CPU时间或其他资源。
我强烈建议您向前面的所有者询问可能消耗资源(内存和CPU)的线索。如果服务器被破坏了,您描述的症状也可能发生,但是如果不知道服务器应该如何运行,就很难分辨出两者的区别。即使妥协不是解释的一部分,您仍然需要了解应用程序才能调试问题。
https://serverfault.com/questions/593247
复制相似问题