Apache随机减速

我从一个1GPS连接的单机获得了一个新的专用服务器。 大约一个星期的事情是一个野兽。 一切都跑得非常快。 它现在是泥土缓慢….我$ 30 /月的godaddy vps更快。 我已经尝试了各种各样的东西(升级的Apache / PHP /重新安装操作系统/等…),什么都没有。 Traceroute和ping也没有显示任何问题。 我也尝试调整apache设置,如keepalive / maxclients / maxservers /等..绝对没有改变。 它诚实地感觉就像我在一个pos hostv vps。 一个大$ 250 /月迪迪不应该这样做,我打勾至less说(对不起,发泄)。

在我决定移动我的网站之前,我编写了testing脚本来加载我的服务器。 我不想移动它只是为了再次被另一个蹩脚的托pipe公司烧毁。 我的testing脚本应该在8-11分钟左右完成。 每个包含2500个xml http请求,我同时运行其中的4个。 现在他们花了20多分钟的时间完成(2-5倍的时间…),没有明显的原因(我可以看到)。 没有系统资源浪费。 我的脚本中没有一个使用超过0.5%cpu / 0.7%的mem。 没有磁盘垃圾或任何东西。 脚本不会失败,只是运行缓慢。 有时候他们会随机跑得更快,但现在大多只是慢点。

我不知道这是否意味着什么,但几分钟前我跑了一个可怜的哑巴人的速度testing。 我打开FileZilla FTP客户端,并在1008 25kb xml文件中下降。 花了1分45秒才完成转移。 我注意到我的服务器正在使用pure-ftp进程。 这是从我的家用电脑到服务器完成的。 我不知道pure-ftp是否使用apache,但我倾向于不。

任何帮助或build议将不胜感激! 我知道服务器调整可能很困难,但考虑到我只是拖放相同的testing脚本到godaddy vps,他们运行良好,这对我来说是无意义的。

感谢您的任何和所有的build议!

我会尝试在两台服务器上使用ab ( ApacheBench )进行一系列testing。 确保在相关服务器上运行每个服务器,即不要在同一台服务器上运行两个testing。 对于基本的testing参数,你可以使用类似于:

ab -kc 10 -t 30 http://yoursite.com/page

它使用10个并发连接,保持活跃并在30秒内执行尽可能多的请求。 之后会输出一些统计数字,重要的数字是“每秒请求数”。

运行testing:

  • 静态页面:图像或原始HTML文件。 您应该在两台服务器上获得非常高的请求率。
  • dynamic页面:PHP或您正在使用的任何types的dynamic内容。 使用各种页面,一些简单的一些复杂的,来获得一系列的请求率。

下一步做什么取决于上述结果。 希望它会告诉你哪些types的页面在哪个服务器上运行缓慢,这将给你一个进一步调查的起点(或另一个ServerFault问题)。

其他的事情,我会看看:

  • 比较两台服务器的CPU / RAM,以确保您的专用服务器实际上更强大。 如果不确定,请在两台服务器上执行一些基本的CPU /磁盘基准testing。 在专用的服务器上,你可以做cat /proc/cpuinfo但我不知道如何在VPS上工作。
  • 比较两个站点上的Apacheconfiguration是否有差异。 尽可能使用新服务器上相同的configuration文件(先备份现有的configuration文件)。
  • 如果使用PHP查看php.iniconfiguration(或类似的其他dynamic语言)。
  • 查看新服务器上的错误日志中是否有任何相关消息(Apache错误日志和/ var / log / messages,特别是/ var / log / secure)。
  • 仔细检查在运行testing脚本时是否从不使用交换内存。
  • 尝试减小testing脚本的大小/范围,直到find重复慢速问题的最小/最短testing。
  • 当所有其他的失败双重/三重检查所有的假设(例如:脚本不使用太多的RAM / CPU)。

只是一个猜测:

“剧本不会失败,他们只是缓慢运行,有时候他们会随机跑得更快,但是现在大多数情况下都很慢。”

您的testing脚本发送2500 xml请求到您的服务器,时间4如您所描述的(10k请求)。 您的FTPtestingcertificate带宽不是问题(您通过单个连接发送了2500个XML文件,传输完成)。

难道,你的网站要求一定数量的并发连接,而​​这个并发连接并不是你目前的提供者所预期的/预测的。 现在,也许,您的网站同意服务器上的另一个受欢迎的站点,与您的站点在同一个机架上?