重新启动后,Apache2服务器变得过载且无响应

我是初学者系统pipe理员,至多我一直在运行我的AWS EC2实例很长一段时间没有发生。 它主要支持我的iOS和Web应用程序及其Web连接。

最近我不得不更新我使用的iOS Web服务框架,一旦更新生效,我一直在服务器中断。 我可以SSH到我的实例,但任何外部连接尝试通过iOS服务器调用或Web访问无限加载。

我使用AWS支持来回传递,他们说我的NetworkIn看起来有点高。 我目前的解决scheme是当它下降,重新启动服务器,它通常恢复了一段时间,但到最近几天,我的stream量急剧上升,因为新的一年,重新启动后,它只能保持访问分钟,上衣。

我把我的MaxRequestWorkers从150 – > 250增加到目前为止,这是唯一让我的服务器可访问的东西。 我刚刚做了这个,在这一点上它保持活跃了30分钟,没有发生任何事情。

我不知道甚至在哪里寻找解决办法或聘请某人来帮助我解决问题的根本原因是什么。

任何一点正确的方向将不胜感激,如果您需要了解更多信息,请让我知道

你的问题没有一个单一的方法。 这可能是一个DoS或只是一个错误的configuration。 它可能是与Apache相关的任何东西(或不是)。
我可以告诉我通常做什么:

  1. 它真的是Apache的主要原因吗? 正如你刚才所说的一个networkingstream量(不是专门的networking),只需使用tophtop (我更喜欢)这样的软件来检查它。 您将拥有一个您可以按照不同标准进行订购的stream程列表。 你也可以看到哪个是系统的繁忙部分(CPU,内存,…)。

  2. 好的,这是Apache,但是: 什么导致了资源使用高峰

    • 访问日志 :看看访问日志(如果你有Ubuntu话,可以使用/var/log/apache2/access.log )。 例如,是否有很多错误代码和奇怪的请求? 403 - Forbidden404 - Not found 。 如果是这样,你可能会受到自动化工具的攻击。 这是一个非常一般的解释(我想强调这一点),但过了一段时间后,您将能够从日志中了解它(例如, 从Apache日志中识别DDoS
    • 日志 :除了试图跟踪日志stream,试着用一个为之build立的工具来分析日志。 我喜欢GoAccess 。 它是一个非常简单和强大的工具,它可以扫描你的Apache日志,并提供一些有用的统计信息(在这里可以很好的解释GoAccess网页
    • Apache统计 :你可以使用mod_status 。 这是一个Apache模块,为您创build一些关于您的Web服务器的统计信息。 您可以访问连接到网页的统计信息并进行咨询(这是使用mod_status教程的一个很好的解释
    • 其他原因 :资源真的很忙吗? 或者你有很多Apache进程正在等待来自例如DB的答案? 在大多数情况下, DB是Web架构的瓶颈。 也许是重载,它没有及时响应请求,因为,例如,你有一个阻止查询特定的表。 尝试使用netstat -atulnp | grep apache检查它 netstat -atulnp | grep apache ,看看目的地和所有请求的状态

这真的是一个无限的任务清单。 这些是开始的(恕我直言)。 如果您发布更详细的信息,我可以更具体的为您的情况。