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