我通过GoDaddy使用了一个新的虚拟服务器,今天早上我收到了一个电话,告诉我我们的网站处于离线状态。 确认之后,我通过我们的GoDaddy控制面板请求了一个电源循环,服务器在一两分钟内恢复在线。 我打了电话,并报告说我们回来了。
当然,几分钟后,我们再次下降。 我尝试通过PuTTy进行连接,并要求我提供一个用户名,并且每个连续的提示都需要很长时间才能提出。 我正在使用CentOS。 所以我的问题是:
一个有趣的,也许是相关的观察是,昨天我们的带宽消耗比我们上个月的最高数字高出约20%。
也许服务器正在被斜杠或DOS攻击。
可能发生的事情是,Apache正在使用太多的RAM,并且像疯了似的交换。 一旦开始交换,它就处于死亡的螺旋状态(因为每次新的请求开始交换之后都要花费更长的时间来完成)。 拯救它的唯一方法就是在Apache陷入交换之前反弹Apache。
要解决这个问题,你需要调整Apache不要启动太多的线程/工作进程。 见它的文件 。 要么,要么去一个轻量级的Web服务器(像Lighttpd或Nginx的东西)。
我build议build立一个networking监视器。 我个人使用Nagios和Munin来监视我所有的服务器/服务。 Nagios在资源不足或进程/服务器脱机时向我提供警报和警告。 Muninlogging了历史信息(所以如果你知道这个信息在20分钟前就已经下降了,你可以看到什么改变到了下降点)。 如果要有效地pipe理生产服务器(至less是IMHO),则需要两种样式的监视系统。 这样你就不必担心依靠你的主机除了服务之外的任何东西…
在我的networking服务器,我们configuration监控它会发送一个短信给pipe理监控 &
追踪
请求主机为您的服务器打印出CPU和IO活动,以便您可以查看使用了多less服务器端资源。 尤其是当你无法login时,虚拟机端会有很好的关于networking,磁盘IO和CPU的图表。