学习中.........

 

总结dudu目前优化cnblogs的方法和一些建议

       首先谢谢dudu,今天访问速度和稳定性提高很明显,不用对着sorry页发呆了@_@
       免费的安家在cnblogs上,很是感谢。最近看dudu为访问速度辛苦,想帮点忙,可是一直很懒人又苯,只好事后总结一下了。

       个人猜测总结的dudu目前提高性能的办法:
       1.阻止恶意robot
       2.Rss的优化缓存
       3.页面的缓存和静态化
       4.数据库的优化和查询缓存
       5.DotNet和IIS 6的配置优化
       6.DotText代码的重构
       7.Web页面的Html重构和布局优化      
       8.没想到,请dudu补充??

       个人分析和建议:
        1.目前看来,最大的速度问题是来自搜索的robot的疯狂爬行(cnblogs里的好东西太多了?),造成类似破坏的未来还可能来有恶意攻击或是病毒。dudu目前的办法是Asp.net程序里拒绝访问,或是高峰时段拒绝访问,但是涉及了一个检索的问题,所以建议返回一个错误让robot自己处理,比如:
                  • 500.12 - 应用程序正忙于在 Web 服务器上重新启动。 
                  • 500.13 - Web 服务器太忙。 
                  • 403.9 - 用户数过多。与该服务器连接的用户数量超过了您设置的连接限制。
         对于攻击类,就不行了。所以建议dudu最好在防火墙上做限制,禁止同一ip的最大连接数,或是几小时内禁止访问。或是把目前的处理robot应用的代码单独出来,C#重写用配置文件管理,不要经过IIS处理。
 
        2.缓存和静态化。页面缓存和静态化是dudu下了大工夫的地方了。建议多注意Rss,个人管理里看来聚合的访问比Web页面的大多了。建议仅仅聚合摘要,也倡议大家都写摘要,方便阅读,也可以减轻一点服务器负担。不知道cnblogs什么时候有自己的缓存服务器,呵呵。

        3.数据库的问题,最大化利用Sql Server的本身特性就好。建议注意管理并发锁定,使用行间锁定,可提高效率。重视查询缓存的策略,提高命中。

        4.代码和页面的重构。这就要辛苦dudu了,也没太多说的。想说的是除html+css外,还要注意页面上的布局显示,比如首页该显示的内容,目前显示的排名人数是不是太多?一些个人的页面上的图片,flash,第3方计数器等会不会影响最终用户页面打开速度,造成打开慢的印象。

         5.Win2003和IIS6 本身,这个还是让大家来建议吧。

         写了这么些,希望能为cnblogs出点力,不对就多包涵了。倡议大家都贡献点自己的力量,让cnblogs更好。 希望能有好的提议,所以暂时发首页。
   

posted on 2005-10-28 00:14 开卷有益 阅读(1195) 评论(11)  编辑 收藏 所属分类: Thinking

评论

#1楼  2005-10-28 08:39 徐灿钊Asp.net专栏      

真的比以前快了很多,真是好,dudu的工作是辛苦的,也是非常值得的,
对了,我怎么在随笔里面写摘要?   回复  引用  查看    

#2楼  2005-10-28 09:02 zhumk      

第四点,不是很同意,原文“一些个人的页面上的图片,flash,第3方计数器等会不会影响打开速度”。
一般来说,图片,flash,第三方计数器,都是其他网站上的,可能页面打开会慢一些,但是他们不会占用cnblogs的任何带宽。   回复  引用  查看    

#3楼 [楼主] 2005-10-28 09:38 WWW_1      

@徐灿钊Asp.net专栏
下边有一条高级,打开后有摘要.
@zhumk
我的意思就是"可能页面打开会慢一些".
对访问cnblogs站点的人来说,同样认为是cnblogs的访问速度慢啊.要在用户的角度考虑.可能我没说明白,修改一下。   回复  引用  查看    

#4楼  2005-10-28 09:42 ly4cn      

补充,
RSS和首页摘要需要处理一下:
如果有摘要,显示摘要,没有摘要,限制长度显示。目前已经有限制长度显示,但个人感觉,长度太大,可以严重缩小。
比如,没有摘要的文章,仅以纯文本方式显示前400-600个字符。   回复  引用  查看    

#5楼  2005-10-28 10:03 dudu      

非常感谢你的总结与建议。
1、目前在访问高峰进行拒绝时, 返回304代码(自上次访问后,内容没有被修改)。对于“禁止同一ip的最大连接数,或是几小时内禁止访问”, 如果这样做, 会禁止通过代理服务器上网的用户的访问, 比如我们这里的网通用户都是同一个IP地址。
2、目前只在首页、RSS、各网站分类、个人Blog首页采用了静态页面进行缓存, 如果全部采用静态页面, 非常占用硬盘空间, 而且如果没有好的更新策略, 硬盘读写很频繁, 对性能也会带来影响。RSS的访问量的确很大, 所以已经对RSS进行了重点优化, 对长文章进行了处理, 会显示“内容篇幅较长,请点击这里阅读全文”。
当非常需要缓存服务器的时候, 博客园会增加的。
3、这次优化中, 数据库基本上没做什么优化。你所说的“管理并发锁定”“重视查询缓存的策略”, 希望能具体一点。
4、这次优化的主要工作就是代码的重构。排名人数只增加一点首页的大小, 对性能没什么影响。“页面上的图片, flash,第3方计数器”影响页面打开速度,是链接的源网站的问题。建议大家将图片上传到博客园, 不使用影响页面打开速度的计数器、flash。
5、对于Win2003和IIS6 本身的设置, 我觉得对性能的影响不大。
  回复  引用  查看    

#6楼  2005-10-28 10:07 wssmax      

左右应该平衡比较好。同意减小rss里面内容的长度。   回复  引用  查看    

#7楼  2005-10-28 10:36 lovecherry      

快多了!!!   回复  引用  查看    

#8楼  2005-10-28 11:00 g555 [未注册用户]

快了不少。看了找到了源头。   回复  引用    

#9楼  2005-10-29 00:14 Sumtec      

有两个小建议不知道可不可行:
1、无论登不登陆,都要求先种cookie,内附随机数,如果能够种cookie,则相同随机数的指定时间内限定访问次数。如果不允许种cookie,则相同IP限定访问次数。
2、所有外部资源(或者可能包含有外部资源的部分),用Iframe。这样可能可以提高页面打开速度。   回复  引用  查看    

#10楼  2005-10-29 12:25 dudu      

@Sumtec
谢谢你的建议!
1、不错的方法!我先试验试验。
2、很多外部资源都是文章内容或公告中包含的, 还不知如何在提交时自动转换成以IFrame方式呈现。   回复  引用  查看    

#11楼 [楼主] 2005-10-29 13:45 WWW_1      

谢谢大家的建议!

@dudu

数据库的问题我也不是专家,简单说说:
sql server一般是自己控制事务和锁的粒度。如果某个库/表读写并发频繁时候,可以在事务处理中指定行级锁定,避免表级的大面积锁定,影响更多用户。
缓存的策略,也是一个粒度大小的算法问题。比如1级缓存和2级缓存的安排,更新的时间等,根据实际需要来。
一篇文章可以参考:http://forum.javaeye.com/viewtopic.php?t=9706
cnblogs目前速度还可以,这个问题可以未雨绸缪。

不好意思这2天有点事,现在匆匆写了一点,要走了。
  回复  引用  查看    


标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2005-10-28 18:44 编辑过


相关链接:
 





导航

统计

公告

平常心
平常事
平常人

与我联系

搜索

 

常用链接

留言簿(5)

随笔分类(28)

随笔档案(28)

文章分类(1)

文章档案(1)

积分与排名

最新评论

阅读排行榜

评论排行榜