visor's profile寒江雪PhotosBlogLists Tools Help

Blog


    October 29

    SQUID的问题

    当年俺在SOHU负责社区开发的时候,曾经用到SQUID, 当年天真的认为SQUID就是上帝,架了以后,就能帮俺解决问题,在俺虔诚的祈祷后,上了2台SQUID, 俺ft,当1个小时后,俺的那些主编大人就满脸怒色的冲来要掐死俺,要不是俺的同事死死拦住了他们,俺估计现在已经彻底解脱了,系统慢的一踏糊度,然后俺去找系统组的老大,周老大惊奇的看着俺,说,你的社区就上两台SQUID?俺郁闷的确认,周老大很认真的和俺分析SQUID的问题,首先,SQUID的目的是为了系统水平扩张容易,其次他是为了减少动态的服务器压力,最后他的请求数一般每秒不能超过600次,像俺这样,高峰每秒2000次以上,数据量超过10亿的请求,需要特殊的设计和构架,不是说架一个什么东西就能解决的,然后,在被人称为水木上帝的教导下,俺虚心的听取了周老大的一些建议。
      最后当周老大听说,这个squid的是俺自己装的,当时就快晕了过去,然后连连摇头,说,这个软件不是你想的那么简单,需要很复杂的配置,然后开始帮助俺恢复了社区的和平与稳定,只是这次的squid,让俺认识很多东西当别人用的很好的时候,不是那么简单,所以再上的,俺先去拜见的周老大,周老大摇摇头,告诉俺,他没时间帮助俺,唉,上帝也有照顾不到的时候,只是他老人家给俺派了一个叫wintear的同学,他来协助俺装squid。
       wintear同学一边帮俺装squid,一边给俺扫盲,俺才知道,首先linux 上面的squid不是装了就能用,需要打无数的补丁,他作为反向代理的时候有多bug,其次关于squid的设定有很多的细节,是否使用硬盘缓冲,内存的使用设置,都是需要调整,并且由于很多程序员对于HTTP1.1,RFC2312协议不是太熟悉,在头文件控制中,expires time,Last modify time , 几个控制缓冲的参数并没有设置,很多动态产品由于纯动态的缘故,很多干脆就禁止缓冲,从而保证他的产品功能严谨性,俺查了一下俺的程序,惭愧,果然没有,如果没有几个时间函数设置,这个反向代理就一点用都没有,squid就像一个通道而已,这些访问会全部打到real server上去,而由于这种通道,又不是像那种纯粹的端口映射,他自己还有逻辑,需要进行域名查询什么的,如果设置不好,DNS的相应时间会很长,这样就更得不偿失了,并且就这样装了以后,也不是就万事大吉了,还需要装监控软件,监控的他命中率,如果命中率低于40%,这个就需要调整你缓冲的策略,也就是你怎么分布的squid机器,一个squid最大就能控制2G内存,设计的时候,就是给穷人用的,不像咱们这样,一台4G的机器,有点地主老财的意思了,那么最好的办法,就是这个机器上面绑定两个IP,然后装两个squid,这样就能物尽其用了,至于cpu,wintear有点可惜,说,这双cpu可惜了,SQUID对cpu基本要求极低,极力劝说俺卸下一个来。俺的两台机器就相当于四台机器了,上了线后,装了监控软件,给俺开了帐号,俺监控了三天,发现这个命中率在50%左右,wintear看了看,给俺建议,不要太多版面了,少一点,就像道路一样,车太多,大家都走不了,俺撤了一些版面,有台机器命中率基本就到了80%,然后整个社区的速度提高了很多。俺在这里开始理解武汉的单双号限行了,没钱买服务器,只能限制使用。
       俺觉得这个首先是对于很多别人用的很好的东西,最好是找到会用的再用,否则问题之大,可能出乎意料。
    October 23

    stay hungry stay foolish

       我觉得这个是老大很喜欢的一句话,否则也不会挂成自己MSN名,俺看见很多人也喜欢念叨这句话,不知道是不是由于乔布斯喜欢的缘故,前者hungry很好解释,只是后者我觉得不是foolish那么简单
       我还记得高中学背单词,老师告诉我们形容人的愚蠢,有: Foolish,Stupid,Idiot,其中Idiot是最高级,翻译过来,应该是弱智,就是蠢的不能再蠢的意思,我自己理解就是如果你骂人的话,这三个词分别对应是:鼻青脸肿,受伤和致残的区别,对于产品的运营来说,犯错是不可避免的,那么最好的方式就是范那种鼻青脸肿的错比较好。可见乔布斯不光对于产品有着很好的见识,告诫自己的同仁的时候,也知道怎么遣词造句。
       但我觉得对于互联网的产品,不是一个说你范错就能成功的东西,更多会落实在界面,流程,语言上,这些细节很多时候,能要你的命,所以如果调整这些细节,无数人为之郁闷,所以有了专门的学科叫人机界面,据说,老外们为了自己的产品好用,经常能花好几个亿的美元来进行调查,虽然很多东西,我们看起来并不起眼,但不得不承认,确实比较好用,当然也有播龙钟收跳蚤这种事情,但毕竟少。国内没有那么多的钱,就是有了那么的钱,我想也不会投入这种让我们觉得无聊的举动中。
       也就是说,一个互联网的产品成功,很多时候,在于初始人员对于这个产品的认识,毕竟一个人长什么样,生下来基本就定了,产品也是,那么如何调整这个流程就是很多人为之头疼的问题。这个时候,Foolish我想就是乔布斯同学给的建议了,毕竟作为产品的设计者如果没有老外那么多的钱,砸出一个让人为之惊叹的界面,只能自己一点点,按照自己的理解来设计那些流程,而在设计的时候,由于自己设计的东西,很多概念和数据流,还有专业名词,都是自己非常了解的,从而造成在思考的时候,会忽略到这些专业的东西,理所当然的认为别人也能理解和使用,所以才有当时我们的工程师在使用的时候,放一个框让客服写sql出统计结果搞笑事情
       这些使用产品时所必要掌握的技能和概念就成了这个产品的门槛,如果是做学问就好了,当年爱因斯坦同学出一个相对论,全世界就3个人懂,所以他牛比轰轰,可你如果做一个产品就三个人会使,就等着老板拿着菜刀满街追杀吧,这个时候门槛越低这个产品使用的人就越多,所以只要点一下的SINA新闻会有那么多的用户,而降低门槛,就是放弃自己很多的专业素质,忘掉自己的SQL吧,忘掉那些专业名词吧,忘掉自己英语吧,等你忘了,再回头看看你的产品,再来使用,再来设计,我想这个产品的成功才有起码的保证,这个时候,我想就是所谓的Foolish状态,一个什么专业素质都没有的人,叫Foolish,我想一点都不过分,这个我想就是乔同学要给我们传达意思。这你看后来成功的几个网站阿里巴巴, 拼音,淘宝,拼音,打败了易趣,each,足够低的心态才能成功。
      只是你在做的时候,又要回到这种内行的状态,所以我觉得一个产品的成功,就是一个人的成功,以一个高手的素质,却能按照一个普通人的眼光来设计并且开发产品。所谓难得糊度我想也是我们老祖宗想告诫我们的东西。