|
发表于 2008-2-4 04:05:26
|
显示全部楼层
一个多月没来坛子转,服务器竟然遭受这样的灾害,真是难以置信!
我试着在网上找找解决问题的办法,希望尽点微薄之力,现在找到了些资料,现提供给K版,试试看有用没有:
这是“在易域网域名论坛”找到的一篇关于解决此类问题的方法,现转帖全文如下(原帖地址:http://www.domain.cn/club/viewthread.php?tid=379750):
“
使用国外虚拟主机过程中关于程序负载的注意事项由于国内环境日益变差,使用美国等国外虚拟主机的站长越来越多.美国的虚拟主机商由于技术上能力都比较强,不像国内的主机商发现占用资源过多的账户能力比较弱,发现成本比较高,造成某些站长可以长时间占用过多的资源而不被发现,所以美国的空间一般资源使用比较公平,同时总体的稳定性也非常强.但是这就造成了一个问题,这种环境造成了国内的一些程序不注意机能的节约使用,在国内运行起来可能很少遇到问题,一旦到了国外的主机上,往往造成因为技能超限,而被关闭账户的情况.这其中有些问题完全是编程思路的问题,只需要更换程序就可以解决,有些是大的思路问题,需要全盘的重新考虑.本文就国内的程序在国外主机上使用中需要注意的一些问题作一些简要的介绍,并就重要的问题提出一些解决的思路.
国外虚拟主机技能限制的一般范围介绍
国外的虚拟主机,价格在5~8美元左右的方案,一般允许cpu长期占用在1%~2%左右,允许突然的,短时间的cpu高占用,但是频率也不能太高.个别主机还对mysql连接数和页面链接数以及内存使用量有限制.普遍来说,windows的主机限制要严格于unix和linux主机.美国主机一般都提供巨大的流量和空间,实际上要真用完这些空间和流量是要有非常苛刻的要求的,不要企图办一个超大的论坛来用尽这些功能.
什么样的网站适合美国空间的主流方案
象上面所说的,美国空间的特点是空间和流量给得很大,但是cpu等机能方面限制得很死,那么什么类型的网站适合使用这类空间呢.经验表明,一般pv在10000左右的静态页面的网站是没问题的,动态方面的网站消耗的机能因为程序的不同有很大的差异,这里用dz论坛来说的,一般15分钟在线达到达到300人左右,如果使用的是dz的默认程序的话,就会有问题了.
所以,适合美国主流虚拟主机方案的类型的网站应该是静态网站,日pv小于10000,dz论坛15分钟小于300在线的会比较安全.
如何使我的网站能够支持更大的访问量
大家的网站一般都是静态和动态混用的,动态方面的程序也是多种多样,如何尽量减小资源的占用,使得网站能够承载更多的访问者,下面我们就这个问题来探讨.
上文讲过了,美国空间cpu限制的比较严,一般情况下很少有因为空间或者流量和连接数用尽而被封的,往往都是cpu或mysql连接数先超了.所以,优化的办法就是尽量的使数据静态化,减少程序内的运算和数据库的连接.
下面就具体问题来进行阐述:
1,尽量选用生成静态页面的系统
例如cms使用dedecms或phpcms可以生成静态文件的文章系统,论坛选用phpwind,因为phpwind可以生成静态的帖子页面,使用Discuz论坛的话可以加装Discuz静态插件来达到和phpwind同样的效果.
2,注意防止搜索引擎的蜘蛛
这里分两种情况讨论
一种是杜绝蜘蛛和迅雷的访问.网站的有些内容,例如你提供下载的压缩包,字体,图片等,因为要持续读取,必然占用大量的连接数,虽然静态链接占用的cpu比较少,但是持续大量占用也是很危险的,尤其是你站长这种文件比较多的时候.如果你提供下载的内容被搜索引擎抓取对你增加流量的意义不大,例如软件下载,软件说明页给搜索引擎就可以了,软件本身是在没必要让他也读去,那么就有必要做些防止蜘蛛的工作了.迅雷这种东西同样不能小视,如果你提供软件或者字体抑或少量的音乐或其他下载,不被迅雷发现的概率为零,往往会在短时间内引来大量的连接,造成空间莫名其妙的被停,所以防治迅雷也是节省节能所十分必要的,同时也可以防止住一般的盗链和采集.一般国外的虚拟主机都支持自定义.htaccess的,具体请参考防盗链设置和屏蔽搜索引擎程序.如果在设置过程中遇到困难,可以到淘机网提问,工友会帮助你解决问题的.
另外一种情况是防止个别的搜索引擎访问.google和百度对增加流量大有益处,是绝对不能禁止的.但是你是否知道,虽然不能带来流量,但是许多不出名的搜索引擎可能占用你的机能和连接数却很有可能达到google和百度的几倍设置几十倍.通过自身经验,我告诉大家这是经常发生的事情.有些非著名的蜘蛛完全可能占用你网站消耗cpu的90%,导致你的空间被关闭.一般国外的搜索引擎都有详细的统计,通过查看统计,一旦发现这种情况,可以使用屏蔽搜索引擎程序来杜绝他们.
3,备份数据库要注意
如果有过在命令行模式下备份或者有top权限的朋友一定会知道,在备份数据库的时候cpu占用会持续达到100%或者比较高的水平.我们一般在备份规模较小的数据库的时候,可以采用命令行或者phpmyadmin备份,但是一旦备份量比较大,备份程序就会长时间把cpu占满,造成空间被封.所以,正确的选择备份程序是非常有必要的,象使用dz的时候尽量使用它的备份工具,如果发现页面停顿时间较长,应该减少一次备份的条数;坚决不要使用命令行被封方式;如果程序本身的备份程序是一次导出模式的,那么应该改动成熟的第三方可分卷备份工具,例如帝国备份王等.我们的目的就是降低每次导出cpu的持续占用率,不要造成长时间的持续cpu高占用,而是把大数据分成一点一点的,多次导出.
4,不要发布重复数据,要重小心蜘蛛
虚拟主机使用中要注意蜘蛛对机能的消耗.并且这种消耗和访问量多少没有任何关系,只和你的数据量有关,以文章来说,文章越多,蜘蛛消耗越大.举个例子,如果你的dz论坛有大量的帖子,那么到了晚上,即使真正的访问者没有多少,你也可能看到成百上千的在线人数,这些就是蜘蛛,他们占用了你网站宝贵的机能,使得你不能支持更多的真实访问者.诚然,你可以从上面的第二点中找到方法屏蔽大量的非主流蜘蛛,但是google和百度的蜘蛛数量仍旧是恐怖的.如果你采集了别人大量的数据,如果太多的话,即使还没有多少真人访问量,仅仅因为蜘蛛,你的网站就很可能被主机商关闭掉.那么象dz论坛那样,如果你同时安装了SupeSite,那么就把ss设置为点击内容直接进入dz的帖子吧,这样就可以凭空减少一半的消耗,而同样的内容,并不会给你打来更多的搜索访问者的.dz的Archiver也是这个道理,如果你已经做了静态化,那么就没必要保留Archiver了,把Archiver目录删除掉吧
5,防止无谓消耗
网站的有些内容往往是建站程序自带的,本身也就是锦上添花的作用,但是这些附带的功能往往可能导致cpu超限,使得空间被关闭.这里还是拿使用最普遍的dz论坛程序为例说明.dz论坛里有个查看所有会员列表的功能,例如http://www.taoji.org/forum/member.php?action=list,不要小看这个功能,一旦你的会员数上万,查看一次很可能会消耗10%的cpu,随着会员数的增加,会持续上升,直到100%,而且这还是使用member表主键列表的情况下,一旦按照用户名或者积分等排序,那么消耗的cpu,懂点数据库知识的朋友都能想象得到吧.而且这些都只是说的一次请求,而搜索引擎往往会顺着分页1,2,3这样不断的读取小去,有些朋友不知道自己的空间为何被封,实际上好好想想吧,自己网站里这些炸弹还有多少.解决的办法也很简单,在member.php程序第一行加个exit吧.普遍使用的程序还有许多这样的炸弹程序,如果你需要解决或者想优化你的程序,可以来淘机网提问,大家共同探讨解决之道.
6,关闭gzip压缩
gzip压缩大家都比较熟悉,就是把页面打成压缩包发送被浏览器,可以大大节省页面打开的速度.但是如果你的网站本身访问量比较大,又是那种页面比较多的网站,那么请注意了.gzip实际上就是压缩文件,平时我们压缩文件的时候都会注意到cpu的消耗会很高的,因为页面很小,这个过程会很快,所以在cpu上反应不大,但是如果你的页面非常多,而搜索引擎常常群起来访,大量的文件压缩就会造成很高的cpu占用负载.所以如果你的网站本身访问量很大,页面又非常多,那么关闭gzip吧,你的网站可以至少能多增加40%的访问量.
工友最新制作的Discuz虚拟主机节能改造版欢迎大家使用
本文就国外虚拟主机使用过程中的负载问题进行了初步的介绍和探讨,希望对大家的使用有所帮助,工友敬上
”
[ 本帖最后由 leastboy 于 2008-2-4 04:06 编辑 ] |
|