高流量WordPress网站小提示

5条评论

高流量WordPress网站小提示

你觉得WordPress能承受高流量吗?有没有想过要创建一个具有高访问量的网站,或者撰写大量的文章?想象一下你的文章被刊登到Slashdot、Digg或者其他能带来很多访问量的网站时会是什么情况。大家都对WordPress是否能承受高流量感到好奇,那么WordPress究竟能不能支持流量很高的网站呢?

答案是肯定的,但也是有条件的。如果你决定以WordPress作为自己的信息发布平台并且希望吸引很高的访问量,你需要考虑并理解很多问题。对高访问量的网站来说,在共享主机上运行WordPress网站似乎不太现实。

选择WordPress作为你的高流量网站平台时,需要先检查下面一些配置以确保网站能带来预期中的访问量:网站服务器和软件,WordPress将要靠它们运行,所以它们需要有足够的能力来支持访问量。

硬件限制

“WordPress能承受博客的高流量吗?”这其实是个错误的问题。实际上,所有的博客平台——或者说所有的web程序——所能支持的流量都取决于运行平台的硬件。

阻碍你的网站支持高流量的两个客观原因是:

  • 处理器限制
  • 网络限制

处理器限制

要能够让网站支持高流量,就不能让流量仅仅集中在服务器内部资源上。处理器要具备强大的性能和充足的存储空间,这是基本要求。

使用WordPress时可能有其他更重要的要求,但处理器是WordPress的默认要求。

MySQL

和大多数博客以及web应用程序一样,WordPress也使用MySQL来存储数据以输出信息。WordPress为读取或写入数据对MySQL所做的每次查询都增加了服务器的负担。

WordPress一直在优化以减少不必要的功能执行;但在流量较高的情况下,大量的数据库同步连接会导致服务器过载。这样的话,服务器连接的不完整性会导致访问者浏览器反应为典型的“连接超时”。

大多数情况下,通过调整MySQL的设置或为负担过重的服务器提供更多内存以及处理器能量,我们可以提高MySQL的连接率。

网络服务

WordPress可以在多种不同的web服务器平台上运行。 Apache和 Linux是运行WordPress的最佳选择,不过只要是支持PHP和 MySQL 的服务器都可以运行WordPress。

为了为WordPress创建一个坚固的运行环境,请将你的主机功能升级到最新最稳定的版本。

PHP运行方式和翻译WordPress代码的语言的选择也会影响到服务器的性能。在CGI模式下,服务器会为访问者所请求的每个PHP文件创建一个PHP程序的新实例。在共享模块或ISAPI(互联网服务应用程序接口)模式下,每个PHP都使用单独的库实例。这两种方式都各有优劣——在作选择时,请记住流量对服务器的要求。

连网限制

收到服务器的互联网连接速度影响,服务器未必能以你预期的速度加载页面。

服务器的网络提供商(虚拟主机服务商互联网服务提供商)通过以太网适配器将用户的服务器连接到自己的内部网络。适配器能够提供各种标准的最大网络连接速度,包括10Mb/s, 100Mb/s, 以及1Gb/s。用户的服务器的传输文件速度不能超过适配器所提供的网络连接速度。此外,一些其他因素也能够影响文件的传输速度,从而影响到服务器的连网速度。

首先要注意,这些数字(尤其是服务器的网络适配器速度)大多是理论性的。从实际而言,服务器传输文件时不可能完全利用到适配器所提供的速率,这是因为服务器不仅要传输实际文件,同时还要发送并接收互联网用以获取用户网站访问者数据的路径信息。由于这种“网络消耗”,实际传输文件只能占用小部分带宽。

其次,用户服务器有可能连接到网络服务商的不同设备中,相较于对服务器网络适配器的限制,这样更加限制了传输速度。这是因为,网络服务商要将原本就有限的带宽从本地分散给众多的服务器,所有的带宽都被共享了,传输速度自然就减慢了。

某些网络服务商允许用户进行信息“爆炸”——暂时超出预设的传输速度限制——但仅限于网站内容被获取次数过多时。网络提供商的硬件经过特别设计,可以判断网站是否有这种需要。有些网络服务商会为这项服务收取额外费用,有些服务商甚至不提供这种服务。

在使用中的网络传输速度

通过下面的计算题,我们可以了解到连接带宽对高流量网站的重要性。

首先假定你的网站一天有10万次点击量。为方便计算,我们假设单独的一次数据传输(无论是单个文件或是整个页面或是页面的支持文件)就是一次点击。平均计算下来,一天10万次的点击率,也就是每秒1.16次点击率。

然后假设平均每次点击生成的HTML、CSS、下载文件等数据传输量为160KB。那么网站每秒钟需要传输数据190KB(每次点击生成160KB传输量*每秒1.16次点击)。190KB每秒的传输量相当于1.5Mb的持续传输量。(注意:KB表示千字节,MB表示兆比特,大多数网络速度都以每秒兆比特来计算,而文件的大小则以千字节来计算。)很多网络服务商提供的传输速率都接近于这个数字,有的略高,有的略低。但只有每个用户都能正常访问时,才能保持住这样的传输速度。

大多数情况下会有不同访问者在同一时间段内访问你的网站,也有可能在某一时段内没有任何人来访。假设某一时刻10个人同时点击一个网站,并且这样的点击率长期持续下去——对高流量网站来说这并不少见——那么网站必需要具备15Mb/s的网络连接速度才能保持并发连接。

如果网络适配器的最大理论速度仅有10Mb/s,那么这时网站对流量的要求超过了适配器具备的连接速度,WordPress不会有任何反应。

即使每天点击率不足10万次也会产生类似问题。这样的连接速度在一小时内只能承受3.6万次点击。如果访问者集中在一天中的某一个时间段内访问网站(或者自动垃圾评论脚本在网站上发布垃圾评论时,试图多次同时访问网站系统),就会造成很多人无法访问。

100Mb/s的连网速度至多可以处理70个并发连接,但网络服务商不会在你没有付费的情况下提供这样的带宽。况且目前的共享主机也不可能达到这种速度。

数据传输过量

托管视频、播客或者照片集等大容量文件,很容易造成数据传输过量。托管服务通常只提供服务范围内的固定数量传输量。用户需要为超出固定数量的数据传输支付一定费用。根据主机商的规定,费用一般高达一美元每兆比特(MB)。

根据这个收费标准,如果你达到规定传输量后要下载一个20MB的文件,你需要在托管费用外再支付20美元!

通常情况下,固定传输量越高,托管服务的收费就越高。一些托管服务也提供没有传输量限制的服务套餐供用户选择,费用虽然很高,但对高流量网站来说,这比超过传输量之后需要支付的费用略为划算。

基准特别要求

 

本部分用以显示高压加载环境下典型服务器设置的容量。将某个特定托管服务的配置与其相关基准进行比较,这样或许能让你对服务器容量有更好的了解。

 

注意:你所选择的服务器的基准少不应该是下面这样的:

仍然没有基准

 

 

高流量解决方案

WordPress只在适当的环境中才能保持最佳性能。如果发现自己的WordPress网站由于流量过高而影响运行,可以试试下面几种解决方法。

WP-Cache

WP-Cache是一款WordPress插件,它通过对没有发生变化的页面输出进行缓存,减少了对数据库的调用请求。访问者请求WordPress网站上的某个页面时,WP-Cache以所要求页面的静态存储版本形式展示在访问者面前。如果所请求的页面不存在,该请求会被存储在缓存中。如果由于编辑以及发表评论等原因导致页面发生变化,页面的缓存会被破坏。

WP-Cache不能减少对非WordPress生成的页面的加载。同样,如果希望缓存页面中的某些内容仍然保持动态,那么你需要在页面上进行一些改动以激活页面内容。

wp-super-cache

wp-super-cache是一款新的WordPress静态缓存插件。WP Super Cache可以生成HTML文件并直接用于Apache,无需处理相对繁多的PHP脚本。这款插件可以显著加快WordPress博客的加载速度。

WP Super Cache是WP-Cache 2(由Ricrdo Galli Granada开发)的分支。WP-Cache 2缓存了WordPress博客中的页面并能在不访问数据库的情况下发送页面。但这样就意味着需要加载PHP来处理缓存文件。

WP Super Cache解决了这个问题。即使不调用任何PHP也可以调用安装WP Super Cache时所生成的html文件。这样网站就几乎可以用处理缓存文件的速度来处理图形文件了。如果你的网站在争取较高的访问量,或者网站出现在Digg、Slashdot或其他热门网站上,WP Super Cache会是你的不二选择。

关闭/限制WordPress插件及图像

WordPress博客访问量增加后,博客的代码和设计元素也会增加。

例如,假设博客首页需要调用八个图形来显示其“外观”。此外还要调用不同的WordPress模板文件,至少页眉、侧边栏、页脚以及日志内容区域这四个调用也是必须的。那么,每有一百位访问者,这12个“调用”就需要被加载1200次,而有1000位访问者,加载次数就是12000次。这不仅增加了你的带宽也加重了服务器的负担。

WordPress插件也是WordPress主题需要“调用”的文件。这些插件会查询数据以生成相关信息。插件越多,对数据库的查询次数就越多。

随着访问者的增加,需要调用的文件和数据库查询也会越来越多,对网站流量的要求就升高了。

暂时关闭一些WordPress插件可以帮助减少需要调用的文件数和数据库查询次数。

检查一下你的WordPress插件列表,关闭那些可以暂时不用的插件。

尽可能减少需要调用的文件数和数据库查询次数。网站流量稍有下降时再重新激活这些插件。

虚拟主机服务

虽然这个问题的确令人头疼,但你可能需要考虑换一个更强大的服务器了。

以下是针对你所遇到的问题而设计的高流量网站简单升级步骤:

  • 共享主机可以升级为专用虚拟主机
  • 专用虚拟主机升级为专用主机
  • 专用主机升级为高效专用主机
  • 如果高效专用主机也遇到问题,你就该考虑向主机服务商申请负多负载均衡服务器了

无论怎样,服务器的表现都是与其网络服务提供商挂钩的。如果服务商提供的带宽不能满足你的需要,你可以与服务商商量增加带宽,或者寻找能够满足你的带宽要求的服务商。

#1
如果有条件的话用Lighttpd + FastCGI 吧,动态处理和静态文件都得到了最优化处理
#2
问题是大部分国内虚拟主机都是apache的,甚至还有iis的。
#3
說了等於沒說
#4
这个。。
#5
确实和没说差不多。。。