中文站技術(shù)故障總結(jié)----21條建議_第1頁(yè)
中文站技術(shù)故障總結(jié)----21條建議_第2頁(yè)
中文站技術(shù)故障總結(jié)----21條建議_第3頁(yè)
中文站技術(shù)故障總結(jié)----21條建議_第4頁(yè)
中文站技術(shù)故障總結(jié)----21條建議_第5頁(yè)
已閱讀5頁(yè),還剩19頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、阿里巴巴版權(quán)所有 1999-2008中文站技術(shù)故障總結(jié)中文站技術(shù)故障總結(jié)-2121條建議條建議 楊爭(zhēng)2008-6-19內(nèi)容內(nèi)容 建議、案例、原因。 編碼、設(shè)計(jì)、cache、SQL、應(yīng)用腳本、日志。 總結(jié)。阿里巴巴版權(quán)所有 1999-2008編碼編碼 建議建議1 1 建議建議1:代碼:代碼ci之前通過(guò)之前通過(guò)svn diff確認(rèn)修改的確認(rèn)修改的內(nèi)容,以避免把不應(yīng)該修改的代碼給內(nèi)容,以避免把不應(yīng)該修改的代碼給ci了。了。 案例:這種情況發(fā)生已經(jīng)不止一兩次了,有的是為了本次測(cè)試的方便,臨時(shí)把cache去掉了,但ci了時(shí)候沒(méi)有改回來(lái);有的是修改了臨時(shí)配置文件,結(jié)果也ci上去。 原因:忘 !阿里巴巴版權(quán)

2、所有 1999-2008編碼編碼 建議建議2 2 建議建議2:調(diào)用對(duì)象的方法,一定要明確該對(duì)調(diào)用對(duì)象的方法,一定要明確該對(duì)象是否會(huì)空,不能確定時(shí)要判斷象是否會(huì)空,不能確定時(shí)要判斷。 案例:由于NullPointException造成應(yīng)用bug的情況也是屢見(jiàn)不鮮。比如:商鋪升級(jí)項(xiàng)目發(fā)布,有兩個(gè)會(huì)員投訴無(wú)法使用布置櫥窗。后來(lái)查明原因,程序中的空指針異常所致,影響沒(méi)有過(guò)商鋪行為的TP會(huì)員。 原因:開(kāi)發(fā)者常常會(huì)自認(rèn)為該對(duì)象不為null,而沒(méi)有去看代碼的實(shí)現(xiàn)或者沒(méi)有思考周全,漏掉了一些分支情況。阿里巴巴版權(quán)所有 1999-2008編碼編碼 建議建議3 3 建議3:編寫(xiě)遠(yuǎn)程調(diào)用代碼,建議采用穩(wěn)定的開(kāi)源軟件

3、(如httpclient),盡量少自己直接sock編程。 案例:2005年exodus集群幾乎全部死掉,無(wú)法工作。 原因:貿(mào)易通接口的源代碼在連接服務(wù)器的時(shí)候SocketChannel使用不當(dāng)所致。注:SocketChannel是jdk1.4之后,NIO中的API,比傳統(tǒng)的Socket時(shí)候起來(lái)更方便,性能也會(huì)更好,但是不能和以前的Socket混用,否則就會(huì)出問(wèn)題。阿里巴巴版權(quán)所有 1999-2002編碼編碼 建議建議4 4 建議建議4 4:不要往:不要往cookiecookie中設(shè)置過(guò)多過(guò)大的數(shù)據(jù)中設(shè)置過(guò)多過(guò)大的數(shù)據(jù),同時(shí)中文站,同時(shí)中文站cookiecookie的的domaindomain不

4、要設(shè)錯(cuò)。不要設(shè)錯(cuò)。 案例:資訊上線(xiàn)之后出現(xiàn)的cookie過(guò)大的問(wèn)題,造成后臺(tái)用戶(hù)無(wú)法登陸。 原因:系統(tǒng)現(xiàn)在cookie過(guò)于龐大. 導(dǎo)致大量使用代理服務(wù)器的用戶(hù)或者部分ISP會(huì)把過(guò)大HTTP header請(qǐng)求給屏蔽掉.造成客戶(hù)訪問(wèn)不了我們的站點(diǎn). 寫(xiě)入cookie的域?yàn)?,而網(wǎng)站寫(xiě)入cookie的域?yàn)?,這樣的會(huì)出現(xiàn)兩份的cookie發(fā)送。阿里巴巴版權(quán)所有 1999-2008編碼編碼 建議建議5 5 建議建議5 5:程序中打印日志時(shí),一定要考慮該日:程序中打印日志時(shí),一定要考慮該日志可能的增長(zhǎng)量志可能的增長(zhǎng)量。 案例:國(guó)際站的案例:國(guó)際站的usweb21服務(wù)器 /home 這個(gè)分區(qū)的空間會(huì)滿(mǎn)掉。

5、原因:由于BuyOfferToFeedbackOut.log這個(gè)日志太大,導(dǎo)致/home 這個(gè)分區(qū)的空間會(huì)滿(mǎn)掉。阿里巴巴版權(quán)所有 1999-2008設(shè)計(jì)設(shè)計(jì) 建議建議6 6 建議建議6 6:設(shè)計(jì)應(yīng)用時(shí),要考慮其對(duì)系統(tǒng)性能的:設(shè)計(jì)應(yīng)用時(shí),要考慮其對(duì)系統(tǒng)性能的影響。影響。 案例: 論壇Load過(guò)高。 原因:因?yàn)橐恍┨拥幕靥麛?shù)過(guò)多,而我們的顯示方式是樹(shù)狀顯示,并且會(huì)把一些body的內(nèi)容取出來(lái)處理,造成機(jī)器的cpu一直在處理這個(gè)事情而load過(guò)高?,F(xiàn)在已經(jīng)對(duì)程序做了修改優(yōu)化,并刪除了這個(gè)帖子,現(xiàn)在load已經(jīng)降下來(lái)了。阿里巴巴版權(quán)所有 1999-2008 建議建議7:使用使用synchronized

6、 (this)synchronized (this)要小心要小心。 案例:blog服務(wù)器不定時(shí)的報(bào)警。 原因:文章的cache dao的多個(gè)方法都采用了syncronized(this)塊同步,而cache dao是singleton,這樣鎖就是唯一的鎖,當(dāng)一個(gè)線(xiàn)程訪問(wèn)cache dao的一個(gè)synchronized(this)同步代碼塊時(shí),其他線(xiàn)程對(duì)該對(duì)象中所有其它synchronized(this)同步代碼塊的訪問(wèn)將被阻塞。同步 建議7CACHE CACHE 建議建議8 8 建議建議8:任何數(shù)據(jù)放入任何數(shù)據(jù)放入CacheCache中都要考核這些中都要考核這些數(shù)據(jù)是否符合這三個(gè)指標(biāo)數(shù)據(jù)是否符

7、合這三個(gè)指標(biāo)( (更新頻率、訪問(wèn)量更新頻率、訪問(wèn)量、命中率、命中率) )。我們要把更新不頻繁,訪問(wèn)量高。我們要把更新不頻繁,訪問(wèn)量高,命中率高的數(shù)據(jù)放入,命中率高的數(shù)據(jù)放入CacheCache中。同時(shí)慎用中。同時(shí)慎用OSCACHEOSCACHE的文件持久化。的文件持久化。 案例:news服務(wù)器不同穩(wěn)定。 原因:貿(mào)易通inside這個(gè)頁(yè)面里面有一個(gè)調(diào)用getHtmlByUrl的方法,會(huì)根據(jù)不同的memberid,返回不同的拍賣(mài)信息。發(fā)現(xiàn) cache目錄下auction這塊內(nèi)容的文件有25000個(gè),文件太多,嚴(yán)重占用了服務(wù)器的資源,導(dǎo)致服務(wù)器響應(yīng)慢,甚至出現(xiàn)too many open file 。

8、阿里巴巴版權(quán)所有 1999-2008CACHE CACHE 建議建議9 9 建議建議9 9:序列化對(duì)象時(shí)要考慮:序列化對(duì)象時(shí)要考慮sidsid變化造成的變化造成的影響。影響。 案例:中文站某個(gè)下午5:20開(kāi)始,陸續(xù)有故障報(bào)上來(lái),幾乎所有Free+會(huì)員的旺鋪無(wú)法訪問(wèn)。 原因:member cache的類(lèi)修改和新增了屬性,并沒(méi)有改動(dòng)SUID的值。從cache中反序列化出來(lái)的MemberSpecialSign對(duì)象的multiSign字段的值為默認(rèn)值0,造成所有Free+會(huì)員的網(wǎng)站都無(wú)法訪問(wèn)。阿里巴巴版權(quán)所有 1999-2008SQL SQL 建議建議1010 建議建議1010:所有的:所有的SQLS

9、QL語(yǔ)句都必須經(jīng)語(yǔ)句都必須經(jīng)DBADBA審核。審核。 案例:論壇數(shù)據(jù)庫(kù)發(fā)生異常情況,無(wú)法連接數(shù)據(jù)庫(kù),于是DBA切換到備機(jī),各個(gè)系統(tǒng)啟動(dòng)正常,但是10分鐘后突然出現(xiàn)Load巨高從1以下一路竄升到了10,20,30直到70,所有和數(shù)據(jù)庫(kù)相關(guān)的系統(tǒng)再次崩潰。 原因:blog這邊一個(gè)可疑的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#。原因:直接使用 日期類(lèi)型變量,在oracle中測(cè)試過(guò)程跟蹤的時(shí)候發(fā)現(xiàn)無(wú)法獲得這個(gè)變量的值。支付寶曾經(jīng)發(fā)現(xiàn)該類(lèi)型變量存在bug,可能導(dǎo)致用不上該日期字段上的索引。阿里巴巴版權(quán)所有 1999-2008CLOB CLOB 建議建議1515 建議建議1515:建議數(shù)據(jù)庫(kù)表中:建議數(shù)據(jù)庫(kù)表中ClobClob字段獨(dú)立出來(lái)字段獨(dú)立出來(lái)為一張表。為一張表。 案例:阿寶二期發(fā)布后出現(xiàn)問(wèn)題CLOB字段引起的問(wèn)題。 原因:SQL本身并沒(méi)有問(wèn)題,因?yàn)檫@

11、個(gè)表有CLOB字段,而且使用select *。 Select email from auction不包含CLOB字段邏輯讀只有20,SELECT * FROM AUCTION 包含CLOB邏輯讀有200。阿里巴巴版權(quán)所有 1999-2008SQL SQL 建議建議1616 建議建議1616:分頁(yè):分頁(yè)SQLSQL語(yǔ)句務(wù)必保證語(yǔ)句務(wù)必保證ORDER BYORDER BY子句子句的唯一性的唯一性 。 案例: 原因:分頁(yè)的SQL中沒(méi)有保證ORDER BY子句的唯一性,這樣會(huì)導(dǎo)致分頁(yè)錯(cuò)誤,有些記錄會(huì)在多頁(yè)中出現(xiàn),而有些則永遠(yuǎn)都顯示不出來(lái) 。阿里巴巴版權(quán)所有 1999-2008建議建議1717 建議建議

12、1717:oracleoracle的驅(qū)動(dòng)建議采用的驅(qū)動(dòng)建議采用thinthin驅(qū)動(dòng),驅(qū)動(dòng),而不要采用而不要采用ocioci驅(qū)動(dòng)。驅(qū)動(dòng)。 案例:forum_web1到forum_web13 http頁(yè)面全部訪問(wèn)超時(shí), weblogic 全部僵死,重起后恢復(fù)。 blog_web2 HTTP 報(bào)警,超時(shí),后來(lái)blog_web1,blog_web3也報(bào)超時(shí),重啟服務(wù),另每到周末blog_web就會(huì)不穩(wěn)定 。 原因:Oracle的oci驅(qū)動(dòng)本身存在一定的問(wèn)題,在一定情況下jvm會(huì)crash,且發(fā)現(xiàn)問(wèn)題無(wú)法跟蹤 。阿里巴巴版權(quán)所有 1999-2008數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù) 建議建議1818 建議建議1818:數(shù)據(jù)庫(kù)

13、的變更,要必須提前:數(shù)據(jù)庫(kù)的變更,要必須提前1-31-3天提天提交交DBADBA并做好準(zhǔn)備,特別是一些大表或者表上并做好準(zhǔn)備,特別是一些大表或者表上有的有的triggertrigger或者或者packagepackage。 案例:中文站執(zhí)行了 offer 表增加字段的變化,導(dǎo)致detail的訪問(wèn)也出現(xiàn)異常。 原因:中文站執(zhí)行了 offer 表增加字段的變化,然后trigger編譯沒(méi)有快速通過(guò),估計(jì)這個(gè)時(shí)候碰巧有比較多的offer 數(shù)據(jù)在發(fā)生變化導(dǎo)致多個(gè)進(jìn)程都嘗試編譯tiggger。于是阻塞了offer 表的DML(增加、刪除、修改)語(yǔ)句。而offer表的阻塞導(dǎo)致應(yīng)用連接消耗光引起offer d

14、etail的訪問(wèn)也出現(xiàn)異常,同時(shí)凡是應(yīng)用服務(wù)器有對(duì)offer進(jìn)程dml的應(yīng)該都會(huì)阻塞。阿里巴巴版權(quán)所有 1999-2008應(yīng)用腳本應(yīng)用腳本 建議建議1919 建議建議1919:應(yīng)用啟動(dòng)腳本中必須:應(yīng)用啟動(dòng)腳本中必須JBossJBoss啟動(dòng)完畢啟動(dòng)完畢后再啟動(dòng)后再啟動(dòng)apacheapache 。 案例:國(guó)際站下午程序發(fā)布失敗,首頁(yè)打不開(kāi),持續(xù)了10分鐘左右。 原因:由于發(fā)布時(shí)外部訪問(wèn)量較大,而程序裝載時(shí)間較長(zhǎng),目前的應(yīng)用重啟機(jī)制是Resin與Apache同時(shí)重啟動(dòng),所以導(dǎo)致Resin尚未完全裝載程序之時(shí)即開(kāi)始接受外部客戶(hù)請(qǐng)求,使得Resin被涌入的大量請(qǐng)求壓垮。阿里巴巴版權(quán)所有 1999-200

15、8應(yīng)用腳本應(yīng)用腳本 建議建議2020 建議建議2020:kill apachekill apache進(jìn)程時(shí)別忘了清除共享進(jìn)程時(shí)別忘了清除共享內(nèi)容。內(nèi)容。 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 案例:中文站發(fā)布過(guò)程中我們注意到apache沒(méi)起來(lái)的情況還是有一些keywords發(fā)布,影響到應(yīng)用了,中間服務(wù)down了約35分鐘。 。 原因:由于共享內(nèi)存沒(méi)有清理,導(dǎo)致apache服務(wù)起不來(lái)。阿里巴巴版權(quán)所有 1999-2008日志日志 建議建議2121 建議建議2121:請(qǐng)消除:請(qǐng)消除所有所有的的velocityveloc

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論