Loading...

如何避免Bluehost的CPU超标

2008-09-27 16:23:50 发表于PHP, 网站技术, 虚拟主机 本文链接: 如何避免Bluehost的CPU超标

曾经一度想放弃bluehost,主要的原因是因为“长城”、越来越差的服务器和响应速度不断变慢的livechat(当然这都是oversell的结果),然而在盛会之后,我发现bluehost的响应速度和SSH的稳定性第一次破天荒的超过了dreamhost,于是又有回归bluehost的想法了。

但是bluehost的CPU超标又严重困扰着我,熟悉storyday的朋友可能都知道,我用的bluehost基本都是几个人分享的,所以CPU超标是难免的。当然CPU的控制对于任何一个虚拟主机商来说都是很有必要的,国外知名的虚拟主机如bluehosthostgatorMT都有严格的CPU限制,这也是虚拟主机能稳定运行的一个保证,如果你是真正的想做一个站点,就用这样的主机,如果是采集站点,还是用其他的主机,如所谓的全能主机吧,否则频繁的CPU超标会让你严重不爽。当然即使是正规的站点,也会出现CPU超标的问题,那么我们就应该考虑优化自己的程序了。

虚拟主机的CPU超标的判断一般都是根据mysql执行时间来计算的,如果一分钟之内,所有的mysql查询执行时间超过了30秒,那么CPU就出现超标,网站将会在接下来的一分钟之内被挂起,所以要解决超标的问题,就应该从Mysql查询开始,下面我从3个方面来谈谈如何优化,仅供大家参考:

  1. 静态化你的站点。这个不用多说,我们都知道,静态化的页面对服务器的影响是最小的(当然我这里说得不是urlrewrite伪静态,发现很多朋友把这种方式也称之为静态,好像有点不妥),如果你使用wordpress,可以使用 cos-html-cache来进行静态化;
  2. 优化MySQL查询。在mysql查询中,尽量使用索引,这样能大大的提高Mysql查询速度。如果数据过多,就算使用limit 100000,10这样的限制查询,即使获取的数据只有10条,执行的时间也会变得很慢,那么这个时候就得考虑查询的精准化了,可以采用其他条件限制mysql遍历整个数据表;
  3. 使用google或者百度的站内搜索。很多web程序,在搜索的时候使用的都是类似” SELECT * FROM table where content like ‘%西洋美女%’;”的SQL语句进行查询的,而这种查询往往是最消耗时间的。SQL会对整个数据表进行遍历,遍历的时候还得要处理content中的字符,它使用的时间一般会是” SELECT * FROM table WHERE 1″ 这样语句的数十倍到上百倍,所以站内搜索,建议采用google等搜索引擎提供的接口,如本站的站内搜索。一方面这样的方式节约了服务器的负载,另外一方面这样的搜索反而更加精准。

优化的方法多种多样,我这里暂时只列举上面3条,其他的欢迎大家补充,不过storyday还是强烈建议你静态化你的网站,如果缓存的命中率比较高的话,静态化带来的只有好处,想好了么,或许你的blog也需要缓存

标签:,
发表于 2008-09-27 16:23:50 目录:PHP, 网站技术, 虚拟主机 [RSS 2.0] 你可以发表评论, 或者从您的网站 trackback
已经有3位大师动手指导 拒绝低俗
  • 1楼 Ben 在2008.09.27 19:34发表评论如下: 回复

    沙发,呵呵,Bluehost除了CPU超标外,现在稳定性差了很多,数据库服务器经常断,不过速度比以前快了很多。

  • 2楼 fengshen 在2008.10.27 22:45发表评论如下: 回复

    我不管用哪里的主机一般都习惯的静态化

    评论分页: 1
    (Required)
    (Required, not published)
    如果留言未显示无需重复留言,我将为你恢复!