多个xhr请求导致服务器过载

时间:2015-09-29 01:54:14

标签: php mysql linux apache unix

最近,L开始遇到我在bluehost上托管的在线应用程序的性能问题。

我有一个在线表单,它将公司名称和事件处理程序“onKeyUp”绑定到该字段。每次将字符放入字段时,它都会向服务器发送请求,该服务器会生成多个mysql查询以获取数据。 Mysql查询一起大约需要1-2秒。但是,因为在放入每个字符之后发送请求很容易使服务器超载。

此问题的解决方案是在发送新请求之前取消之前的XHR请求。它似乎对我来说很好(大约一年)直到今天。不确定bluehost是否更改了服务器上的任何配置(我有VPS),或者任何php / apache设置,但是由于我拥有的用户数量,我的应用程序现在非常慢。

我会理解可能导致数据库增长的生产力逐渐下降,但它突然发生在周末,速度下降了10次。通常要求花费大约1-2秒才需要10-16秒。

我通过SSH连接到服务器&运行一些压力测试发送大量查询,以查看将显示哪个进程监视器(顶部)。正如我所料,对于每个新请求,它都是一个创建的php进程,它被放入队列进行处理。显然,这个队列等待了大部分的等待时间。

现在我很困惑,是否有可能之前(服务器上的假设更改)每个XHR Abort命令实际上导致PHP进程退出,减少服务器上的额外负载,从而使其更快地工作?现在由于某种原因,这不再起作用了吗?

我在Windows 7上安装了WAMP,作为我的测试环境,当我导出相同的数据库并在本地运行压力测试时,它的工作速度很快。就像之前在服务器上一样。但是在Windows上我没有像TOP那样方便的进程监视器,所以我无法看到php进程是否实际上分别被创建和杀死。

此时不确定如何进行故障排除。

0 个答案:

没有答案