中文站技术故障总结----21条建议_第1页
中文站技术故障总结----21条建议_第2页
中文站技术故障总结----21条建议_第3页
中文站技术故障总结----21条建议_第4页
中文站技术故障总结----21条建议_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、阿里巴巴版权所有 1999-2008中文站技术故障总结中文站技术故障总结-2121条建议条建议 杨争2008-6-19内容内容 建议、案例、原因。 编码、设计、cache、SQL、应用脚本、日志。 总结。阿里巴巴版权所有 1999-2008编码编码 建议建议1 1 建议建议1:代码:代码ci之前通过之前通过svn diff确认修改的确认修改的内容,以避免把不应该修改的代码给内容,以避免把不应该修改的代码给ci了。了。 案例:这种情况发生已经不止一两次了,有的是为了本次测试的方便,临时把cache去掉了,但ci了时候没有改回来;有的是修改了临时配置文件,结果也ci上去。 原因:忘 !阿里巴巴版权

2、所有 1999-2008编码编码 建议建议2 2 建议建议2:调用对象的方法,一定要明确该对调用对象的方法,一定要明确该对象是否会空,不能确定时要判断象是否会空,不能确定时要判断。 案例:由于NullPointException造成应用bug的情况也是屡见不鲜。比如:商铺升级项目发布,有两个会员投诉无法使用布置橱窗。后来查明原因,程序中的空指针异常所致,影响没有过商铺行为的TP会员。 原因:开发者常常会自认为该对象不为null,而没有去看代码的实现或者没有思考周全,漏掉了一些分支情况。阿里巴巴版权所有 1999-2008编码编码 建议建议3 3 建议3:编写远程调用代码,建议采用稳定的开源软件

3、(如httpclient),尽量少自己直接sock编程。 案例:2005年exodus集群几乎全部死掉,无法工作。 原因:贸易通接口的源代码在连接服务器的时候SocketChannel使用不当所致。注:SocketChannel是jdk1.4之后,NIO中的API,比传统的Socket时候起来更方便,性能也会更好,但是不能和以前的Socket混用,否则就会出问题。阿里巴巴版权所有 1999-2002编码编码 建议建议4 4 建议建议4 4:不要往:不要往cookiecookie中设置过多过大的数据中设置过多过大的数据,同时中文站,同时中文站cookiecookie的的domaindomain不

4、要设错。不要设错。 案例:资讯上线之后出现的cookie过大的问题,造成后台用户无法登陆。 原因:系统现在cookie过于庞大. 导致大量使用代理服务器的用户或者部分ISP会把过大HTTP header请求给屏蔽掉.造成客户访问不了我们的站点. 写入cookie的域为 ,而网站写入cookie的域为,这样的会出现两份的cookie发送。阿里巴巴版权所有 1999-2008编码编码 建议建议5 5 建议建议5 5:程序中打印日志时,一定要考虑该日:程序中打印日志时,一定要考虑该日志可能的增长量志可能的增长量。 案例:国际站的案例:国际站的usweb21服务器 /home 这个分区的空间会满掉。

5、原因:由于BuyOfferToFeedbackOut.log这个日志太大,导致/home 这个分区的空间会满掉。阿里巴巴版权所有 1999-2008设计设计 建议建议6 6 建议建议6 6:设计应用时,要考虑其对系统性能的:设计应用时,要考虑其对系统性能的影响。影响。 案例: 论坛Load过高。 原因:因为一些帖子的回帖数过多,而我们的显示方式是树状显示,并且会把一些body的内容取出来处理,造成机器的cpu一直在处理这个事情而load过高。现在已经对程序做了修改优化,并删除了这个帖子,现在load已经降下来了。阿里巴巴版权所有 1999-2008 建议建议7:使用使用synchronized

6、 (this)synchronized (this)要小心要小心。 案例:blog服务器不定时的报警。 原因:文章的cache dao的多个方法都采用了syncronized(this)块同步,而cache dao是singleton,这样锁就是唯一的锁,当一个线程访问cache dao的一个synchronized(this)同步代码块时,其他线程对该对象中所有其它synchronized(this)同步代码块的访问将被阻塞。同步 建议7CACHE CACHE 建议建议8 8 建议建议8:任何数据放入任何数据放入CacheCache中都要考核这些中都要考核这些数据是否符合这三个指标数据是否符

7、合这三个指标( (更新频率、访问量更新频率、访问量、命中率、命中率) )。我们要把更新不频繁,访问量高。我们要把更新不频繁,访问量高,命中率高的数据放入,命中率高的数据放入CacheCache中。同时慎用中。同时慎用OSCACHEOSCACHE的文件持久化。的文件持久化。 案例:news服务器不同稳定。 原因:贸易通inside这个页面里面有一个调用getHtmlByUrl的方法,会根据不同的memberid,返回不同的拍卖信息。发现 cache目录下auction这块内容的文件有25000个,文件太多,严重占用了服务器的资源,导致服务器响应慢,甚至出现too many open file 。

8、阿里巴巴版权所有 1999-2008CACHE CACHE 建议建议9 9 建议建议9 9:序列化对象时要考虑:序列化对象时要考虑sidsid变化造成的变化造成的影响。影响。 案例:中文站某个下午5:20开始,陆续有故障报上来,几乎所有Free+会员的旺铺无法访问。 原因:member cache的类修改和新增了属性,并没有改动SUID的值。从cache中反序列化出来的MemberSpecialSign对象的multiSign字段的值为默认值0,造成所有Free+会员的网站都无法访问。阿里巴巴版权所有 1999-2008SQL SQL 建议建议1010 建议建议1010:所有的:所有的SQLS

9、QL语句都必须经语句都必须经DBADBA审核。审核。 案例:论坛数据库发生异常情况,无法连接数据库,于是DBA切换到备机,各个系统启动正常,但是10分钟后突然出现Load巨高从1以下一路窜升到了10,20,30直到70,所有和数据库相关的系统再次崩溃。 原因:blog这边一个可疑的sql。SELECT * FROM SQ_FORUM_THREAD WHERE MEMBER_ID=#memberId# AND ROWNUM to_date(#vdate#,gmt_createto_date(#vdate#,yyyy-mm-dd hh24:mi:ssyyyy-mm-dd hh24:mi:ss);)

10、; 不要使用: Select * from cmnty_user_feedback where gmt_create#vdate# gmt_create#vdate#。原因:直接使用 日期类型变量,在oracle中测试过程跟踪的时候发现无法获得这个变量的值。支付宝曾经发现该类型变量存在bug,可能导致用不上该日期字段上的索引。阿里巴巴版权所有 1999-2008CLOB CLOB 建议建议1515 建议建议1515:建议数据库表中:建议数据库表中ClobClob字段独立出来字段独立出来为一张表。为一张表。 案例:阿宝二期发布后出现问题CLOB字段引起的问题。 原因:SQL本身并没有问题,因为这

11、个表有CLOB字段,而且使用select *。 Select email from auction不包含CLOB字段逻辑读只有20,SELECT * FROM AUCTION 包含CLOB逻辑读有200。阿里巴巴版权所有 1999-2008SQL SQL 建议建议1616 建议建议1616:分页:分页SQLSQL语句务必保证语句务必保证ORDER BYORDER BY子句子句的唯一性的唯一性 。 案例: 原因:分页的SQL中没有保证ORDER BY子句的唯一性,这样会导致分页错误,有些记录会在多页中出现,而有些则永远都显示不出来 。阿里巴巴版权所有 1999-2008建议建议1717 建议建议

12、1717:oracleoracle的驱动建议采用的驱动建议采用thinthin驱动,驱动,而不要采用而不要采用ocioci驱动。驱动。 案例:forum_web1到forum_web13 http页面全部访问超时, weblogic 全部僵死,重起后恢复。 blog_web2 HTTP 报警,超时,后来blog_web1,blog_web3也报超时,重启服务,另每到周末blog_web就会不稳定 。 原因:Oracle的oci驱动本身存在一定的问题,在一定情况下jvm会crash,且发现问题无法跟踪 。阿里巴巴版权所有 1999-2008数据库数据库 建议建议1818 建议建议1818:数据库

13、的变更,要必须提前:数据库的变更,要必须提前1-31-3天提天提交交DBADBA并做好准备,特别是一些大表或者表上并做好准备,特别是一些大表或者表上有的有的triggertrigger或者或者packagepackage。 案例:中文站执行了 offer 表增加字段的变化,导致detail的访问也出现异常。 原因:中文站执行了 offer 表增加字段的变化,然后trigger编译没有快速通过,估计这个时候碰巧有比较多的offer 数据在发生变化导致多个进程都尝试编译tiggger。于是阻塞了offer 表的DML(增加、删除、修改)语句。而offer表的阻塞导致应用连接消耗光引起offer d

14、etail的访问也出现异常,同时凡是应用服务器有对offer进程dml的应该都会阻塞。阿里巴巴版权所有 1999-2008应用脚本应用脚本 建议建议1919 建议建议1919:应用启动脚本中必须:应用启动脚本中必须JBossJBoss启动完毕启动完毕后再启动后再启动apacheapache 。 案例:国际站下午程序发布失败,首页打不开,持续了10分钟左右。 原因:由于发布时外部访问量较大,而程序装载时间较长,目前的应用重启机制是Resin与Apache同时重启动,所以导致Resin尚未完全装载程序之时即开始接受外部客户请求,使得Resin被涌入的大量请求压垮。阿里巴巴版权所有 1999-200

15、8应用脚本应用脚本 建议建议2020 建议建议2020:kill apachekill apache进程时别忘了清除共享进程时别忘了清除共享内容。内容。 ipcs -m|grep admin|awk print $2|xargs ipcrm shm ipcs -m|grep admin|awk print $2|xargs ipcrm shm ipcs -s|grep admin|awk print $2|xargs ipcrm sem ipcs -s|grep admin|awk print $2|xargs ipcrm sem 案例:中文站发布过程中我们注意到apache没起来的情况还是有一些keywords发布,影响到应用了,中间服务down了约35分钟。 。 原因:由于共享内存没有清理,导致apache服务起不来。阿里巴巴版权所有 1999-2008日志日志 建议建议2121 建议建议2121:请消除:请消除所有所有的的velocityveloc

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论