Sql server 如何找到网站在线/离线的原因

Sql server 如何找到网站在线/离线的原因,sql-server,apache,webserver,Sql Server,Apache,Webserver,似乎今天我管理的一个网站一整天都在上线和离线。我不知道是什么导致了这个问题,所以我正在寻求从哪里开始的指导。这是一个基于WordPress的网站 以下是我所知道的: 我使用一个程序,每分钟ping一次服务器,当服务器没有回复我时,它会给我发电子邮件,这样我就可以准确地知道网站何时在线和离线。该站点位于晚上8点至12点12分12点28分之间,凌晨1点左右12点29分(纽约市时区,以下所有时间都在同一时区) 在起起落落的时候,我发现内存的使用非常紧张。查看站点在线/离线时的平均负载()。然后我运行这

似乎今天我管理的一个网站一整天都在上线和离线。我不知道是什么导致了这个问题,所以我正在寻求从哪里开始的指导。这是一个基于WordPress的网站

以下是我所知道的:

我使用一个程序,每分钟ping一次服务器,当服务器没有回复我时,它会给我发电子邮件,这样我就可以准确地知道网站何时在线和离线。该站点位于晚上8点至12点12分12点28分之间,凌晨1点左右12点29分(纽约市时区,以下所有时间都在同一时区)

在起起落落的时候,我发现内存的使用非常紧张。查看站点在线/离线时的平均负载()。然后我运行这个命令来重新启动http(),然后内存使用率下降到这个()。在我重新启动http一小时后,网站就离线/在线了,因此重新启动http没有多大帮助

当站点离线/在线时,我运行top命令并获取此()。当站点处于最低点时,这里有一个top命令(-因此这将被称为“normal”)

这是一个带宽报告()

流量似乎没有那么大(),但看看我的时间,网站的速度在上升/下降,这可能是原因之一

我在Media Temple()有dvp Nitro软件包


因此,在这一点上,我会请求一些帮助,试图找出这是什么原因,以及我如何能够着手查明这个问题。非常感谢您的帮助。

您使用的是一个虚拟服务器,它更难调试-更有可能出现瓶颈。这在很大程度上取决于主机配置

但是,您应该做的第一件事是:

将apache中的
KeepAlive
方向设置为Off

在几乎所有情况下,这都会显著降低apache造成的服务器负载,但会稍微减少客户端请求的延迟。(因为他们必须为要获取的每个资源打开一个新连接。)

但是您的mysql服务器似乎消耗了最多的资源。看看慢速查询日志,也许你能发现一些东西

很可能是您的应用程序出了问题(它挂起并保持mysql连接打开,执行奇怪的查询等)

但这并不需要。这也可能是某种资源死锁

请运行此命令并发布输出:

cat /proc/user_beancounters
它是一个文件,精确地显示您的虚拟机的限制,以及它们是否已达到

这将使更多的光照在这个问题上,以便我们能够进一步分析它


请同时发布“
df-h
”以及“
df-i

非常标准的东西-你有很多“慢”客户端。客户端越多,apache的工作速度就越慢。死循环

您需要:

1) 将apache切换到预工作模式,最大进程数=10-20


2) 设置类似前端的nginx。另一个选项-用lighthttpd替换apache。它们每个连接都使用很少的内存。

我看到类似的设置也会发生同样的情况。在我们的案例中,结果是出现了这样一种情况:有几个客户端速度很慢,并且占用了数据库连接,这使得其他所有人的速度都变慢了。如果我重新启动MySQL,问题就会消失

您可能可以通过调整MySQL设置来改进。然而,使用Wordpress改进的最快方法之一是安装WP超级缓存。大多数情况下,这将通过显著减少发生的数据库调用数量来修复任何数据库问题


检查服务器上还有哪些其他进程。数据库备份?你是指在后台运行的数据库备份?这是在服务器级别还是Wordpress中运行db备份的某个级别?您的访问和错误日志会怎么说?对于缓慢/中断的阶段,sar怎么说?对于服务器管理问题,难道没有更好的SO吗?