我们经常会发现,当网站的访问量不断的上升的时候,是一件高兴的事情,但是我也发现,访问量的上升也带来了服务器的负担加重,特别是对于虚拟主机的用户,现在网络上的虚拟主机提供商主要采用的cpu上限控制,当服务器程序(网页程序)的cpu占用超过了一个限制以后,后边再来的访问者就会被拒绝访问,这对于一个蓬勃发展的网站确实是一个不小的打击,有什么办法提高整体性能呢?
首先我应该检查一下,我们的什么服务器程序导致了cpu资源的严重浪费,我们发现,浪费一般发生在对文件或者是数据库的操作上一般的小网站使用的都是asp + mdb(access),access的缺点是当打开的连接一多,性能就会下降,如果同时的数据库访问达到了30以上性能就会明显的下降,这个时候也会带来严重的cpu资源损耗
我们建议:
如果你的网站的实时更新要求不是特别高的话,建议你将所有的访问数据库的页面改写成为静态的页面,--方法就是使用fso进行写文件
如果你的更新的数据不是很多,可以考虑使用,application,比如说商品总量,当前在线人数,这样避免了频繁的数据库访问,
如果你有大量的数据要求更新数据库,可以考虑自己建造缓冲区,具体的操作是,建立,application,先将你的更新数据放在数组中,然后将数组放置在application之中,当达到一个取数据的条件,可以使用计数器(超过多少数据就更新)或者时间(每过一段时间取数据)实现,就将数据读取出来更新数据库
由于application的操作是在内存中的操作,所以对cpu的损耗时间非常少,只是占用了部分的内存空间(到目前为止,我没有听过哪个服务商对内存使用有限制,哈哈,有机可乘~~)
但是也要注意,使用application 的时候也有不足,当读取或者修改application时(将数据放入数组)并操作数据库,会产生误差,因为application可以锁定的是修改不能锁定读取,不过这个误差基本上很小,要知道,cpu的功能还是很强的;第二就是使用缓冲只能对一些不重要的数据,重要的数据应当直接操作数据库,因为当服务器重起后,application就没有了,有的服务商为了提高服务器性能,在一天之内会重起IIS很多次,这样的话,只有自己防备了,或者在application_END 的时候处理一下(这个主义不错)