青青子衿, 悠悠我心, 但为君故, 沉吟至今
« 朝鲜核试验Google Earth坐标Z-Blog的RSS优化插件Better Feed »

Z-Blog大访问量异常的解决方法

  Z-Blog是一个很好的单用户Blog系统,我不止一次这么说了,特别是当访问量很大的情况下,Z-Blog的表现也是可圈可点的,唯一的问题可能还是和数据库有关。

  Z-Blog之所以可以应付大访问量的负载,主要是因为其缓存(Cache)技术,在重建页面的时候,将大量数据以缓存文件的方式放在Include目录下,这样对于访客的访问就基本可以不连接数据库,而真正可能出问题的瓶颈,显然就是数据库。

  Z-Blog是基于ASP+ACCESS的,ACCESS数据库存在的问题是非常严重的,当外部连接数增大的时候,ACCESS数据库的处理能力飞快的下降,数百个同时在线连接就可以让ACCESS数据库处于死锁的状态,从而导致网站崩溃。因此,如果你的BLog日访问量有几万IP,那么你使用Z-Blog必须要面对这个数据库性能问题。

  目前Z-Blog 1.5存在的性能问题,就是对于数据库访问的问题(1.6版本已经进行了部分修改)。单个页面中,页面计数器存在对于数据库的直接访问,并且是Update方法的访问,这个访问是会带来麻烦的,由于这个计数器的存在,当在线连接数猛增的时候,Z-Blog的文章页面将出现类似死锁的界面,因为数据库会死掉。同时还会发生的事情是,所有评论留言都会死锁,因为那也是访问数据库。进而所有访问数据库的功能都会死锁。

  当然,这个问题可以使用换SQL Server来解决,不过需要修改Z-Blog的相关代码,而且如果是企业用户,需要购买价格不菲的SQL Server。ACCESS无法解决这个问题,因为其本身有不可调和的内部问题。

  如果不使用换数据库的方法,就只有在代码上下功夫了。根据我的观察,对于数据库的直接访问应该就只有计数器这个部分,我目前想到一个思路,就是将计数器的内容也当作文件写入Cache,系统读计数器,全部从Cache中读取,当进行索引重建的时候,再将Cache中的数据写入ACCESS数据库中,这样就可以做到大部分访问都脱离数据库,当在线连接数很大的时候,性能问题也有可能得到一定的解决。

  当然,这样的功能需要写不少程序代码,如果不想写代码,而又遇到异常的大访问量,那么修改Z-Blog模板删除页面计数器功能,也可以临时解决一些问题,代价是文章无法统计点击数了。



  除非注明,月光博客文章均为原创,转载请以链接形式标明本文地址

  本文地址:http://www.williamlong.info/archives/657.html
  • 文章排行:
  • 1.rainbowsoft
  • 服务器重启时CACHE会掉的
    除非写成全局事件,在重启前全部写回DB里去
  • 2006/10/13 21:27:00   支持(18)反对(11) 回复
  • 2.rainbowsoft
  • 引自 williamlong
    不会吧,你那个cache下的文件会自动删除吗?如果将计数器文件建立在Include下应该不会删除了吧。

    我的意思是你把计数的array写进内存的cache时就会面临意外关机或是重启时清零的问题.
    应该是间隔一定时间保存到文件的cache中去.
  • 2006/10/19 6:44:52   支持(19)反对(12) 回复
  • 3.ParK
  • 呵呵,暫時沒有這麼高的訪問量
  • 2011/2/8 16:36:18   支持(21)反对(14) 回复
  • 4.学习方法
  • 请问:站点统计信息不能自动更新是怎么问题?每次要发表新文章或重建才能更新。
  • 2011/6/16 12:21:32   支持(13)反对(11) 回复
  • 5.Aether
  • 其实点击数关掉也罢,有Google计数分析就够了,分析和报表才是重点。
  • 2006/10/12 1:19:26   支持(15)反对(14) 回复
  • 6.linker
  • zblog确实非常优秀!
    其实,确实非常希望能够有修改为sql server的说明。空间提供商已经给我警告了三次了。并且在这里,我才知道空间商警告我的原因。
    williamlong兄,是否有意为之一下?
  • 2006/10/14 23:36:46   支持(16)反对(15) 回复
  • 7.williamlong
  • SQL SERVER和ACCESS的不同就是和时间上处理有一些不同,大部分功能都可以不修改代码即可移植,你直接将ACCESS中的文件转换到SQL Server看看如何。
  • 2006/10/15 0:36:55   支持(18)反对(17) 回复
  • 8.菠萝莉
  • 先涨涨见识,流量还没有呢。呵呵
  • 2007/7/27 16:21:36   支持(11)反对(10) 回复
  • 9.afan
  • williamlong兄,我不小心把Cache里的文件都给删了,导致博客不能显示文章。怎么办,我没备份啊,还有后台登陆不上去,总是提示失败。
    http://www.faninf.cn/blog
  • 2008/1/24 22:35:07   支持(13)反对(12) 回复
  • 10.williamlong
  • 不明白你说的是什么意思。
  • 2006/10/14 11:36:58   支持(15)反对(15) 回复
  • 13.策战天下
  • 最近想做个新的博客。。。。特地 过来看看教程。。。希望对我有用
  • 2009/9/1 22:31:00   支持(12)反对(13) 回复
  • 14.Aether
  • 另外,页面上众多的相关链接虽然增大了流动的可能性,但是也增加了用户对选择的难度,选择太多,就等于没有选择,所以相关性的东西也不是越多越好吧。
  • 2006/10/12 1:23:18   支持(15)反对(17) 回复
  • 15.even
  • 点击数其实不是大问题,很多问题都牵涉到数据库,我想知道如何通过修改Z-Blog的相关代码换成SQL Server。

    月光能写个教程么?
  • 2006/10/12 16:17:32   支持(12)反对(14) 回复
  • 16.ted
  • 我遇到一个问题就是由于我得空间搬迁我就把文件全部down下来
    然后再上传上去,发现不能管理登陆了!
    这是为什么?
    http://www.googleg.cn/blog2/
    QQ:32318756
  • 2007/3/22 22:57:54   支持(10)反对(12) 回复
  • 17.williamlong
  • 不会吧,你那个cache下的文件会自动删除吗?如果将计数器文件建立在Include下应该不会删除了吧。
  • 2006/10/14 0:46:25   支持(15)反对(18) 回复
  • 18.man
  • 请问月光,zblog的分类文章怎么调用的囝??
    想在另一个网站调用原先的那个zblog的分类文章?
  • 2006/10/14 10:26:01   支持(14)反对(18) 回复
  • 19.零钱博客
  • 我还在犹豫用WP 还是Zblog
  • 2010/12/2 18:55:37   支持(8)反对(13) 回复
  • 20.迷你之家
  • 我还以为这文件夹多余想删掉呢!zblog不是可以生成静态html页面吗,不过很占用空间...
  • 2011/8/25 19:05:06   支持(13)反对(20) 回复

发表评论:

 请勿发送垃圾信息、广告、推广信息或链接,这样的信息将会被直接删除。

订阅博客

  • 订阅我的博客:订阅我的博客
  • 关注新浪微博:关注新浪微博
  • 关注腾讯微博:关注腾讯微博
  • 关注认证空间:关注QQ空间
  • 通过电子邮件订阅
  • 通过QQ邮件订阅

站内搜索

热文排行


月度排行

本站采用创作共用版权协议, 要求署名、非商业用途和相同方式共享. 转载本站内容必须也遵循“署名-非商业用途-相同方式共享”的创作共用协议.
This site is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License.