我有一个网站(www.americanbankingnews.com),今天有40,000到50,000页的浏览量.它目前位于一个专用的四核Xeon服务器上,内存为8GB。该站点由WordPress和MySQL (位于同一台服务器上)提供动力,我目前正在使用W3全速缓存进行页面和MySQL查询缓存。
不幸的是,这似乎还不够。在高峰流量期间,我的服务器会收到一些HTTP 500错误和页面,而这些错误和页面并没有缓慢地缓存负载。
我目前没有使用Xcache或任何其他PHP缓存/加速工具。
我是否应该采取其他步骤来优化MySQL和PHP性能?或者我应该为另一台服务器买单。具体来说,我会对改进MySQL性能的其他建议感兴趣,以及在这种情况下,像xcache这样的工具是否会有所帮助。
发布于 2011-05-07 23:10:00
在考虑使用机器之前,您是否对WordPress安装的插件、模板等做了彻底的审核?
我在共享主机上有一个30到40k/天的客户端,其中很大一部分站点需要身份验证才能读取(因此我们不能完全使用“静态”SuperCaching),而且他们还没有收到任何显著的性能抱怨。
如果您正在咀嚼一台专用机器,只需再访问10k,那么可能会有更多的情况发生,而不仅仅是一个功率不足的服务器。
发布于 2011-04-07 18:25:14
APC (替代PHP )将有助于节省CPU周期,因为它缓存已经编译的PHP代码。这意味着,在每次加载页面时,您的PHP文件都不会首先编译,然后由虚拟机执行,它们直接进入PHP虚拟机,性能提升非常显著(性能从2倍提高到12倍)。
下一步将是优化MySQL。显而易见的步骤是检查您是否正在使用InnoDB。将InnoDB的buffer_pool_size增加到大约90%的内存将使MySQL存储它直接在RAM中使用的数据集,因此尽可能避免磁盘IO。
然而,理想的做法是缓存您的所有页面(我假设您没有每天发布那么多与内容相关的新内容)。
这可能需要一些工作(或者可能有一个WordPress模式,我不太确定,因为我不是那么喜欢WP和它的插件)。缓存内容将减轻数据库的负载。每天40k - 50k的浏览量意味着高的阅读率,所以你应该优化阅读,而不是写。
另外,您可能会考虑切换到nginx,而不是停留在Apache中使用undefined。这将大大提高你的表现。
没有看到服务器的实际负担(我猜是Apache产生了大量频繁访问MySQL的进程),这是目前唯一能想到的事情。
发布于 2011-08-30 19:06:25
对于一个高流量的站点,您应该调优所有的MySQL缓冲区,以获取现在已经存在的内容。不管WordPress的版本是什么,MySQL层可以计算其配置.。
实际上,如果您有InnoDB数据而没有启用innodb_file_per_table,那么您需要通过将每个表分割成自己的物理表空间来清除InnoDB.。可以进行体面的MySQL调优即使你有有限的硬件。有执行此类InnoDB优化的许多方案。
如果不知道要配置的数据量,则无法为my.cnf规划良好的设置。您必须定期将当前数据集从生产环境加载到暂存环境中,执行优化,并获得要在生产服务器的my.cnf中配置的编号。
https://webmasters.stackexchange.com/questions/11820
复制相似问题