VPS 托管非常慢。瓶颈是什么?

VPS 托管非常慢。瓶颈是什么?

我已经设置了一个新的 VPS 托管来运行 Drupal 网站,但是它非常慢。

它是 Ubuntu 10、Apache、php5.2

我已启用多处理模块(MPM)并对其进行如下配置:

启动服务器数 4 最小备用服务器数 2 最大备用服务器数 10 服务器限制数 20 最大客户端数 20 每个子节点的最大请求数 200

但是它还是太慢了...它是一个 VPS 切片:RAM 256MB BW 150GB

可能是什么原因?谢谢

更新(掉期)

             total       used       free     shared    buffers     cached
Mem:           245        220         24          0          1         26
-/+ buffers/cache:        192         52
Swap:          511        110        401

答案1

确保你不是定期访问交换空间任何事物- 磁盘 I/O 是一个非常常见的瓶颈,特别是在 RAM 分配相对较小的 Xen VPS 上(假设您在 Slicehost,因为您提到使用“切片”)。

虽然拥有交换空间似乎是一个优点(特别是因为当您尝试运行多个占用大量内存的应用程序(如带有动态 PHP 内容的 Apache 和 MySQL)时,您的 VPS 不会出现故障和死机),但它很快会导致性能下降,特别是当您在一个充满其他做同样事情的 VPS 主机节点上时。

编辑:我强烈推荐低端盒子 维基(LowEndBox 重点关注内存分配与您自己的内存分配在同一个邻域的虚拟环境)以获得优化技巧,使 Apache 和 MySQL 在您的虚拟环境中顺利运行。

答案2

这几乎肯定不是 Apache 配置问题,但您需要分析应用程序以找出其时间花在何处,而不是盲目猜测问题所在。Xdebug 是一种流行的 PHP 分析工具,如果 MySQL 在您的 VPS 中运行,则打开 MySQL 慢查询日志可能会有所帮助。

VPS 环境的问题部分在于,由于您的 VM 并不知道它实际上获得了哪些资源,因此几乎不可能确定您的服务器硬件是否严重超额认购。这让事情变得更加棘手。

答案3

首先尝试标准 mpm 设置:

<IfModule mpm_prefork_module>
    StartServers          5
    MinSpareServers       5
    MaxSpareServers      10
    MaxClients          150
    MaxRequestsPerChild   0
</IfModule>

也许你还应该看看这个:http://articles.slicehost.com/2010/5/20/configuring-the-apache-mpm-on-debian 您还应该减少 KeepAlive 设置。

RAM 怎么样?你确定你有足够的内存,而且服务器没有交换吗?(free -m)

您还应该检查您的数据库,使用 Tuning Primer 脚本相对容易:http://www.day32.com/MySQL/

顺便说一句,在仅有 256MB RAM 的服务器上,我建议您使用其他 Web 服务器,如 Lighttpd 或 Nginx(带有 PHP-FPM)。

答案4

确保 localhost 指的是为外部访问配置的同一个 vhost,并尝试对其中的 URL 进行一些测量http://本地主机/(例如通过 ssh 隧道的浏览器、在虚拟服务器上运行的浏览器,或者仅编写一个 php 脚本来获取一些 url)这应该可以让您识别您的虚拟服务器之外是否应用了限制,或者问题是否出在您的服务器上。

相关内容