飞龙博客

妙法莲华经

如何降低减少网站占用过高cpu资源

feilong.org 修订于2010-01-22 07:45:32

如何减少网站主机的资源占用?飞龙认为这个问题是每个独立博客站长都要关注和学习的。网上搜集资料,飞龙整理这篇日志,修订网址:http://feilong.org/deduce-cpu-resources 飞龙第4次修订于20100122。下面是虚拟主机资源占用过多的一些原因。

一 搜索引擎蜘蛛造成cpu占用过高
如果你的网站是英文站,那么你需要把百度,搜狗等国内蜘蛛屏蔽掉,他们也会爬英文站。如果你的内容多,即使没人访问,你的网站也会被soso蜘蛛、采集爬虫给拖死了。所以经常看主机日志,发现不正常的访问就及时禁止。

二 负载能力差的程序会造成cpu占用过高
虚拟主机不限空间、流量和网站数目,这并不是说你就可以无限制使用主机资源。比如国外主机对cpu占用其实是有限制的。如果你选用的建站程序不好,加上网站流量又大,那么主机cpu资源占用过高是必然的,于是你的网站会被暂停访问。
什么样的网站程序会占用cpu资源多呢?论坛,用户Session处于连接状态,消耗cpu资源比较厉害。所以论坛有必要静态化处理、禁止用户滥发邮件。如果有插件,还要尽量减少插件。还有多用户程序、CGI论坛、聊天室等建站程序很吃cpu资源。
还有很多其它动态程序也比较消耗资源,因此也尽可能生成静态网页。如果做了这几步,主机cpu资源占用还高,那只能换空间了。

三、如果用wordpress,注意一下wordpress本身的一些问题。
除了主机cpu资源占用有限制外,wordpress程序本身也有一些问题,听说wordpress执行效率比较低?因此wordpress博客如果不做优化,网站流量大了的话,cpu资源占用就会超标。比如每天3000ip以上,虚拟主机可能就受不了,网速就慢下来了。
不管wordpress程序本身有没有问题,飞龙建议你,给你的wordpress博客优化下吧!比如使用WP Super Cache插件生成静态文件,这样访客不需要cpu资源去执行php查询,从而降低cpu消耗率。如果你的博客流量大于日300ip,飞龙建议你开启缓存!

四、网站的访问量太大了也是cpu资源占用过高的原因。
网站访问量大了还不高兴么?呵呵是的,因为虚拟主机可能因此就挂了。主机一天能支持多少ip访问量?这个是购买虚拟主机需要了解一下的。有的图片站一天超万ip也没事,有的超过3千ip就承受不了。特别是PV一高,CPU占用就高。
换虚拟主机吧?口袋里银子不够。幸好目前飞龙用的LunarPages主机,支撑IP访问量大,3000IP,8000PV,没问题。

五、主机上建站越多,那么耗费cpu资源也越多,CPU更容易超标。
做站不在多,在于踏踏实实建好一两个站。合租空间的朋友,一旦被发现多建就会被停的。

六、网站下载图片、视频、音频之类文件的时候,也会占很多cpu资源。

七、网站如果没有防盗链,防采集,那么也容易cpu资源占用超载。
据统计网站有将近50%的非浏览器流量,那肯定是被盗链和疯狂采集了。还有离线浏览器也会不断的下载你的网页到本地。为此我们需要做好防范。比如禁止它们的IP、根据agent信息禁止、在robot文件中进行设置。
飞龙提示:如果你有cpanel权限,看看网站日志分析。比如Webalizer、analog、Advanced Web Statistics。SpamAssassin配置默认没有启用,SpamAssassin is currently: Disabled;Spam Box is currently: Disabled,启用它吧!

八、看看主机状态(Server Status)也很重要。Server Load太高会导致网站速度过慢。
Server Load 1.14 (4 cpus)是看主机是不是很忙碌的指标。如果load average/CPU数量<3, 负载正常良好;如果load average/CPU数量>5, 负载很重。

Server Status
cpdavd up
Server Load 1.19 (4 cpus)
Memory Used 17.7 %
Swap Used 0.01 %
Disk /dev/sda6 (/) 25 %
Disk /dev/sda7 (/tmp) 3 %
Disk /dev/sda8 (/home) 81 % 磁盘占用,你自己占用的不要超标就OK,这个是服务器的,他们会处理的
Disk /dev/sda1 (/boot) 13 %
Disk /dev/sda2 (/var) 72 %
Disk /dev/sda3 (/usr) 72 %

九、cPanel的各种服务。其中pop、named、mysql (5.0.51a-community)、httpd (2.2.10 (Unix))为维持网站正常的基本服务。

ftpd:FTP服务
pop:邮件收信服务
imap:邮件imap服务
cpsrvd:cPanel服务
named:DNS服务
mysql (5.0.51a-community):资料库服务
httpd (2.2.10 (Unix)):网页伺服器
Server Load:伺服器整体CPU使用状态,服务器负载
Memory Used:伺服器整体实体记忆体使用状态
Swap Used:伺服器整体虚拟记忆体使用状态
Disk XXX:硬碟使用状态

Disk /dev/sda8 (/home):所有使用者档案空间使用量。

主域:论坛所赠的网域
主目录:你可取存档案的最高范围
磁盘空间使用情况:空间使用量
带宽:该月流量使用量

电子邮件帐户:信箱帐号基本管理
网路邮件:透过网页取存邮件之处

备份、备份向导:备分网页档案、资料库、邮件工具
文件管理器:较新的档案管理工具
FTP帐户:FTP帐号基本管理

日志:网站各种纪录,包含月流量、访客、错误纪录等
安全:建立SSL、防盗连区域的工具
域:绑定域名、增减子域的工具
数据库:资料库管理

十、为什么飞龙要写这篇日志呢?
因为昨天,也就是2009年1月17日晚上大概9点,飞龙正在wordpress博客后台维护网站,突然发现网站Down了!飞龙第一个反应:我的博客放进养鱼池了吗?第二个反应就是,飞龙博客占用lunarpages的cpe资源过多?被lunarpages暂时关掉?通过cmd下的tracert命令,或到http://nc.linkwan.com/gb/broadmeter/tracemap/traceroute.asp 飞龙发现路由到了lunarpages后就没信号了。
正准备到lunarpages提交tickets反馈,飞龙发现原来lunarpages今晚要给我博客所在的主机做技术维修。呵呵虚惊一场啊!这次lunarpages做内部升级优化,原来给客户邮箱里提前打了招呼。到今天中午他们终于修好了。
急忙打开久违了飞龙博客,通过在线网站反应速度测试(http://nc.linkwan.com/gb/broadmeter),发现飞龙博客的打开速度很慢。但是在北京的朋友说飞龙博客打开很快,难道连云港电信局域网有问题?
问下来看这篇日志的朋友,你打开飞龙博客花了大概几秒?

更新网址:http://feilong.org/deduce-cpu-resources
最初发布:20090119 02:14:25 feilong.org 于广州

加入收藏夹,查看更方便。

所在分类: 未分类

飞龙前端QQ群