湖南移動通信公司業(yè)務(wù)運營支持系統(tǒng)(BOSS SYSTEM)系統(tǒng)案例
Annie 2009/07/23
項目簡介(功能與用途):
湖南移動通信公司業(yè)務(wù)運營支持系統(tǒng)(BOSS SYSTEM)系統(tǒng)是整合營業(yè)、計費、結(jié)算、賬務(wù)、收費等業(yè)務(wù),實現(xiàn)"以客戶為中心、業(yè)務(wù)的開發(fā)和管理面向客戶、網(wǎng)絡(luò)管理面向業(yè)務(wù)"的運營原則,大大提高企業(yè)的營銷和服務(wù)水平的核心業(yè)務(wù)支撐系統(tǒng)。
項目難點與解決方案:
BOSS系統(tǒng)從2003年初開始陸續(xù)上線,營帳系統(tǒng)在上線運行后出現(xiàn)性能問題。主要表現(xiàn)在對最終用戶的交互響應(yīng)不如預(yù)期,尤其在業(yè)務(wù)繁忙時更是無法得到及時的交互響應(yīng)。從主機(jī)(AIX)系統(tǒng)上觀察,主要表現(xiàn)在系統(tǒng)的I/O等待較大。營帳系統(tǒng)是由業(yè)務(wù)應(yīng)用程序,Oracle數(shù)據(jù)庫,AIX主機(jī),IBM
ESS存儲多個部分組成,因此性能瓶頸的定位和性能的優(yōu)化都比較復(fù)雜。
該項目的難點主要由以下幾點:
1. 湖南移動通信BOSS SYSTEM系統(tǒng)是一個大型的復(fù)雜系統(tǒng)。在這個系統(tǒng)中從上至下包括以下幾個層次:應(yīng)用程序、數(shù)據(jù)庫、主機(jī)系統(tǒng)(操作系統(tǒng))、SAN網(wǎng)絡(luò)和ESS存儲系統(tǒng)。在發(fā)生系統(tǒng)的性能問題時,性能問題的定位和調(diào)優(yōu)就很復(fù)雜。
2. 數(shù)據(jù)庫容量大,整個數(shù)據(jù)容量有約2120GB,整個數(shù)據(jù)的遷移需要幾十個小時的時間,而在生產(chǎn)系統(tǒng)上是不允許有很長的停機(jī)時間進(jìn)行數(shù)據(jù)遷移。
3. 湖南移動BOSS系統(tǒng)是7×24的應(yīng)用,不允許停機(jī)。
4. 應(yīng)用中部分SQL語句非常復(fù)雜,而且SQL語句的寫法和謂詞等方面使用不當(dāng),直接造成低效率的SQL運行,占用系統(tǒng)I/O和內(nèi)存,需要找出這些SQL語句并對之進(jìn)行調(diào)整。
5. 需要對Oracle數(shù)據(jù)庫部分參數(shù)作出調(diào)整。
6. 需要對操作系統(tǒng)內(nèi)核參數(shù)作出調(diào)整。
7. 需要對數(shù)據(jù)庫的數(shù)據(jù)在ESS存儲上的物理分布重新
對于上述問題,分別采用了如下解決方案:
1. 針對湖南移動BOSS SYSTEM系統(tǒng)出現(xiàn)的性能問題,根據(jù)湖南移動BOSS SYSTEM系統(tǒng)的實際應(yīng)用, 借助ESS Expert和Precise等性能監(jiān)測工具軟件,對主機(jī)系統(tǒng)和存儲進(jìn)行了監(jiān)控,調(diào)整和優(yōu)化,同時對Oracle數(shù)據(jù)庫和應(yīng)用系統(tǒng)提出調(diào)優(yōu)建議。
項目分為以下幾個階段:
- 檢查BOSS SYSTEM系統(tǒng)中所有硬件系統(tǒng),特別是SAN網(wǎng)絡(luò)中的硬件。
- 檢查SAN交換機(jī)的數(shù)據(jù)流量,觀察是否有通道流量不對稱、數(shù)據(jù)包丟失或數(shù)據(jù)傳輸過程中有效驗錯的問題。
- 分析ESS上的數(shù)據(jù)分布,安裝和配置ESS Expert監(jiān)測軟件,觀察是否存在有FC通道、cluster、SSA卡或SSA loop負(fù)載不平均的現(xiàn)象。
- 檢查并優(yōu)化主機(jī)系統(tǒng)上AIX運行的參數(shù),使之適合SYSTEM系統(tǒng)的運行。
- 安裝和配置Precise Indepth for Oracle軟件,檢查ORACLE數(shù)據(jù)庫的參數(shù)設(shè)置,確定最影響性能的應(yīng)用程序,協(xié)助軟件開發(fā)商優(yōu)化應(yīng)用程序。
- 兩次調(diào)整在ESS存儲系統(tǒng)上的數(shù)據(jù)分布,并通過StorWatch EXPERT軟件監(jiān)測ESS存儲系統(tǒng)的性能表現(xiàn);
- 利用Precise軟件監(jiān)測數(shù)據(jù)庫和應(yīng)用對系統(tǒng)資源的占用,對主機(jī)系統(tǒng)作進(jìn)一步的調(diào)優(yōu),并提出對Oracle 數(shù)據(jù)庫和應(yīng)用程序的調(diào)優(yōu)建議;
- 性能瓶頸的定位
一般的調(diào)優(yōu)策略如下:
在湖南移動的調(diào)優(yōu)中,在數(shù)據(jù)庫的設(shè)計和應(yīng)用設(shè)計不做更改的前提下,首先,對IBM存儲系統(tǒng)和主機(jī)系統(tǒng)作深入細(xì)致的參數(shù)和配置調(diào)整。同時,在湖南移動計費中心技術(shù)人員的全力配合下,對ESS存儲系統(tǒng)上的數(shù)據(jù)分布作了大規(guī)模的調(diào)整,并且通過Precise軟件對Oracle數(shù)據(jù)庫性能參數(shù)的監(jiān)控,定位對系統(tǒng)
CPU, I/O等資源消耗嚴(yán)重的瓶頸,對Oracle數(shù)據(jù)庫和應(yīng)用系統(tǒng)提出性能調(diào)優(yōu)建議。
2.針對應(yīng)用的性能狀況,修改Oracle的性能參數(shù)。
cursor_sharing的值從exact改為force, 減少internal lock wait.
spin_count的值從2000調(diào)整到5000。
- 根據(jù)Precise的監(jiān)測和分析結(jié)果,檢查資源消耗最大SQL語句的邏輯設(shè)計,將排名靠前SQL語句的表數(shù)據(jù)與索引分別存儲,建立合適的分區(qū)索引,提高資源消耗靠前SQL語句的并行度。
- 通過StorWatch Expert軟件持續(xù)監(jiān)控ESS的使用,掌握ESS的性能表現(xiàn)和使用狀況。
- 通過Precise軟件對Oracle和應(yīng)用有限數(shù)據(jù)的分析,確定當(dāng)前應(yīng)用系統(tǒng)并沒有達(dá)到理想的運行狀態(tài),建議對應(yīng)用系統(tǒng)作相應(yīng)的檢查和調(diào)整。同時,為了更準(zhǔn)確定位應(yīng)用問題所在,建議收集更長時間的數(shù)據(jù),再進(jìn)行更深入的分析。
3.調(diào)整數(shù)據(jù)在ESS上的分布。
首先將數(shù)據(jù)平均地分布在兩個cluster上,之后將數(shù)據(jù)分布在盡可能多的通道上。
由于整個數(shù)據(jù)容量有約2120GB,整個數(shù)據(jù)的遷移需要幾十個小時的時間,而在生產(chǎn)系統(tǒng)上是不允許有很長的停機(jī)時間進(jìn)行數(shù)據(jù)遷移。
根據(jù)多個方案的論證對比,決定采用邏輯卷鏡像的方案實施數(shù)據(jù)遷移。具體的步驟是先將所有的邏輯卷在目的的硬盤上建立鏡像、同步數(shù)據(jù)、再將原硬盤上的鏡像部分刪除。整個數(shù)據(jù)遷移工作全部在系統(tǒng)的后臺進(jìn)行,共進(jìn)行了60個小時,完成所有數(shù)據(jù)遷移。
4.對操作系統(tǒng)內(nèi)核參數(shù)作出調(diào)整
5.檢查資源消耗最大語句的邏輯設(shè)計。
建立合適的分區(qū)索引
將排名靠前語句的表數(shù)據(jù)與索引分別存儲。
提高資源消耗靠前語句的并行度。
Oracle 的參數(shù)cursor_sharing設(shè)為force減少internal lock wait
調(diào)整Latch的數(shù)量(如DB_BLOCK_LRU_LATCHES)或內(nèi)存的一些參數(shù)(如SHARED_POOL_SIZE等)解決內(nèi)部鎖問題。
6.由于數(shù)據(jù)存儲調(diào)整后,系統(tǒng)I/O性能狀況良好,系統(tǒng)和存儲端的性能表現(xiàn)已調(diào)整至最佳,系統(tǒng)和存儲端的性能調(diào)優(yōu)工作已經(jīng)完成。建議客戶下一步的工作重點是解決應(yīng)用系統(tǒng)的性能瓶頸,結(jié)合Precise對應(yīng)用的監(jiān)控結(jié)果,檢查應(yīng)用的邏輯設(shè)計,數(shù)據(jù)索引的建立和分布。協(xié)助應(yīng)用開發(fā)商修改應(yīng)用。
7.調(diào)整操作系統(tǒng)交換空間(page space)。
項目成功與失敗的經(jīng)驗歸納:
在湖南移動BOSS系統(tǒng)的性能調(diào)優(yōu)中,項目的成功經(jīng)驗有以下幾點:
1. 數(shù)據(jù)庫前期的合理的架構(gòu)設(shè)計(物理設(shè)計和邏輯設(shè)計)是整個項目成敗的關(guān)鍵,合理的架構(gòu)設(shè)計為整個項目穩(wěn)定可靠高效運行打下了良好的基礎(chǔ),同時也起到了事半功倍的作用。在湖南移動BOSS系統(tǒng)中就是因為數(shù)據(jù)庫在ESS物理存儲的不合理分布而直接導(dǎo)致了系統(tǒng)的I/O瓶頸。
2. 根據(jù)系統(tǒng)的物理資源,對數(shù)據(jù)庫的配置參數(shù)和操作系統(tǒng)內(nèi)核參數(shù)做合理的調(diào)整,保證系統(tǒng)物理資源(CPU,I/O,內(nèi)存和網(wǎng)絡(luò))和邏輯資源(裸設(shè)備,文件系統(tǒng)等)合理的分布和應(yīng)用。
3. 要善于借助于第三方的監(jiān)控軟件(如:StorWatch Expert和Precise軟件),這些軟件的運用可以快速的定位性能瓶頸從而更快速的作出性能調(diào)整。
4. 檢查資源消耗最大SQL語句的邏輯設(shè)計,將排名靠前SQL語句的表數(shù)據(jù)與索引分別存儲,建立合適的分區(qū)索引,提高資源消耗靠前SQL語句的并行度。很多性能瓶頸往往是由于“惡劣”的SQL造成的。
5. 要有一個很好的性能調(diào)整流程和性能調(diào)整方法步驟,循序漸進(jìn),一步一步定位,逐步縮小范圍,知道最后定位性能瓶頸。
6. 要善于團(tuán)隊合作,在整個性能調(diào)整中,我負(fù)責(zé)軟件調(diào)整,要和硬件調(diào)整,網(wǎng)絡(luò)調(diào)整的技術(shù)人員通力合作。
7. 性能調(diào)整是全局的工作,涉及應(yīng)用開發(fā),中間件,數(shù)據(jù)庫,操作系統(tǒng),存儲,網(wǎng)絡(luò)等。需要對全局的信息架構(gòu)有清晰的認(rèn)識。
總結(jié):在湖南移動BOSS系統(tǒng)的性能調(diào)整中,我是以IBM技術(shù)顧問身份參與性能調(diào)整的,主要負(fù)責(zé)對Oracle數(shù)據(jù)庫配置參數(shù)的調(diào)整;負(fù)責(zé)完成數(shù)據(jù)庫后期的性能
監(jiān)控,性能調(diào)優(yōu);負(fù)責(zé)檢查資源消耗最大SQL語句的邏輯設(shè)計,將排名靠前SQL語句的表數(shù)據(jù)與索引分別存儲,建立合適的分區(qū)索引,提高資源消耗靠前SQL
語句的并行度。負(fù)責(zé)在操作系統(tǒng)層面定位性能瓶頸(CPU,內(nèi)存,I/O和網(wǎng)絡(luò)瓶頸)并調(diào)整操作系統(tǒng)內(nèi)核參數(shù)。負(fù)責(zé)協(xié)助開發(fā)人員對應(yīng)用開發(fā)作出修改和SQL
性能調(diào)整。
中國計費網(wǎng)
相關(guān)鏈接:
三河市|
荆门市|
饶阳县|
柳州市|
禄丰县|
手游|
延寿县|
英吉沙县|
江门市|
平谷区|
武强县|
云浮市|
珠海市|
兴和县|
花莲县|
晋中市|
宾川县|
吉木萨尔县|
越西县|
绥化市|
方山县|
绩溪县|
古蔺县|
建平县|
常熟市|
定安县|
重庆市|
信丰县|
神农架林区|
阳泉市|
宣化县|
五家渠市|
英德市|
张家界市|
黑龙江省|
广元市|
濮阳县|
望江县|
沈阳市|
墨江|
永靖县|