首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >网站在VPS上变得更慢,在共享主机上速度更快。怎么了?

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

Server Fault用户
提问于 2012-01-06 17:27:35
回答 3查看 2.3K关注 0票数 0

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

这是vmstat输出-

代码语言:javascript
复制
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
 r  b   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

下面是我在服务器上运行的静态html页面的Apache基准输出-

代码语言:javascript
复制
Benchmarking www.ask-oracle.com (be patient)...apr_poll: The timeout specified has expired (70007)
Total of 20 requests completed

更新:

服务器Config:

  • 列表项目
  • Centos 5.6
  • 4核cpu
  • 4 GB RAM
  • APC灯栈
  • Wordpress
  • 只有一个网站

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

我已经尝试过优化apache、mysql等。

更新2:

CPU使用率很低,请参见正常运行时间输出:

代码语言:javascript
复制
 11:09:02 up 7 days, 21:26,  1 user,  load average: 0.09, 0.11, 0.09

更新3:

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

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

代码语言:javascript
复制
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设置,它们看起来还好吗?

代码语言:javascript
复制
<IfModule worker.c>
StartServers       5
MaxClients        100
MinSpareThreads    50
MaxSpareThreads    250
ThreadsPerChild     125
MaxRequestsPerChild  10000
ServerLimit     100
</IfModule>
EN

回答 3

Server Fault用户

发布于 2012-01-06 18:01:40

我猜:您的共享主机没有限制您的CPU,甚至比您当前的VPS还要快。这也可能是发生了什么与大量的VPS,这是超卖。您的VPS托管在共享机器上,您可能无法获得所有CPU周期。此外,也可能有非常差的I/O或缓慢的互联网连接。

您不知道在主机上VPS上发生了什么,请尝试找到它:)。

票数 3
EN

Server Fault用户

发布于 2012-01-06 18:34:50

您在httpd.conf中的apache设置是什么?我试着连接到您的服务器,甚至需要5-10秒才能发送回头。

写得不好的wordpress插件和主题可能会影响性能,但通常情况下,它们会在日志文件中产生错误或搅动mysql/磁盘访问,而这似乎不会发生在您身上。

更新:您可以尝试运行prefork而不是worker,特别是使用4GB的RAM。Wordpress建议在这里:http://codex.wordpress.org/High_交通_提示_为_WordPress

票数 0
EN

Server Fault用户

发布于 2012-01-07 08:04:15

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

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

设置apache预表MPM设置如下:

代码语言:javascript
复制
<IfModule prefork.c>
StartServers       25
MaxClients        500
MaxRequestsPerChild  10000
ServerLimit     500
</IfModule>
票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/347395

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档