网站在VPS上变慢,在共享主机上速度非常快。 怎么了?

我的共享主机暂停我的网站,说明系统过载,所以我把我的网站移动到一个VPS有4GB内存。 但由于某种原因,网站变得非常缓慢。

这是vmstat输出 –

procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------ rb swpd free buff cache si so bi bo in cs us sy id wa st 1 0 0 3050500 0 0 0 0 0 1 0 0 0 0 100 0 0 

以下是我在服务器上运行的STATIC html页面的Apache Benchmark输出 –

 Benchmarking www.ask-oracle.com (be patient)...apr_poll: The timeout specified has expired (70007) Total of 20 requests completed 

更新:

服务器configuration:

  • 项目清单
  • Centos 5.6
  • 4核心cpu
  • 4 GB RAM
  • 与APC的LAMP堆栈
  • WordPress的
  • 只有一个网站

现在加载需要几乎两倍的时间,同一个网站在共享主机上的速度非常快。 我知道我需要调整一些设置,但不知道从哪里开始?

我已经试图优化Apache,MySQL等

更新2:

CPU使用率较低,请参阅正常运行输出:

  11:09:02 up 7 days, 21:26, 1 user, load average: 0.09, 0.11, 0.09 

更新3:

当我加载任何网页,浏览器显示“等待”很长一段时间,然后页面加载很快。 所以我怀疑服务器只能接受有限的连接,并在等待状态下保持额外的连接。 如何检查这个?

更新4:以下是执行netperf的输出

 TCP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to localhost.localdomain (127.0.0.1) port 0 AF_INET Recv Send Send Socket Socket Message Elapsed Size Size Size Time Throughput bytes bytes bytes secs. 10^6bits/sec 87380 16384 16384 10.00 9615.40 [root@ip-118-139-177-244 j3ngn5ri6r01t3]# 

这里是httpd.conf的Apache MPM设置,他们看起来好吗?

 <IfModule worker.c> StartServers 5 MaxClients 100 MinSpareThreads 50 MaxSpareThreads 250 ThreadsPerChild 125 MaxRequestsPerChild 10000 ServerLimit 100 </IfModule> 

我的猜测是:你的共享主机不会限制你的CPU,甚至比你现在的VPS还要快。 也可能是很多VPS,这是过度的。 您的VPS托pipe在共享机器上,您可能无法获得所有的CPU周期。 也可能有非常差的I / O或一个缓慢的互联网连接。

你不知道主机上的VPS上面发生了什么,试着找出来:)。

httpd.conf中的apache MPM设置是什么? 我试图连接到你的服务器,甚至需要5-10秒才能发回一个头。

错误的wordpress插件和主题可能会损害性能,但通常他们会在日志文件中喷出错误或搅动mysql / disk访问,这似乎并没有发生在你身上。

更新:你可能会尝试运行prefork而不是worker,尤其是4GB的内存。 WordPress的build议在这里: http : //codex.wordpress.org/High_Traffic_Tips_For_WordPress

运行netstat -anp | grep TIME_WAIT | wc -l

这将返回等待来自apache的响应的请求数量。 如果这个数字非常高,请调整apache设置,以便每秒处理更多的请求,而不会影响服务器的整体性能。

设置Apache的预制MPM设置如下:

 <IfModule prefork.c> StartServers 25 MaxClients 500 MaxRequestsPerChild 10000 ServerLimit 500 </IfModule>