我已经安装了一个新的VPS托pipe,运行一个Drupal网站,但它非常缓慢。
它是Ubuntu 10,Apache,php5.2
我启用了多处理模块(MPM)模块,并对其进行了如下configuration:
StartServers 4 MinSpareServers 2 MaxSpareServers 10 ServerLimit 20 MaxClients 20 MaxRequestsPerChild 200
但它仍然太慢…这是一个VPS切片:内存256MB带宽150GB
可能是什么原因 ? 谢谢
更新 (交换)
total used free shared buffers cached Mem: 245 220 24 0 1 26 -/+ buffers/cache: 192 52 Swap: 511 110 401
确定你没有经常访问交换空间的任何东西 – 磁盘I / O是一个非常常见的瓶颈,特别是在Xen VPS的RAM分配相对较小(假设你在Slicehost,因为你提到使用“片”) 。
虽然交换空间似乎是一个加号(特别是因为当你试图运行多个内存耗尽的应用程序,如Apache的W /dynamicPHP内容和MySQL时,你的VPS不会被唾弃和死亡),它将很快导致不合格的性能,特别是如果你在一个充满其他人的VPS主机节点上做同样的事情。
编辑:我强烈推荐LowEndBox维基 (LowEndBox专注于虚拟环境的内存分配在你自己的邻居)优化技巧,让Apache和MySQL在虚拟环境中平稳运行。
这几乎不是一个Apacheconfiguration问题,但是您需要对您的应用程序进行configuration,以查明它的时间花在何处,而不是盲目猜测问题是什么。 Xdebug是一个stream行的PHP分析工具,如果MySQL在你的VPS中运行,打开MySQL慢速查询日志可能会有所帮助。
VPS环境的部分问题在于,由于您的虚拟机并不真正了解它在资源方面的优势,因此几乎不可能确定您的服务器硬件是否被大量超额认购。 这使事情更棘手。
首先尝试标准的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你也应该减lessKeepAlive设置。
那么RAM呢? 你确定你有足够的和服务器不交换? (免费-m)
您还应该检查您的数据库,使用Tuning Primer脚本相对容易: http : //www.day32.com/MySQL/
顺便说一句。 在只有256MB RAM的服务器上,我build议你使用Lighttpd或Nginx等其他Web服务器(使用PHP-FPM)。
我想这可能是你的数据库层,这是连接到共享数据库的地方,或者是数据库本地服务器?
确保localhost指的是为外部访问configuration的相同的虚拟主机,并尝试对http:// localhost /中的URL进行一些测量(例如,浏览器通过SSH隧道,在虚拟服务器上运行的浏览器,或只是写一个PHP脚本来抓取一些url)这应该允许您确定是否在您的虚拟服务器之外应用了限制,或者您的服务器是否存在问题。