MySQL /基于Apache的symfony网站的问题

在7月1日我开始工作的公司里,我inheritance了一个运行MySQL / Apache的networking服务器,在这个networking服务器上运行着一个在Symfony中build立的网站。

该服务器运行openSuSE 12.1,并有一个英特尔至强3470 CPU,12GB RAM。 除了运行网站,服务器没有太多的事情要做。

我们得到了一些严重的服务器负载峰值,在过去的几周里变得尤为明显。 在这些时候,负载可以高达40至60(有时甚至更高)。 当这种情况发生在办公时间之外时,我发现服务器不会崩溃,尽pipe浏览器无法访问站点,大约30分钟后,服务器恢复正常的负载。 当在办公时间发生这种情况时,我手动closuresapache和MySQL,让服务器冷静一点,然后再开始一切。

从我的访问日志和查询日志,我没有看到任何特别的东西。 我没有理由怀疑DOS,而且我可以看到,在这些高峰负载期间,有时需要一分钟或更长时间才能运行的查询在我的本地MySQL服务器上运行时运行,或者当它们由网站运行时'正常'情况。

长话短说 – 从我迄今为止收集的情况来看,问题似乎是,有时服务器开始产生大量的Apache进程以及大量的MySQL连接。 大多数的连接和进程似乎没有那么多,CPU的方式,但他们填满内存。

我已经通过networking阅读我的方式,特别是似乎mysql的明智的max_connections和wait_timeout,以及也许max_allowed_pa​​cket和Apache的明智的ServerLimit,MaxClients。 我不知道是否有闲置的apache进程超时,但我可以想象,这也将有所帮助。

Apropos max_allowed_pa​​cket …这被设置为209715200(200 MB)。 这似乎相当高,至less它似乎解释说,有40多个连接打开,我用尽内存(至less,我明白,MySQL分配这些200 MB的每个连接,无论是否睡觉或不。

我遇到的一个普遍问题是,在服务器调优方面,我并不是真正的最大的英雄:/主要是,我非常担心上面提到的configuration参数的任何混乱可能会导致正在运行的查询或请求,或导致任何Havoc in网站的运行。

好吧,这一切都不是一个真正的具体问题,而是更多的问题描述。 尽pipe如此,任何build议或帮助是值得欢迎的,因为我并没有真正取得进展。

干杯,Constantijn