




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
阿里巴巴版权所有1999-2008中文站技术故障总结
----21条建议
杨争2008-6-19内容建议、案例、原因。编码、设计、cache、SQL、应用脚本、日志。总结。阿里巴巴版权所有1999-2008编码建议1建议1:代码ci之前通过svndiff确认修改的内容,以避免把不应该修改的代码给ci了。案例:这种情况发生已经不止一两次了,有的是为了本次测试的方便,临时把cache去掉了,但ci了时候没有改回来;有的是修改了临时配置文件,结果也ci上去。原因:忘!阿里巴巴版权所有1999-2008编码建议2建议2:调用对象的方法,一定要明确该对象是否会空,不能确定时要判断。案例:由于NullPointException造成应用bug的情况也是屡见不鲜。比如:商铺升级项目发布,有两个会员投诉无法使用布置橱窗。后来查明原因,程序中的空指针异常所致,影响没有过商铺行为的TP会员。原因:开发者常常会自认为该对象不为null,而没有去看代码的实现或者没有思考周全,漏掉了一些分支情况。阿里巴巴版权所有1999-2008编码建议3建议3:编写远程调用代码,建议采用稳定的开源软件(如httpclient),尽量少自己直接sock编程。案例:2005年exodus集群几乎全部死掉,无法工作。原因:贸易通接口的源代码在连接服务器的时候SocketChannel使用不当所致。注:SocketChannel是jdk1.4之后,NIO中的API,比传统的Socket时候起来更方便,性能也会更好,但是不能和以前的Socket混用,否则就会出问题。阿里巴巴版权所有1999-2002编码建议4建议4:不要往cookie中设置过多过大的数据,同时中文站cookie的domain不要设错。
案例:资讯上线之后出现的cookie过大的问题,造成后台用户无法登陆。原因:系统现在cookie过于庞大.导致大量使用代理服务器的用户或者部分ISP会把过大HTTPheader请求给屏蔽掉.造成客户访问不了我们的站点.
写入cookie的域为
,而网站写入cookie的域为.,这样的会出现两份的cookie发送。阿里巴巴版权所有1999-2008编码建议5建议5:程序中打印日志时,一定要考虑该日志可能的增长量。案例:国际站的usweb21服务器/home这个分区的空间会满掉。原因:由于BuyOfferToFeedbackOut.log这个日志太大,导致/home这个分区的空间会满掉。阿里巴巴版权所有1999-2008设计建议6建议6:设计应用时,要考虑其对系统性能的影响。案例:论坛Load过高。原因:因为一些帖子的回帖数过多,而我们的显示方式是树状显示,并且会把一些body的内容取出来处理,造成机器的cpu一直在处理这个事情而load过高。现在已经对程序做了修改优化,并删除了这个帖子,现在load已经降下来了。阿里巴巴版权所有1999-2008建议7:使用synchronized(this)要小心。
案例:blog服务器不定时的报警。原因:文章的cachedao的多个方法都采用了syncronized(this)块同步,而cachedao是singleton,这样锁就是唯一的锁,当一个线程访问cachedao的一个synchronized(this)同步代码块时,其他线程对该对象中所有其它synchronized(this)同步代码块的访问将被阻塞。同步建议7CACHE建议8建议8:任何数据放入Cache中都要考核这些数据是否符合这三个指标(更新频率、访问量、命中率)。我们要把更新不频繁,访问量高,命中率高的数据放入Cache中。同时慎用OSCACHE的文件持久化。
案例:news服务器不同稳定。原因:贸易通inside这个页面里面有一个调用getHtmlByUrl的方法,会根据不同的memberid,返回不同的拍卖信息。发现cache目录下auction这块内容的文件有25000个,文件太多,严重占用了服务器的资源,导致服务器响应慢,甚至出现toomanyopenfile
。阿里巴巴版权所有1999-2008CACHE建议9建议9:序列化对象时要考虑sid变化造成的影响。案例:中文站某个下午5:20开始,陆续有故障报上来,几乎所有Free+会员的旺铺无法访问。原因:membercache的类修改和新增了属性,并没有改动SUID的值。从cache中反序列化出来的MemberSpecialSign对象的multiSign字段的值为默认值0,造成所有Free+会员的网站都无法访问。阿里巴巴版权所有1999-2008SQL建议10建议10:所有的SQL语句都必须经DBA审核。案例:论坛数据库发生异常情况,无法连接数据库,于是DBA切换到备机,各个系统启动正常,但是10分钟后突然出现Load巨高从1以下一路窜升到了10,20,30直到70,所有和数据库相关的系统再次崩溃。原因:blog这边一个可疑的sql。 SELECT*FROMSQ_FORUM_THREADWHEREMEMBER_ID=#memberId#ANDROWNUM<=#num#ORDERBYIDDESC。阿里巴巴版权所有1999-2008SQL建议11建议11:一条正确的SQL语句用在了错误的地方,也可能给我们带来很大问题。所以我们在使用SQL语句时候一定要清楚它的执行频率。案例:论坛数据库LOAD居高不下,高峰时间在6左右。原因:有一句正常的SQL运行了不正确的频率select/*+ordereduse_nl(ab)*/b.*fromtable(str2varlist_order(:1))a,SQ_USERbwherea.var=b.MEMBER_ID这条批量取用户信息的SQL在首页上使用。阿里巴巴版权所有1999-2008SQL建议12建议12:一条正确的SQL语句随着时间的推移数据量越来越大,也可能就不合适了
。所以我们在使用SQL语句时候一定要清楚它的数据量的增长。案例:中文站发现以下两条SQL,经过DBA审核。每次执行耗费7000多逻辑读,每小时执行400次,排名第四,第五。原因:sql是经过确认的,不过已经有一段时间了,原来的join方式已经随着数据的增长不再适用了。阿里巴巴版权所有1999-2008SQL建议13建议13:SQL语句一定要绑定变量。案例:这两天发现中文站早晨的hardparse数量比较高(3以上,一般都在0.5以下)。原因:主要的原因都是SQL没有使用绑定变量造成的。发现大量的写死SQL,全部都没有绑定变量。阿里巴巴版权所有1999-2008SQL建议14建议14::ORACLE日期型绑定变量应该使用代表日期的字符串作为绑定变量,然后利用ORACLE的to_date函数进行转换,不要使用直接将JAVA的日期类型做为绑定变量。
案例:Select*fromcmnty_user_feedbackwheregmt_create>to_date(#vdate#,’yyyy-mm-ddhh24:mi:ss’);不要使用:Select*fromcmnty_user_feedbackwheregmt_create>#vdate#。原因:直接使用日期类型变量,在oracle中测试过程跟踪的时候发现无法获得这个变量的值。支付宝曾经发现该类型变量存在bug,可能导致用不上该日期字段上的索引。阿里巴巴版权所有1999-2008CLOB建议15建议15:建议数据库表中Clob字段独立出来为一张表。案例:阿宝二期发布后出现问题-CLOB字段引起的问题。原因:SQL本身并没有问题,因为这个表有CLOB字段,而且使用select*。Selectemailfromauction不包含CLOB字段逻辑读只有20,SELECT*FROMAUCTION包含CLOB逻辑读有200。阿里巴巴版权所有1999-2008SQL建议16建议16:分页SQL语句务必保证ORDERBY子句的唯一性
。案例:原因:分页的SQL中没有保证ORDERBY子句的唯一性,这样会导致分页错误,有些记录会在多页中出现,而有些则永远都显示不出来。阿里巴巴版权所有1999-2008建议17建议17:oracle的驱动建议采用thin驱动,而不要采用oci驱动。案例:forum_web1到forum_web13http页面全部访问超时,weblogic全部僵死,重起后恢复。blog_web2HTTP报警,超时,后来blog_web1,blog_web3也报超时,重启服务,另每到周末blog_web就会不稳定。原因:Oracle的oci驱动本身存在一定的问题,在一定情况下jvm会crash,且发现问题无法跟踪。阿里巴巴版权所有1999-2008数据库建议18建议18:数据库的变更,要必须提前1-3天提交DBA并做好准备,特别是一些大表或者表上有的trigger或者package。案例:中文站执行了offer表增加字段的变化,导致detail的访问也出现异常。原因:中文站执行了offer表增加字段的变化,然后trigger编译没有快速通过,估计这个时候碰巧有比较多的offer数据在发生变化导致多个进程都尝试编译tiggger。于是阻塞了offer表的DML(增加、删除、修改)语句。而offer表的阻塞导致应用连接消耗光引起offerdetail的访问也出现异常,同时凡是应用服务器有对offer进程dml的应该都会阻塞。阿里巴巴版权所有1999-2008应用脚本建议19建议19:应用启动脚本中必须JBoss启动完毕后再启动apache
。案例:国际站下午程序发布失败,首页打不开,持续了10分钟左右。原因:由于发布时外部访问量较大,而程序装载时间较长,目前的应用重启机制是Resin与Apache同时重启动,所以导致Resin尚未完全装载程序之时即开始接受外部客户请求,使得Resin被涌入的大量请求压垮。阿里巴巴版权所有1999-2008应用脚本建议20建议20:killapache进程时别忘了清除共享内容。ipcs-m|grepadmin|awk'{print$2}'|xargsipcrmshmipcs-s|grepadmin|awk'{print$2}'|xargsipcrmsem案例:中文站
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 股权质押续展合同样本
- 2025年河北省石家庄市中考物理模拟试卷(含解析)
- 收入管理收入审核具体要求课件
- 苗木定制服务合同
- 铁路市场营销铁路货运市场细分的标准课件
- 中国与美国的区别
- 与小学生讲党史课件
- 股权退出转让合同书
- 襄阳汽车职业技术学院《工程设计原理》2023-2024学年第二学期期末试卷
- 嘉善县2024-2025学年数学五年级第二学期期末综合测试模拟试题含答案
- 大树移植方案可行性论证
- 固体物理课件完全版
- 人民卫生出版社选题表
- 《大学生安全教育》教案-第十一课 预防激情犯罪
- Higg FEM 平台操作介绍
- 重庆外国语学校2024届化学高二第一学期期中综合测试模拟试题含解析
- 图形与坐标复习(评学科带头人)
- 九年级上册历史知识点复习课件(部编版)
- 脱碳塔CO2脱气塔设计计算
- 2022年四川省阿坝州中考物理真题及答案
- 香港汇丰银行大厦结构选型
评论
0/150
提交评论