




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、1 性能保障方案1.1 從構(gòu)架設(shè)計(jì)解決系統(tǒng)性能問(wèn)題一個(gè)好的構(gòu)架設(shè)計(jì)是保證系統(tǒng)今后可靠、 穩(wěn)定、高效運(yùn)行的基礎(chǔ)。 從構(gòu)架設(shè) 計(jì)上考慮系統(tǒng)性能問(wèn)題,其目標(biāo)是保證如下指標(biāo):并發(fā)用戶數(shù)吞吐量可靠性性能即:讓系統(tǒng)更快更好地為更多的用戶提供服務(wù), 并且保證服務(wù)過(guò)程不會(huì)中斷。 為了達(dá)到以上指標(biāo),在設(shè)計(jì)中可以采用如下方案:1.1.1 構(gòu)架設(shè)計(jì)性能保障原則(1)面向性能的業(yè)務(wù)流程分析 明確性能問(wèn)題在整個(gè)軟件生產(chǎn)與運(yùn)行過(guò)程中的重要意義, 在考慮架構(gòu)分析與 設(shè)計(jì)的時(shí)候,出發(fā)點(diǎn)與指導(dǎo)原則是幫助用戶使用某種技術(shù)手段來(lái)高效地完成業(yè)務(wù) 流程,其本質(zhì)是 “高效的業(yè)務(wù)流程 ”,而不是一個(gè)計(jì)算機(jī)系統(tǒng)或計(jì)算機(jī)應(yīng)用。在這 一原則之下
2、,我們的應(yīng)用開(kāi)發(fā)是圍繞著開(kāi)發(fā)高效 業(yè)務(wù)流程”展開(kāi)的,Java或其他 技術(shù)只是我們的一種技術(shù)手段而已。 避免由于具體的技術(shù)實(shí)現(xiàn)方案對(duì)業(yè)務(wù)流程分 析中的性能指標(biāo)的束縛。(2)“化整為零 ”的領(lǐng)域模型設(shè)計(jì)領(lǐng)域模型分析與設(shè)計(jì)過(guò)程中, 抽取,抽象出穩(wěn)定的領(lǐng)域模型, 并且剝離出嚴(yán) 重影響系統(tǒng)性能的長(zhǎng)事物處理與批量事物處理, 針對(duì)長(zhǎng)事務(wù)處理采用 “化整為零” 的處理模式, 將集中式處理過(guò)程中的具體環(huán)節(jié)分散到日常的業(yè)務(wù)處理功能中, 對(duì) 于批量業(yè)務(wù)處理采用多線程并行獨(dú)立處理。 同時(shí)這種 “化整為零” 領(lǐng)域模型設(shè)計(jì) 在面對(duì)業(yè)務(wù)流程與模型的自然變化面前, 可以通過(guò)最少, 最小的程序變動(dòng), 降低 對(duì)應(yīng)用性能的影響。(
3、3) 面向性能的架構(gòu)關(guān)鍵技術(shù)選型在架構(gòu)設(shè)計(jì)的時(shí)候要時(shí)刻圍繞著系統(tǒng)的 QoS 需求,并將這些需求轉(zhuǎn)化到Service的設(shè)計(jì)上,真正做到“面向性能的架構(gòu)關(guān)鍵技術(shù)選型”,如下內(nèi)容概述出在 架構(gòu)設(shè)計(jì)國(guó)政部分關(guān)鍵技術(shù)選擇是如何圍繞 “性能”進(jìn)行考慮的。RIA(Rich In ternet Application)客戶端架構(gòu)在保證良好的用戶體驗(yàn)的同時(shí),處理UI界面的展現(xiàn)與渲染過(guò)程中充分利用客戶機(jī)的運(yùn)算與處理能力。數(shù)據(jù)交互格式定義精簡(jiǎn)的客戶端與應(yīng)用服務(wù)器端數(shù)據(jù)交互格式, 在不丟失數(shù)據(jù)語(yǔ)義的同時(shí), 盡 量降低在網(wǎng)絡(luò)中傳輸?shù)臄?shù)據(jù)內(nèi)容。自動(dòng)事物管理利用面向切面的技術(shù)進(jìn)行事物管理的切入, 從而實(shí)現(xiàn)自動(dòng)化的事物處理,
4、 避 免編程式事物導(dǎo)致的事物與數(shù)據(jù)庫(kù)連接問(wèn)題并行處理并行處理是通過(guò)利用J2EE層執(zhí)行模式的多線程和多 CPU特點(diǎn)來(lái)提高性能。 與使用一個(gè)線程或 CPU 處理任務(wù)相比,以并行方式處理多個(gè)子任務(wù)可以使操作 系統(tǒng)在多個(gè)線程或處理器中進(jìn)行分配這些子任務(wù)。異步處理異步處理只處理那些非常重要的任務(wù)部分,然后將控制立即返回給調(diào)用者, 其他任務(wù)部分將在稍后執(zhí)行。 異步處理是通過(guò)縮短那些在將控制返回給用戶之前 必須處理的時(shí)間來(lái)提高性能的。 雖然都做同樣多的事情, 但是用戶不必等到整個(gè) 過(guò)程完成就可以繼續(xù)發(fā)出請(qǐng)求了緩存機(jī)制緩存中存放著頻繁訪問(wèn)的數(shù)據(jù), 在應(yīng)用的整個(gè)生命周期中, 這些數(shù)據(jù)存放在 持久性存儲(chǔ)器或存放在
5、內(nèi)存中。 在實(shí)際環(huán)境中, 典型的現(xiàn)象是在分布式系統(tǒng)中每 個(gè)JVM中有一個(gè)緩存的實(shí)例或者在多個(gè) JVM中有一個(gè)緩存的實(shí)例。緩存數(shù)據(jù)是 通過(guò)避免訪問(wèn)持久性存儲(chǔ)器來(lái)提高性能的, 否則會(huì)導(dǎo)致過(guò)多的磁盤訪問(wèn)和過(guò)于頻 繁網(wǎng)絡(luò)數(shù)據(jù)傳輸。 在架構(gòu)設(shè)計(jì)過(guò)程中, 針對(duì)待實(shí)現(xiàn)系統(tǒng)中的實(shí)際業(yè)務(wù)特色, 剖析 出客戶端與中間件中頻繁使用的但又很少變化的數(shù)據(jù)。 通過(guò)一些技術(shù)手段, 將這 些數(shù)據(jù)在合適的時(shí)機(jī) (系統(tǒng)啟動(dòng),用戶登錄,第一次使用等 )以一定的數(shù)據(jù)結(jié)構(gòu)存 放客戶端或者中間件內(nèi)存中。 避免每一次使用都進(jìn)行發(fā)送遠(yuǎn)程調(diào)用請(qǐng)求或者數(shù)據(jù) 庫(kù)訪問(wèn),提高系統(tǒng)的運(yùn)算與處理速度。資源池,對(duì)象池在應(yīng)用系統(tǒng)運(yùn)行過(guò)程中, 特別對(duì)于一個(gè)高并
6、發(fā)的應(yīng)用系統(tǒng)資源的頻繁地創(chuàng)建 都一個(gè)高成本的動(dòng)作, 在架構(gòu)設(shè)計(jì)過(guò)程中對(duì)數(shù)據(jù)庫(kù)連接, 業(yè)務(wù)邏輯組件等高并發(fā), 高成本的對(duì)象與資源采用池化技術(shù), 在應(yīng)用系統(tǒng)啟動(dòng)過(guò)程中以對(duì)象池, 資源池的 方式,初始化到池中,降低頻繁的創(chuàng)建與銷毀,同時(shí)也降低內(nèi)存碎片的產(chǎn)生(4)持續(xù)性的性能管理持續(xù)性的性能管理主要是指, 在系統(tǒng)構(gòu)建過(guò)程中持續(xù)性地性能測(cè)試。 持續(xù)性 能管理的前提條件是有一套完整定義的單元測(cè)試用例, 健壯的測(cè)試框, 以及明確 的,量化的性能需求。除了必不可少的單元測(cè)試,集成測(cè)試,壓力測(cè)試以外,持 續(xù)性的性能管理更突出了自動(dòng)化測(cè)試的重要意義, 自動(dòng)化方式可以創(chuàng)建重復(fù)的測(cè) 試過(guò)程并迅速報(bào)告應(yīng)用代碼的質(zhì)量。
7、只有自動(dòng)化方式才能保證正確地遵循這些測(cè) 試過(guò)程,并且保證準(zhǔn)確和一致地測(cè)試應(yīng)用組件。1.1.2 分層的設(shè)計(jì)方法分層應(yīng)用是將組件等分隔到不同的層中, 每一層中的組件保持內(nèi)聚性, 并且 大致在同一抽象級(jí)別。 每一層都應(yīng)與它下面的各層保持松散耦合, 避免使較低級(jí) 別依賴于較高級(jí)別。通過(guò)分層, 可以限制子系統(tǒng)間的依賴關(guān)系, 使系統(tǒng)以更松散的方式耦合, 從 而更易于維護(hù)。 分布式服務(wù)層依賴較低層, 但是較低層的細(xì)節(jié)不會(huì)顯示在包含應(yīng) 用程序和業(yè)務(wù)邏輯層的較高層中。 應(yīng)用程序開(kāi)發(fā)人員在較高抽象級(jí)別工作時(shí)不必 考慮諸如 TCP/IP 數(shù)據(jù)包和網(wǎng)絡(luò)字節(jié)排序之類的細(xì)節(jié)。它還可以在替換較低層時(shí) 不對(duì)較高層造成任何影響
8、。采用從整體架構(gòu)層次來(lái)看,系統(tǒng)可分為表示層、業(yè)務(wù)邏輯層、數(shù)據(jù)持久層。見(jiàn)下圖:展現(xiàn)邏輯數(shù)據(jù)庫(kù)客戶端WebServerBrowser業(yè)務(wù)邏輯JSPDataBase圖1-1應(yīng)用軟件層次架構(gòu)圖1)表示邏輯(客戶層)為第一層:它的主要功能是實(shí)現(xiàn)用戶交互和數(shù)據(jù)表示,為以后的處理收集數(shù)據(jù),向第二層的業(yè)務(wù)邏輯請(qǐng)求調(diào)用核心服務(wù)處理, 并顯 示處理結(jié)果。2)業(yè)務(wù)邏輯(服務(wù)器組件)為中間層:這些組件由中間件管理,實(shí)現(xiàn)核心 業(yè)務(wù)邏輯服務(wù)并將這些服務(wù)按名字廣播, 管理并接受客戶的服務(wù)請(qǐng)求,向資源管 理器提交數(shù)據(jù)操作,并將處理結(jié)果返回給請(qǐng)求者一一即客戶或其他服務(wù)器。3)數(shù)據(jù)(資源管理器)構(gòu)成模型的第三層。比如關(guān)系數(shù)據(jù)庫(kù),
9、負(fù)責(zé)管理應(yīng) 用系統(tǒng)的數(shù)據(jù)資源,完成數(shù)據(jù)操作。服務(wù)器組件在完成服務(wù)的過(guò)程中通過(guò)資源管 理器存取它管理的數(shù)據(jù),或者說(shuō)請(qǐng)求資源管理器的數(shù)據(jù)服務(wù)。在三層客戶機(jī)/服務(wù)器模式上架構(gòu)的應(yīng)用系統(tǒng)不但具備了大型機(jī)系統(tǒng)穩(wěn)定、 安全和處理能力高等特性,同時(shí)擁有開(kāi)放式系統(tǒng)成本低、可擴(kuò)展性強(qiáng)、開(kāi)發(fā)周期 短等優(yōu)點(diǎn)。對(duì)于其中最關(guān)鍵的業(yè)務(wù)邏輯層,又可以分為控制框架層、業(yè)務(wù)組件層、數(shù)據(jù) 訪問(wèn)層和相關(guān)資源層??刂瓶蚣軐庸芾順I(yè)務(wù)組件的裝配和調(diào)用,是業(yè)務(wù)邏輯層的核心引擎。業(yè)務(wù)組 件層集中了各種實(shí)現(xiàn)業(yè)務(wù)邏輯的組件;數(shù)據(jù)訪問(wèn)層封裝對(duì)數(shù)據(jù)存儲(chǔ)的各類訪問(wèn)操 作;相關(guān)資源層包括了各種相關(guān)應(yīng)用支撐功能,如:緩存、對(duì)象池、線程池、消 息、日志等。
10、控制框架層與相關(guān)資源層構(gòu)成系統(tǒng)的分功能屬性部件,業(yè)務(wù)組件層和數(shù)據(jù)訪 問(wèn)層構(gòu)成系統(tǒng)的功能屬性部件。通過(guò)系統(tǒng)分層,改變了傳統(tǒng)信息系統(tǒng)的大一統(tǒng)結(jié)構(gòu),區(qū)別系統(tǒng)的功能屬性與 非功能屬性,將不同的功能交給相應(yīng)的功能組件來(lái)完成。 在單筆業(yè)務(wù)或者小用戶 量的情況下,分層的系統(tǒng)架構(gòu)并不具備優(yōu)勢(shì),其關(guān)鍵優(yōu)勢(shì)在于對(duì)并發(fā)的大數(shù)據(jù)量 業(yè)務(wù)的響應(yīng)和處理方面,通過(guò)在各層中合理的分布系統(tǒng)壓力,改變了傳統(tǒng)信息系 統(tǒng)壓力集中的缺點(diǎn)。同時(shí),采用分層技術(shù)架構(gòu),可以根據(jù)系統(tǒng)性能的具體需求, 對(duì)不同的層次進(jìn)行有針對(duì)性的優(yōu)化處理。1.1.3業(yè)務(wù)同步處理與異步處理相結(jié)合的系統(tǒng)體系架構(gòu)傳統(tǒng)的業(yè)務(wù)處理模式通常采用直接的請(qǐng)求 /應(yīng)答方式進(jìn)行同步處
11、理,在業(yè)務(wù) 高峰發(fā)生的時(shí)候,由于對(duì)資源的集中使用造成系統(tǒng)的響應(yīng)速度急劇下降。通過(guò)在系統(tǒng)架構(gòu)中加入異步業(yè)務(wù)處理模式的支持,將一些業(yè)務(wù)通過(guò)異步方式放入工作隊(duì) 列中,在系統(tǒng)空閑的時(shí)候再?gòu)年?duì)列中獲取工作任務(wù)進(jìn)行處理,減少對(duì)資源的集中占用,保證在業(yè)務(wù)高峰期的系統(tǒng)響應(yīng)性能。1.1.4緩存、池化技術(shù)的使用在實(shí)際業(yè)務(wù)處理過(guò)程中,數(shù)據(jù)庫(kù)訪問(wèn)、網(wǎng)絡(luò)傳輸以及新建對(duì)象都是成本較高 的資源開(kāi)銷,對(duì)于性能要求很高的業(yè)務(wù)系統(tǒng)來(lái)說(shuō),采用合理的技術(shù)減少高開(kāi)銷的 資源訪問(wèn)是必須考慮的內(nèi)容。采用緩存、池化技術(shù),將頻繁訪問(wèn)的資源放在I/O性能較高的載體上,減少集中的和緩慢的I/O訪問(wèn),從而達(dá)到提高系統(tǒng)性能的目 的。圖1-2緩存、池化
12、技術(shù)1.1.5 分布式業(yè)務(wù)處理模式多層體系結(jié)構(gòu)將業(yè)務(wù)邏輯與數(shù)據(jù)存儲(chǔ)和顯示分開(kāi),使得系統(tǒng)層次更加分明, 系統(tǒng)魯棒性、 可擴(kuò)充性、安全性得到大大提高, 同時(shí)它也使得分布式計(jì)算得到廣 泛應(yīng)用,使得系統(tǒng)的性能由于采用分布式計(jì)算而大大提高。采用分布式計(jì)算有著多方面的技術(shù)優(yōu)勢(shì),包括:邏輯封裝性這是分布式模式中最具誘惑力的特征, 這種模式將以往 C/S 結(jié)構(gòu)中全部由客 戶機(jī)完成的事務(wù)邏輯中的一部分從客戶端分開(kāi)。 當(dāng)使用戶需要?jiǎng)討B(tài)改變一個(gè)應(yīng)用 軟件的商業(yè)邏輯規(guī)則時(shí), 只要改變一個(gè)應(yīng)用服務(wù)器的程序即可, 而不需要更改客 戶端用戶界面, 這樣就無(wú)需中斷用戶, 為最終用戶重新發(fā)放新的界面軟件或親自 上門為其安裝調(diào)試
13、并重新培訓(xùn)用戶, 提高了工作效率。這種多級(jí)模式對(duì)于需經(jīng)常、 快速改變應(yīng)用程序的行業(yè)很有幫助。性能性能的提高是三級(jí)模式最終被用戶采用的主要原因。 將復(fù)雜的應(yīng)用和商業(yè)邏 輯分離出來(lái)由專門的一臺(tái)或多臺(tái)應(yīng)用服務(wù)器來(lái)處理, 既可以提高應(yīng)用的執(zhí)行速度, 也可以減少網(wǎng)絡(luò)調(diào)用的通訊量。 不過(guò)這種性能提高是有一定代價(jià)的。 這就是開(kāi)發(fā) 時(shí)要將應(yīng)用邏輯分割為客戶端邏輯和服務(wù)器端邏輯,這就增加了設(shè)計(jì)的復(fù)雜性。安全性管理在分布式計(jì)算模式中, 由于所有的商業(yè)邏輯都駐留在服務(wù)器端, 信息管理部 門就可以十分方便地監(jiān)控服務(wù)器的運(yùn)行情況, 很容易地控制訪問(wèn)服務(wù)器以及與服 務(wù)器應(yīng)用打交道人員的數(shù)量。 這可以大大簡(jiǎn)化管理員對(duì)系統(tǒng)的
14、管理, 減輕系統(tǒng)維 護(hù)的工作量,并確保系統(tǒng)的可靠運(yùn)行。針對(duì)金財(cái)工程的特點(diǎn), 在構(gòu)架系統(tǒng)時(shí), 應(yīng)充分考慮分布式計(jì)算的特點(diǎn), 在數(shù) 據(jù)大集中的模式, 通過(guò)應(yīng)用服務(wù)器及其群集技術(shù), 將計(jì)算邏輯合理分布以保證系 統(tǒng)的性能。1.2從應(yīng)用軟件解決系統(tǒng)性能問(wèn)題1.2.1應(yīng)用軟件的設(shè)計(jì)應(yīng)基于構(gòu)件,盡量簡(jiǎn)單化應(yīng)用系統(tǒng)的設(shè)計(jì)應(yīng)利用基于構(gòu)件的開(kāi)發(fā)理念,增加程序代碼的可重用性。此外,程序應(yīng)使用簡(jiǎn)單的邏輯和算法來(lái)獲取結(jié)果, 避免復(fù)雜以及深層次的對(duì)象調(diào)用, 提高運(yùn)行效率,以獲得快速的相應(yīng)速度。1.2.2應(yīng)用軟件應(yīng)該以分階段的方式來(lái)構(gòu)件化已存在的遺留系統(tǒng)歷史遺留系統(tǒng)的重構(gòu)是高風(fēng)險(xiǎn)和大工作量的任務(wù),同時(shí)與遺留系統(tǒng)的業(yè)務(wù)和 數(shù)
15、據(jù)銜接是一個(gè)對(duì)應(yīng)用軟件性能影響重大的環(huán)節(jié)。因此,最好以分階段的方式逐 步用新的構(gòu)件替換遺留系統(tǒng)的各個(gè)組成部分,以降低風(fēng)險(xiǎn),減少工作量,逐步提高系統(tǒng)的相應(yīng)速度。1.2.3應(yīng)用軟件編寫的質(zhì)量直接關(guān)系到系統(tǒng)的性能。編程的質(zhì)量有經(jīng)驗(yàn)的積累也有個(gè)人的技巧,在一個(gè)用軟件整個(gè)開(kāi)發(fā)過(guò)程的指 導(dǎo)思想是:“按照規(guī)范來(lái)進(jìn)行開(kāi)發(fā),而不是按照個(gè)人習(xí)慣,應(yīng)用服務(wù)器等其他因 素來(lái)進(jìn)行開(kāi)發(fā)”。與此相對(duì)應(yīng)我公司專門針對(duì)開(kāi)發(fā)工具以及使用的數(shù)據(jù)庫(kù)的特點(diǎn) 制定了相關(guān)規(guī)范,見(jiàn)下表:1Pascal編碼規(guī)范PR_C_2000_0012.Java編碼規(guī)范PR_C_2001_0023.PowerBuilder編碼規(guī)范PR_C_1999_003
16、4.Visual C+編碼規(guī)范PR_C_1999_0045.Visual Basic 編碼規(guī)范PR_C_1999_0056.數(shù)據(jù)庫(kù)服務(wù)器段軟件開(kāi)發(fā)規(guī)范PR_C_2000_0067.Delphi編碼規(guī)范PR_C_2001_0078C+&C編碼規(guī)范PR_C_2001_008根據(jù)我們的經(jīng)驗(yàn),在多層體系結(jié)構(gòu)的業(yè)務(wù)應(yīng)用系統(tǒng)(如電信、社保系統(tǒng))的 開(kāi)發(fā)中,關(guān)鍵是數(shù)據(jù)庫(kù)的操作編程以及涉及到中間件的編程將對(duì)系統(tǒng)性能影響很 大。因此本節(jié)將從數(shù)據(jù)SQL和中間兩方面簡(jiǎn)述應(yīng)用軟件編程提高性能幾個(gè)注意點(diǎn)。1.2.4 應(yīng)用軟件性能監(jiān)控 ,保障組件設(shè)計(jì)除了應(yīng)用軟件本身的缺陷外,運(yùn)行過(guò)程中業(yè)務(wù)模型的自然變化或人為更改
17、, 系統(tǒng)環(huán)境的改變, 以及應(yīng)用軟件執(zhí)行過(guò)程中內(nèi)在的變化特性, 使得應(yīng)用性能問(wèn)題 在生產(chǎn)環(huán)境仍然普遍發(fā)生。 根據(jù)應(yīng)用軟件的業(yè)務(wù)特點(diǎn), 結(jié)合技術(shù)構(gòu)架的實(shí)現(xiàn)方案, 在應(yīng)用軟件中實(shí)施與部署性能監(jiān)控, 分析組件,發(fā)現(xiàn)應(yīng)用軟件中存在的性能問(wèn)題, 借助于性能監(jiān)控, 分析組件可以快速定位與解決性能問(wèn)題, 但并不能避免應(yīng)用性 能問(wèn)題不發(fā)生。1.2.5應(yīng)用軟件數(shù)據(jù)庫(kù)SQL的編程注意事項(xiàng)確定一個(gè)SQL語(yǔ)句的書寫規(guī)范,以提高SQL語(yǔ)句在Oracle的高速緩存中 的命中概率;降低單個(gè)SQL語(yǔ)句的復(fù)雜度,保證SQL的執(zhí)行效率。對(duì)于復(fù)雜SQL語(yǔ)句, 采用轉(zhuǎn)換成PL/SQL塊或其他方式進(jìn)行處理;合理設(shè)計(jì)應(yīng)用程序,盡量降低所需
18、要執(zhí)行的SQL語(yǔ)句數(shù)量,降低與數(shù)據(jù)庫(kù) 的大量交互;采用綁定變量的方式,提高SQL執(zhí)行效率;盡量采取數(shù)據(jù)庫(kù)中本身具有的功能來(lái)實(shí)現(xiàn)相關(guān)處理, 而不是通過(guò)自己?jiǎn)为?dú) 開(kāi)發(fā)代碼來(lái)處理;對(duì)應(yīng)用程序中的所有SQL語(yǔ)句進(jìn)行整體的規(guī)劃管理,以盡可能的發(fā)現(xiàn)存在 缺陷的SQL語(yǔ)句; 對(duì)于每一個(gè)事務(wù),都盡量降低事務(wù)的大小,以提高效率; 合理使用SQL語(yǔ)句的hints,以提高SQL語(yǔ)句執(zhí)行效率; 根據(jù)現(xiàn)場(chǎng)實(shí)際情況,定期對(duì)主要 SQL語(yǔ)句進(jìn)行優(yōu)化。1.2.6應(yīng)用軟件中間件編程注意事項(xiàng)在系統(tǒng)框架完整、類任務(wù)明確、單一的前提下盡量減少框架中類的調(diào)用 層次使用DAO代替EntityBean訪問(wèn)數(shù)據(jù)庫(kù)業(yè)務(wù)層的 EJB入口采用 S
19、tateless SessionBean避免使用 statefull session bea n盡量避免EJB的嵌套調(diào)用在系統(tǒng)啟動(dòng)初始化過(guò)程中緩存 ejb的home接口適當(dāng)?shù)厥褂脭?shù)據(jù)庫(kù)的存儲(chǔ)過(guò)程來(lái)提高效率一些簡(jiǎn)單讀取的請(qǐng)求使用 FastLa neReade模式在WEB及APP層做集群利用應(yīng)用服務(wù)器提供的conn ection pool連接數(shù)據(jù)庫(kù)1.3從平臺(tái)部署解決系統(tǒng)性能問(wèn)題設(shè)計(jì)再好的軟件系統(tǒng)也需要系統(tǒng)平臺(tái)配合。因此,對(duì)于金財(cái)工程來(lái)講,對(duì)整個(gè)集成平臺(tái)的優(yōu)化是非常重要的。一般來(lái)講部署平臺(tái)的優(yōu)化是隨著集成工作每個(gè) 階段來(lái)展開(kāi)的,這幾個(gè)階段主要涉及到平臺(tái)部分的規(guī)劃、安裝、配置與調(diào)優(yōu)、應(yīng) 用軟件部署與
20、壓力測(cè)試和上線前準(zhǔn)備等組成,應(yīng)用軟件運(yùn)行性能的好壞很大程度 上取決于這些階段平臺(tái)優(yōu)化與否。1.3.1規(guī)劃階段規(guī)劃階段是最重要的階段,這個(gè)階段就如同應(yīng)用系統(tǒng)架構(gòu)一樣重要。 如果規(guī) 劃不好,對(duì)后續(xù)的工作影響很大,再調(diào)優(yōu)也不起作用。對(duì)通用平臺(tái)各部分的規(guī)劃 涉及到具體平臺(tái)相關(guān)技術(shù)的實(shí)現(xiàn)方式和方法,要根據(jù)實(shí)際要求采用合理性技術(shù)等。 本節(jié)描述的內(nèi)容包括目前主要的流行平臺(tái)情況。規(guī)劃階段優(yōu)化任務(wù)及問(wèn)題解答優(yōu)化建議備注規(guī)劃階段優(yōu)化任務(wù)及問(wèn)題解答優(yōu)化建議備注服務(wù)器服HPIBM、SUN等主機(jī)是否采用分 區(qū)? 是硬件分區(qū)還是軟件分區(qū)?1、如果業(yè)務(wù)模式確定,業(yè)務(wù)量估計(jì) 基本準(zhǔn)確,建議采用硬件分區(qū);2、如果業(yè)務(wù)情況變動(dòng)很
21、大或不可預(yù) 測(cè),建議軟件分區(qū)。hp 一般根據(jù)用 戶要求出廠就 做好硬分區(qū), ibm 一般優(yōu)勢(shì) 上在軟分區(qū) 上,動(dòng)態(tài)調(diào)整 能力較強(qiáng)。同構(gòu)還是異構(gòu)做 集群?高性能主 機(jī)和低性能主機(jī) 可否做集群?1、一般做集群都是同構(gòu)的,也就是 說(shuō)操作系統(tǒng)版本要求一致,這樣集群 軟件才能運(yùn)行起來(lái);2、如果可能的話盡量采用相同的主機(jī)做集群,這樣對(duì)H/A方式來(lái)說(shuō)可以很快遷移到備 機(jī)上去,對(duì)rac方式可頭現(xiàn)負(fù)載均 衡。由于條件無(wú)法 提供同性能機(jī) 型,則需在備 機(jī)上配置一套 低配置的備用 參數(shù)。是雙臺(tái)做并行還是單臺(tái)高性能做H/A?1、單業(yè)務(wù)建議高性能單機(jī);2、多業(yè)務(wù)類型建議rac模式目前常見(jiàn)的是雙機(jī)做RAC應(yīng)用服務(wù)器和數(shù)據(jù)
22、庫(kù)服務(wù)器配置選擇方法1、一般應(yīng)用服務(wù)器選擇多CPU多線程的主機(jī)類型,cpu和內(nèi)存比一般 為1:2即可;2、數(shù)據(jù)庫(kù)服務(wù)器多選 擇高主頻、高性能多 CPU類型,cpu 和內(nèi)存的比一般至少 1 :2,取好能1 : 4或以上。對(duì)業(yè)務(wù)線一般數(shù)據(jù)庫(kù)和應(yīng)用服務(wù)器都建議采用ibm/hp小型機(jī),如果是 核心平臺(tái),且 中等城市規(guī)模 至少配置高端8c/16g雙機(jī)熱備,如果對(duì)人 城市建議至少規(guī)劃階段優(yōu)化任務(wù)及問(wèn)題解答優(yōu)化建議備注是8c/16g 的rac, 或者是16c/32g 的雙機(jī)熱備。-/存儲(chǔ)交換存磁盤陣列和光纖交換機(jī)存儲(chǔ)的選擇建議陣列配置大讀寫CACHE至少2- 4g,越大越好,15k轉(zhuǎn)的fc磁盤,3- 4g以
23、上的通道速度。hp eva 系歹U主要靠多盤條帶 技術(shù),硬盤速 度很關(guān)鍵raid 的選擇建議核心業(yè)務(wù)采用raidO+1,非核心采用raid5,可根據(jù)陣列情況配置多少塊物理盤做一個(gè)raid陣列不同raid技術(shù)不冋,大 部分都支持通用raid技術(shù),不過(guò)有些陣列不支持空間的劃分空間劃分要根據(jù)業(yè)務(wù)滿足3-5年設(shè)計(jì)要求,一般根據(jù)需要設(shè)定,可劃分 為業(yè)務(wù)卷、鏡像卷(如果有存儲(chǔ)級(jí)鏡 像)、備份卷(對(duì)業(yè)務(wù)系統(tǒng)的備份) 和預(yù)留空間lun設(shè)置大小?lun設(shè)置大小主要取決于陣列盤的 大小、做成raid后整個(gè)空間大小以 及操作系統(tǒng)能管理的卷組中的物理 卷個(gè)數(shù),對(duì)于業(yè)務(wù)數(shù)據(jù)300g-500g的系統(tǒng),可設(shè)幾個(gè)大點(diǎn)的80g
24、-100g的盤,同時(shí)做幾個(gè)小點(diǎn)的盤如 3g-30g,做為備份和系統(tǒng)使用。存儲(chǔ)光纖交換機(jī)目前有1g/2g/4g端口速度的存規(guī)劃階段優(yōu)化任務(wù)及問(wèn)題解答優(yōu)化建議備注的選擇使用儲(chǔ)交換,盡量選擇與主機(jī) HBA卡和陣 列通道相匹配的交換機(jī)網(wǎng)絡(luò)設(shè)備網(wǎng)路由、交換、線路、 防火墻、網(wǎng) 閘內(nèi)網(wǎng)外網(wǎng)劃分總體可根據(jù)業(yè)務(wù)網(wǎng)和外網(wǎng)進(jìn)行劃分,對(duì)不同業(yè)務(wù)可進(jìn)行子網(wǎng)隔離,或通過(guò)路由訪問(wèn)。防火墻、網(wǎng)閘的使用對(duì)外網(wǎng)或非局域?qū)>W(wǎng)訪問(wèn)要設(shè)置防火墻,甚至網(wǎng)閘線路帶寬的選擇盡量米用高帶寬穩(wěn)定線路,建議有大 量往返數(shù)據(jù)流量的業(yè)務(wù)至少采用2m以上線路。操作 系 統(tǒng)操HPIBM、SUN等操作系統(tǒng)版本選擇1、ibm aix 5.2 04 或 ai
25、x5.3 02以上,否則對(duì) oracle 10gr2 會(huì)有問(wèn) 題 2、hp HP-UX B.11.23.0409 or later ,這個(gè)版本對(duì)安騰和 PA-RISC 芯片都可用。低版本的11.23 ( v2版)只對(duì)安騰,11.11 (v1版)只對(duì) PA-RISC。3、solaris9/10根文件系統(tǒng)劃分預(yù)留建議根卷在操作系統(tǒng)安裝前就規(guī)劃好,把根卷中的各文件系統(tǒng)擴(kuò)展好, 一般73g盤可參考如下配置:/arch125g用于oracle歸檔/ 2g/tmp 5g擴(kuò)大臨時(shí)文件系統(tǒng)/home 3g/opt 20g用于oracle介質(zhì)安裝/usr 5g/var 2gSwap 8g規(guī)劃階段優(yōu)化任務(wù)及問(wèn)題解
26、答優(yōu)化建議備注數(shù)H/A是主備式的,rac是并仃的,是數(shù)否采用rac基于以下原因:1、多應(yīng)據(jù)庫(kù)H/A 還是 rac ?用系統(tǒng),而且應(yīng)用間是耦合連接的。尸廣 tn 【.佬亍廠丄七cPSA 4-rr r"2、需要高可用計(jì)算環(huán)境。3、單機(jī)丿無(wú)法支撐應(yīng)用運(yùn)行。缺省是文件系統(tǒng)實(shí)現(xiàn)數(shù)據(jù)庫(kù)應(yīng)用,采Oracle文件系統(tǒng)還是裸用裸卷有兩個(gè)原因:1、使用rac。2、文件?數(shù)據(jù)中含有二進(jìn)制對(duì)象, 如圖像、聲音、視頻等。選擇數(shù)據(jù)庫(kù)版本基于以下考慮:1、應(yīng)用版本要求。2、客戶購(gòu)買現(xiàn)狀。3、9i還是10g?盡量使用10g,以增強(qiáng)管理,提高效率。中bea采用集群的優(yōu)點(diǎn):1、提供單點(diǎn)發(fā)布中weblogic、應(yīng)用能力。
27、2、多機(jī)、多server通過(guò)間ibm一個(gè)管理臺(tái)進(jìn)行管理。3、在cluster件websphere單機(jī)運(yùn)行還是集server間提供會(huì)話復(fù)制能力,確保及等中間件,群配置?會(huì)話級(jí)failover 能力。4、通過(guò)軟代負(fù)f5等負(fù)載理可實(shí)現(xiàn)負(fù)載均衡的功能。缺點(diǎn):1、載均衡設(shè)備購(gòu)買昂貴。2、在配置f5后,重要性均下降,尤其當(dāng)配置4個(gè)以下的server衡時(shí)。器采用軟代理還是如果條件允許盡可能采用負(fù)載均衡負(fù)載均衡器?器規(guī)劃階段優(yōu)化任務(wù)及問(wèn)題解答優(yōu)化建議備注集如果米用oracle rac ,就要配置類集HPMC/ServiceGuard似 HP-UX 11i v1/v2 Serviceguard群并行還是HA?R
28、AC PCL LTU的模塊,否則無(wú)法安裝軟oracle 并行版。件HACMPhacmp要和aix 版本及oracle 版本ibm5.1/5.2/5.3版相匹配,可參考 oracle相應(yīng)版本的本問(wèn)題主機(jī)環(huán)境需求SUNSUN ClusterSyma ntVeritas Cluster這幾個(gè)平臺(tái)用的不多,參考o(jì)racleecSystem安裝配置文檔的平臺(tái)部分和對(duì)應(yīng)平LinuxLVS臺(tái)操作系統(tǒng)cluster軟件要求。RedhatRedhat Clusteroracle10g 新推出的cluster 軟件,Oracle CRS 是否它可以單獨(dú)管理rac實(shí)例,也可以和Oracle誇"Wo 需?其
29、它主機(jī)主機(jī) cluster軟件共同管理,有多種實(shí)現(xiàn)方式。:備HP備Data份Protector這些備份軟件功1、建議首先要確定備份內(nèi)容:是否虛擬磁帶與IBM能類似,主要考慮包括整庫(kù)、歸檔和文件?2、要確定庫(kù)需要另外的恢Tivoli土IT14【夂/八七左七備份的容量和可能的增量。3、要確軟件和磁盤陣規(guī)劃備份方案方復(fù)Legato法定備份窗口,也即備份可用時(shí)間段。列軟NetWorker件Syma ntecn etbackup遠(yuǎn)Syma ntec軟件方式容災(zāi)一般廠商實(shí)施,是一種利用軟件在本程vvr地或異地實(shí)現(xiàn)邏輯卷的鏡像復(fù)制規(guī)劃階段優(yōu)化任務(wù)及問(wèn)題解答優(yōu)化建議備注災(zāi)備HP CA存儲(chǔ)級(jí)容災(zāi)hp公司容災(zāi)產(chǎn)品
30、,一種保存數(shù)據(jù)備 份的最常用做法,可同步可異步,對(duì) 系統(tǒng)影響較小,對(duì)于數(shù)據(jù)級(jí)備份是首 選。OracleDataGuard軟件方式容災(zāi)oracle自帶軟件容災(zāi)解決方案,對(duì) 帶寬要求不咼,需要應(yīng)用級(jí)容災(zāi)的情 況比較適合。EMC SRDF存儲(chǔ)級(jí)容災(zāi)EMC公司容災(zāi)產(chǎn)品,一種保存數(shù)據(jù)備 份的最常用做法,可同步可異步,對(duì) 系統(tǒng)影響較小,對(duì)于數(shù)據(jù)級(jí)備份是首 選。IBM PPDR存儲(chǔ)級(jí)容災(zāi)ibm公司容災(zāi)產(chǎn)品,一種保存數(shù)據(jù)備 份的最常用做法,可同步可異步,對(duì) 系統(tǒng)影響較小,對(duì)于數(shù)據(jù)級(jí)備份是首 選。IT運(yùn)維管理NeusoftNeteye SOC系統(tǒng)監(jiān)控產(chǎn)品這些都是系統(tǒng)監(jiān)控、運(yùn)行維護(hù)產(chǎn)品, 一般廠商實(shí)施,建議有規(guī)模
31、的數(shù)據(jù)和 網(wǎng)絡(luò)中心都要安裝類似設(shè)備, 能夠?qū)?主機(jī)、數(shù)據(jù)庫(kù)、網(wǎng)絡(luò)、中間件、應(yīng)用 等方方面面都實(shí)施監(jiān)控,及時(shí)發(fā)現(xiàn)并 解決問(wèn)題。HPOpe nviewCAUn ice nterIBMTivoli表1-11.3.2實(shí)施階段實(shí)施階段優(yōu)化包括對(duì)軟、硬件的集成過(guò)程中涉及到具體技術(shù)的實(shí)現(xiàn)方式和 方法,采用技術(shù)的合理性等。本節(jié)描述的內(nèi)容包括目前主要的流行平臺(tái)情況安裝階段性能相關(guān)內(nèi)容優(yōu)化建議存儲(chǔ)根卷組、邏輯卷的創(chuàng)建卷組、邏輯卷創(chuàng)建考慮根卷組大小一般視主機(jī)帶的缺省盤大小而定,一 般為73g,可按規(guī)劃階段內(nèi)容進(jìn)行安裝,適當(dāng)留 點(diǎn)剩余空間以備臨時(shí)用。如果是136g盤,可將oracle 本地歸檔,temp、var、sw
32、ap等邏輯卷適 當(dāng)放大。存應(yīng)用卷組、應(yīng)用邏輯卷的創(chuàng)建卷組命名、大小,各主要邏輯卷命名、大小?業(yè)務(wù)卷組可任意命名,如:vg_ora,卷組的大小初始建設(shè)按滿足2-3年分配,額外預(yù)留2年左右 的lun空間;邏輯卷命名可按城市拼音字頭加上 用途命名,如:tjdataO1代表天津數(shù)據(jù) 01號(hào)文件,tjindex01代表天津索引01號(hào)文件。邏輯卷大小一般根據(jù)總業(yè)務(wù)數(shù)據(jù)量來(lái)定,100g以內(nèi)業(yè)務(wù)數(shù)據(jù),每個(gè)邏輯卷可按5g左右,200-500g可按10g-20g 個(gè)文件。操作 系 統(tǒng)操HP、IBM、SUN等操心系統(tǒng)的安裝ibmaix5.1/5.2/5.3安裝版本及patch問(wèn)題1、一般操作系統(tǒng)版本和主機(jī)系統(tǒng)匹配的
33、,不建議老主機(jī)安裝新版操作系統(tǒng),新安裝系統(tǒng)盡量 安裝5.3版。2、盡量安裝每個(gè)版本的最高 patch, 尤其對(duì)數(shù)據(jù)庫(kù)安裝文檔上要求的平臺(tái)patch需求hp unix 11i v1/11iv2安裝版本及patch問(wèn)題v1和v2分別適應(yīng)pa risc及安騰兩種芯片的操 作系統(tǒng)系統(tǒng),新版v2能兼容兩種芯片,建議安裝 這個(gè)版本,將這個(gè)版本的最新大patch打上。sun solaris8/9/10安裝版本及 patch問(wèn)題新主機(jī)安裝咼版本,找最新patch創(chuàng)建根鏡像盤問(wèn)題建議在hp和ibm安裝操作系統(tǒng)時(shí)建立根盤卷鏡 像,保證根盤出現(xiàn)引導(dǎo)等其它問(wèn)題時(shí)系統(tǒng)仍能啟 動(dòng)安裝階段性能相關(guān)內(nèi)容優(yōu)化建議集群 軟 件H
34、P MC/SGmc/sgA.11.11/A.11.13問(wèn)題注意如果使用 mc/sg管理oracle rac集群,要使用安裝有并行集群功能A.11.13或更咼版。IBM HACMPhacmp 5.1/5.2/5.3問(wèn)題hacmp版本和aix版本及oracle版本需要匹配,ibm工程師在安裝時(shí)要確定數(shù)據(jù)庫(kù)數(shù)ORACLE字符集1、數(shù)據(jù)庫(kù)字符集:ZHS16GBK2、本地字符集:AL16UTF16sga酉己置30-40%物理內(nèi)存,根據(jù)并發(fā)用戶數(shù)不冋,如果并 發(fā)多,剩余物理內(nèi)存需要多些,sga就可少些。pga酉己置1-3g,根據(jù)oracle數(shù)據(jù)庫(kù)版本不同,9i/10g可設(shè)自動(dòng)方式。另外,9i也可設(shè)手工配置
35、,如果手工配置可對(duì)sort_area_size 設(shè)成1-5m。數(shù)據(jù)庫(kù)、實(shí)例命名可自定義數(shù)據(jù)庫(kù)名如:orci ,實(shí)例名如:orcl1process 、sort_area_size 等參數(shù)對(duì)兩層業(yè)務(wù): process禾口 sort area size 不同。日志組、成員個(gè)數(shù),大???至少3個(gè)組,每組2個(gè)成員,大小100m9i/10g參數(shù)設(shè)置區(qū)別參考9i和10g在配置內(nèi)存參數(shù)時(shí)最大的區(qū)別是10g對(duì)sga的自動(dòng)管理。也既10g在9i對(duì)pga自動(dòng)管理 的基礎(chǔ)上實(shí)現(xiàn)了 sga的自動(dòng)管理,只要給一個(gè)最 大值即可。數(shù)據(jù)庫(kù)系統(tǒng)表空間設(shè)置1、system 表空間 1g , undo 表空間 8 12g, temp表
36、空間10-20g ; 2、用戶數(shù)據(jù)和索引表空間可根 據(jù)實(shí)際情況創(chuàng)建,對(duì)100g 200g以下數(shù)據(jù)量系統(tǒng),文件大小可設(shè) 5 8g左右;對(duì) 300g-500g以 上的建議10g-15g 一個(gè)文件。不建議數(shù)據(jù)文件過(guò)安裝階段性能相關(guān)內(nèi)容優(yōu)化建議大,以防過(guò)大導(dǎo)致數(shù)據(jù)文件丟失及恢復(fù)時(shí)間過(guò)慢。中 間 件 與 負(fù) 載 均 衡 器中應(yīng)用中間件中間件版本(介質(zhì))問(wèn)題1、檢查好介質(zhì),通常都疋bea發(fā)過(guò)來(lái)的光盤,但 安裝時(shí)候經(jīng)常發(fā)現(xiàn)不對(duì),需要到網(wǎng)上下載,一般 網(wǎng)上下載都是沒(méi)有問(wèn)題的,但一定要下載與平臺(tái) 匹配的軟件,尤其 hp平臺(tái)分安騰版和 PA RISC 版,很多項(xiàng)目都搞錯(cuò),導(dǎo)致系統(tǒng)無(wú)法安裝成功。2、 一般分兩個(gè)版本
37、:bin 版,如: server920_zh_CNinux32.bin,下載后 ftp 到系統(tǒng)上可直接運(yùn)行;jar版需要你用java加載如: java-jar-Xmx2048mserver921 ccjk generic.jar。3、解壓工具, 下載的軟件往往都是壓縮的,需要使用類似下面辦 法處理:gunzip Java5_64.sdk.tar.gz(解壓后產(chǎn)生文件 Java5.sdk.tar),然后 tar xvfJava5.sdk.tarjdk版本問(wèn)題1、一定要安裝平臺(tái)自己的 jdk,如hp平臺(tái)安裝 hp jdk , ibm平臺(tái)安裝ibm jdk 。 2、一疋要安裝 中間件版本要求的jdk
38、版本,包括小patch版。通常是 /usr/java14、 /usr/java5、/usr/java5_64。3、一定要安裝應(yīng)用軟件要求的版本。安裝階段性能相關(guān)內(nèi)容優(yōu)化建議安裝環(huán)境冋題1、創(chuàng)建系統(tǒng)用戶。2、合理配置文件系統(tǒng)包括/tmp 大小,預(yù)留1g,中間件安裝點(diǎn)、大小確定,如/opt , 預(yù)留2g°3、測(cè)試平臺(tái)jdk是否安裝及版本?女口:Java version 。 4、確疋是否安裝中文子符集, 每個(gè)環(huán)境做法不完全一樣,如hp環(huán)境做法為:#vi /etc/rc.co nfig.d/LANG默認(rèn) LANG=C;EXPORT LANG改為:LANG=zh_CN.hp15CN;expor
39、t LANG 在 ORACLE!戶下,vi .profile添加上述內(nèi)容增加下面這行到/etc/profilestty -istrip -parity cs8集群安裝問(wèn)題1、確定集群主管理節(jié)點(diǎn),在此節(jié)點(diǎn)安裝和配 置集群,其它節(jié)點(diǎn)只安裝軟件即可。2、所有物理 安裝節(jié)點(diǎn)必須配置缺省網(wǎng)關(guān)3、使用weblogic軟件代理對(duì)核心業(yè)務(wù)線不適合4、unix環(huán)境盡量使用nohup方式啟動(dòng)各進(jìn)程5、盡量米用f5等 負(fù)載均衡器做分發(fā)。f5安裝問(wèn)題一般f5會(huì)安裝在應(yīng)用服務(wù)器前,如果兩臺(tái)可按主 備方式。遠(yuǎn)程 災(zāi) 備遠(yuǎn)Syma ntec對(duì)應(yīng)用級(jí)容災(zāi)要做遠(yuǎn)程容災(zāi)應(yīng)用級(jí)測(cè)試一般廠商到場(chǎng)安裝,建議進(jìn)行演習(xí)測(cè)試。HPOracl
40、eITNeusoftNeteye SOC需要提供監(jiān)控內(nèi)容部分需要討論確認(rèn)具體監(jiān)控內(nèi)容:1、主機(jī)cpu、內(nèi)存、i/o等;2、編寫對(duì)中間件、數(shù)據(jù)庫(kù)、應(yīng)用的監(jiān)控腳本安裝階段性能相關(guān)內(nèi)容優(yōu)化建議運(yùn) 維 管 理HPOpenview確定CAUn ice nterIBMTivoli備份Syma ntec備 netbackp備份實(shí)施內(nèi)容確疋1、創(chuàng)建幾個(gè)備份腳本,包括全備份,歸檔備,文 件備等。2、演習(xí)測(cè)試ibm tsmHP dataprotector1.3.3配置與優(yōu)化階段這個(gè)階段是在平臺(tái)環(huán)境基本搭建好后必須開(kāi)展的工作,也是在應(yīng)用部署前首 要的任務(wù)。本節(jié)提供的都是多年來(lái)在建設(shè)大量項(xiàng)目中的經(jīng)驗(yàn)積累,涉及多種軟、
41、 硬件平臺(tái)的優(yōu)化。通過(guò)這種配置、優(yōu)化后對(duì)常見(jiàn)大型應(yīng)用可基本保證不出大的問(wèn) 題。1.3.4應(yīng)用部署與測(cè)試階段這個(gè)階段是在軟件和集成都完成后,把軟件部署在新的集成平臺(tái)上并做壓力 測(cè)試的過(guò)程。在這個(gè)過(guò)程中需要對(duì)現(xiàn)有的環(huán)境做進(jìn)一步優(yōu)化。上線前準(zhǔn)備階段這個(gè)階段是上線前的對(duì)系統(tǒng)做最后檢查的階段。 需在各方面條件都滿足要求的條件下才能上線1.4 系統(tǒng)性能調(diào)優(yōu)實(shí)用技術(shù)性能優(yōu)化有很多技術(shù), 包括各個(gè)廠家的技術(shù), 也包括在實(shí)際調(diào)優(yōu)過(guò)程中積累 的經(jīng)驗(yàn)。比如在數(shù)據(jù)庫(kù)設(shè)計(jì),如:表和索引等設(shè)計(jì)的時(shí)候,充分利用數(shù)據(jù)庫(kù)的特 色和性能,使程序運(yùn)行效率最好;中間件也是一樣, java 程序開(kāi)發(fā)的時(shí)候往往也 會(huì)利用應(yīng)用服務(wù)器的特性
42、使程序效率最高。 另外,對(duì)各平臺(tái)軟、 硬件及應(yīng)用性能 的監(jiān)控和性能診斷能力已成為系統(tǒng)整體性能的關(guān)鍵保障。下面將分別展開(kāi)1.4.1 數(shù)據(jù)庫(kù)配置及優(yōu)化方法數(shù)據(jù)庫(kù)是應(yīng)用的核心, 做好數(shù)據(jù)庫(kù)的設(shè)計(jì)與優(yōu)化是保證系統(tǒng)性能的關(guān)鍵。 數(shù) 據(jù)庫(kù)的設(shè)計(jì)和優(yōu)化通常包括如下內(nèi)容:數(shù)據(jù)庫(kù)的設(shè)計(jì),包括表的設(shè)計(jì)、索引的設(shè)計(jì)等。表的設(shè)計(jì)要兼顧靈活性 和易用性;根據(jù)表、索引的設(shè)計(jì)情況,估算每個(gè)表的基準(zhǔn)數(shù)據(jù)量及大小,還有表數(shù) 據(jù)的增長(zhǎng)情況,合理設(shè)計(jì)每個(gè)表的參數(shù)值。對(duì)于數(shù)據(jù)量大的表,采用分 區(qū)表和物化視圖等技術(shù),以及在設(shè)計(jì)上考慮歷史表等方法來(lái)提高性能; 根據(jù)表、索引的設(shè)計(jì)情況,合理設(shè)計(jì)表空間的大小、在磁盤上的分布以 及相關(guān)的參數(shù);
43、 合理調(diào)整數(shù)據(jù)庫(kù)的初始化參數(shù)以及操作系統(tǒng)的內(nèi)核參數(shù)等; 合理規(guī)劃客戶端 / 連接池對(duì)數(shù)據(jù)庫(kù)的連接數(shù)目; 根據(jù)現(xiàn)場(chǎng)實(shí)際情況,定期監(jiān)測(cè)和檢查數(shù)據(jù)庫(kù)的使用情況,并對(duì)不合理參 數(shù)做出調(diào)整。同時(shí),也定期對(duì)數(shù)據(jù)庫(kù)中的碎片進(jìn)行整理。本系統(tǒng)規(guī)模大(海量數(shù)據(jù)) ,連接點(diǎn)、實(shí)時(shí)性要求高,因此如何處理海量數(shù) 據(jù),是保證系統(tǒng)性能的關(guān)鍵。本節(jié)根據(jù)海量數(shù)據(jù)的特點(diǎn)闡述系統(tǒng)性控制措施。本項(xiàng)目采用 Oracle 數(shù)據(jù)庫(kù),因此,數(shù)據(jù)系統(tǒng)性能的控制將結(jié)合 Oracle 展開(kāi)。 “海量”數(shù)據(jù)庫(kù)的概念一直在不斷變化, 1995 年時(shí),容量大于 100GB 的數(shù) 據(jù)庫(kù)就被認(rèn)為是大型數(shù)據(jù)庫(kù)。僅僅幾年之后,數(shù)萬(wàn)億字節(jié)的數(shù)據(jù)庫(kù)已投入市場(chǎng)。 V
44、LDB是超大型數(shù)據(jù)庫(kù)的(very large database簡(jiǎn)稱。141.1 分區(qū)表和索引(partition table and index) 技術(shù)根據(jù)實(shí)際經(jīng)驗(yàn),在一個(gè)大數(shù)據(jù)庫(kù)中,數(shù)據(jù)庫(kù)空間的絕大多數(shù)是被少量的表所 占有。如何簡(jiǎn)化大數(shù)據(jù)庫(kù)和管理,如何改善應(yīng)用的查詢性能,一般可以使用分區(qū) 這種手段。所謂分區(qū)就是動(dòng)態(tài)地將表中記錄分離到若干不同的表空間上,使數(shù)據(jù)在物理上被分割開(kāi)來(lái),便于維護(hù)、備份、恢復(fù)、事務(wù)及查詢性能。當(dāng)使用的時(shí)候可建立 一個(gè)連接所有分區(qū)的視圖,使其在邏輯上仍以一個(gè)整體出現(xiàn)。ORACLE進(jìn)了數(shù)據(jù)分區(qū)的技術(shù),以加強(qiáng)對(duì) VLDB的支持。當(dāng)表的數(shù)據(jù)增大時(shí),數(shù)據(jù)的載入/載出、備份/恢復(fù)占
45、用了大量的時(shí)間,也使 數(shù)據(jù)庫(kù)管理員的任務(wù)變得復(fù)雜、繁瑣,直接影響系統(tǒng)的可用性。所以,為了便于 管理、提高關(guān)鍵數(shù)據(jù)的可用性、提高查詢的性能,ORACLE可基于一定的關(guān)鍵值把表和索引分為若干可管理的小塊 一一區(qū),由于每個(gè)分區(qū)的操作是相對(duì)獨(dú)立的, 從而避免因一部分?jǐn)?shù)據(jù)的無(wú)法訪問(wèn)而影響其他分區(qū)的數(shù)據(jù)的使用。這帶來(lái)兩方面的好處:第一、提高性能,只對(duì)存有被查數(shù)據(jù)的分區(qū)進(jìn)行查找,從而加快速度; 第二、高可用性,備份/恢復(fù)可以以分區(qū)為單位進(jìn)行,減少管理時(shí)間;另外,數(shù) 據(jù)是基于分區(qū)管理的,硬件的失敗只會(huì)影響本地分區(qū),不影響其他分區(qū)上的數(shù)據(jù) 的操作,從而提高系統(tǒng)的可用性。這種分區(qū)的機(jī)制,對(duì)應(yīng)用系統(tǒng)是透明的。圖1-
46、3數(shù)據(jù)庫(kù)分區(qū)技術(shù)Oracle的分區(qū)(Partitioning Option)方式有 hash,range和 composite 多種。這種靈活的分區(qū)方式好處是:目標(biāo)準(zhǔn)確的數(shù)據(jù)服務(wù)器管理高可用性應(yīng)用性能提高由于結(jié)構(gòu)的限制,多數(shù)服務(wù)器的分區(qū)導(dǎo)致為提高性能以犧牲目標(biāo)準(zhǔn)確的數(shù)據(jù) 服務(wù)器管理和高可用性為代價(jià)。必須在它們之間作出選擇。Oracle的composite分 區(qū)方法則消除了這種情況。采用Oracle的分區(qū),數(shù)據(jù)的存儲(chǔ)、管理、訪問(wèn)和備份都完全按你的業(yè)務(wù)要 求。例如許多公司喜歡按日期分區(qū),當(dāng)數(shù)據(jù)到達(dá)一定的日期后,數(shù)據(jù)就不能再被 查詢。Oracle的Range分區(qū)使過(guò)期的分區(qū),仍然可被查詢。Oracl
47、e的分區(qū)顯著地改進(jìn)了數(shù)據(jù)的可用性。單一分區(qū)可被單獨(dú)離線,不影響 其它數(shù)據(jù)運(yùn)行。查詢永遠(yuǎn)是在所有分區(qū)正常的情況下才進(jìn)行。Oracle決不會(huì)提供 不完整的查詢結(jié)果。141.2 并行化(parallelism )技術(shù)具有大內(nèi)存與CPU資源的巨型系統(tǒng)已經(jīng)出現(xiàn)十幾年了,這些系統(tǒng)多采用MPP 或SMP結(jié)構(gòu),具有大計(jì)算能力,并且有很好的擴(kuò)充性,然而,如果應(yīng)用軟件不 能有效地利用這些計(jì)算機(jī)的特點(diǎn),那么計(jì)算的能力將受到限制。Oracle早在7. 1版本中就引入了并行查詢選項(xiàng)(PQO),以充分使用這些系 統(tǒng)中可用的硬件資源。Oracle并行查詢選項(xiàng)允許長(zhǎng)時(shí)間運(yùn)行的 SQL操作(主要是 查詢),以協(xié)同方式在多個(gè)CP
48、U間運(yùn)行,這使系統(tǒng)減少了資源密集型SQL操作的 運(yùn)行時(shí)間。并行執(zhí)行選項(xiàng)使多個(gè)服務(wù)器進(jìn)程可以并行執(zhí)行一定的操作。 進(jìn)程,稱為查詢 協(xié)調(diào)器,將一條語(yǔ)句的執(zhí)行調(diào)配到多個(gè)服務(wù)器執(zhí)行, 協(xié)同所有服務(wù)器的結(jié)果,并 將結(jié)果返回給用戶。SELECT *FROM EMP FParallel Execution ServarParallel Execution Coordinator圖 1-4 并行查詢技術(shù)14121 并行 SQL(parallel SQL executiO技術(shù)Oracle 數(shù)據(jù)庫(kù)是一個(gè)由不同的進(jìn)程維護(hù)的物理數(shù)據(jù)文件的集合。這樣一套 后臺(tái)進(jìn)程與共享內(nèi)存段,統(tǒng)稱為 Oracle 實(shí)例,使并發(fā)用戶可以
49、與數(shù)據(jù)庫(kù)交互。 當(dāng)一個(gè)用戶需要使用 ( select 、insert 、update 或 delete )數(shù)據(jù)庫(kù)中的數(shù)據(jù)時(shí), 他需要連接到數(shù)據(jù)庫(kù)。在大多數(shù) UNIX 系統(tǒng)中, Oracle 使用兩任務(wù)體系結(jié)構(gòu)。在 這個(gè)模式中, 當(dāng)一個(gè)用戶連接到數(shù)據(jù)庫(kù)時(shí), 派生一個(gè)附加的進(jìn)程, 通常稱為影子 進(jìn)程、前臺(tái)等等。影子進(jìn)程代表用戶存取共享內(nèi)存段與數(shù)據(jù)文件。在VLDB環(huán)境中,用戶通常需要處理大量數(shù)據(jù),影子進(jìn)程完成必需的工作需 要花費(fèi)一段時(shí)間。 由于影子進(jìn)程操縱數(shù)據(jù)工作時(shí)間很長(zhǎng), 很辛苦, 系統(tǒng)很可能有 空閑的 C P U 與內(nèi)存資源。這正是 Oracle 并行查詢選項(xiàng)發(fā)揮作用的地方。通過(guò) 使用這個(gè)選項(xiàng),
50、 Oracle 可以將一個(gè)用戶的大量數(shù)據(jù)處理請(qǐng)求分解為多個(gè)、相對(duì) 較小的工作單元, 這些工作單元可以由不同的進(jìn)程并發(fā)執(zhí)行。 它使用一套專有后 臺(tái)進(jìn)程,稱為并行查詢伺服(服務(wù)器) ,完成這項(xiàng)工作。影子進(jìn)程被提升為管理 的角色,并稱為查詢協(xié)調(diào)器,查詢協(xié)調(diào)器的職責(zé)如下:1)將功能分解為并行的小片。2)確保可以得到足夠數(shù)量的并行查詢伺服器。3)為給定的工作初始化伺服器進(jìn)程,并在 P Q O 服務(wù)器的進(jìn)程之間分派工 作。4)從伺服器進(jìn)程收集輸出并將輸出返回。5)當(dāng)完成預(yù)期的工作后, 查詢伺服器進(jìn)程被釋放, 并可由其他的工作獲得。 在最有利的情況下, 并行執(zhí)行減少了執(zhí)行時(shí)間, 執(zhí)行時(shí)間的因子是使用的查詢伺
51、服器的個(gè)數(shù)。然而,由 S Q L 語(yǔ)句消耗的總時(shí)間并沒(méi)有減少。并行執(zhí)行比順 序執(zhí)行使用更多的系統(tǒng)資源, 這樣可使的系統(tǒng)的資源得到有效的利用, 而不是浪 費(fèi)。O r a c l e 服務(wù)器概念手冊(cè)指出 Oracle 可以并行執(zhí)行以下的操作: 表掃描; 嵌套循環(huán)連結(jié);排序合并連結(jié);哈西連結(jié);“ Not in ”;Group by ;Select distinct;Union 與 union all;集合;從 SQL 調(diào)用的 PL / SQL 函數(shù);Order by;Create table as selec;tCreate index; Rebuild index; Move partition
52、; Split partition ; Update; Delete; Insert . . . selec;t Enable 約束(表掃描是并行化的) ; 星形變換。14122并行數(shù)據(jù)裝載(parallel load技術(shù)在VLDB中快速的數(shù)據(jù)裝載速度顯得非常重要,ORACLED SQL * LOADERS具可以并行執(zhí)行,從而可提高數(shù)據(jù)裝載的速度。 Oracle 的并行裝載有以下特點(diǎn): 每個(gè) SQL * Loader 會(huì)話分派了一個(gè)新的區(qū)間并將數(shù)據(jù)載入新區(qū)間中,為優(yōu)化系統(tǒng)的 I / O 性能,強(qiáng)烈建議在 OPTIONS 子句中使用 FILE 與 STORAGE 關(guān)鍵字控制新區(qū)間的位置與大小。
53、FILE 關(guān)鍵字可以在命令行 或控制文件中定義,然而,存儲(chǔ)子句只能在控制文件中定義。 并行加載要求沒(méi)有本地或全局索引。如果存在任何索引,會(huì)產(chǎn)生一個(gè)錯(cuò) 誤信息并退出加載操作。 在加載之前需要手工刪除索引, 在加載完成后, 再重建索引。每個(gè)加載會(huì)話需要一個(gè)表上的共享鎖。 每個(gè)加載會(huì)話都是獨(dú)立的,在加載會(huì)話之間沒(méi)有任何聯(lián)系。當(dāng)一個(gè)會(huì)話完成加載后,Oracle將加載的區(qū)間與已有的區(qū)間連接到一起, 上次加載區(qū)間中沒(méi)有使用的塊作為空區(qū)間返回, 這導(dǎo)致加載之后非標(biāo)準(zhǔn) 大小的區(qū)間。 即使通過(guò)加載控制文件中的存儲(chǔ)子句選項(xiàng)指定了區(qū)間大小, 截?cái)嘁矔?huì)發(fā)生。14123 并行恢復(fù)(parallel recovery技術(shù)
54、在VLDB中中當(dāng)數(shù)據(jù)庫(kù)出現(xiàn)意外損壞而需要恢復(fù)時(shí),ORACLE提供了并行恢復(fù)的機(jī)制使系統(tǒng)的恢復(fù)進(jìn)間盡量縮短。Oracle 的基本讀 -寫單位是數(shù)據(jù)塊。每當(dāng)對(duì)塊進(jìn)行修改時(shí), Oracle 將這些改 變以重做日志的形式記錄下來(lái), 如果需要時(shí), 可以使用這些日志重建這些塊。 如 果由于介質(zhì)失效或任何其他的原因而造成當(dāng)前數(shù)據(jù)文件的內(nèi)容丟失, 那么這些文 件可以從適當(dāng)?shù)膫浞菘截愔兄亟ǎ缓筮M(jìn)行恢復(fù)。恢復(fù)過(guò)程包括以下步驟:1 )讀日志文件并獲得數(shù)據(jù)塊的修改序列號(hào)。2 )決定哪一個(gè)數(shù)據(jù)塊需要改變。3 )在高速緩存中讀這些數(shù)據(jù)塊。4 )從重做日志中將相應(yīng)的改變應(yīng)用到這些數(shù)據(jù)塊。5 )將修改完成的數(shù)據(jù)塊寫回硬盤。為在并行狀態(tài)下進(jìn)行恢復(fù),需要設(shè)置初始化參數(shù)RECOVERY_PARALLELISM也可以使用RECOVEF命令的PARALLEL子句代替。在并行恢復(fù)過(guò)程中,服務(wù)器 管理器或SQLDBA會(huì)話讀重做日志文件并將改變傳遞給并行服務(wù)器進(jìn)程。然后這些進(jìn)程讀相應(yīng)的數(shù)據(jù)文件
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《幼兒教師教育教學(xué)技能全解》課件-5-合理安排一日活動(dòng)
- 備戰(zhàn)VB考試的試題及答案
- 行政法學(xué)與社會(huì)變革相結(jié)合的綜合研究探討試題及答案
- 高考語(yǔ)文閱讀理解能力訓(xùn)練試題及答案
- 網(wǎng)絡(luò)攻擊與防御策略試題及答案
- 行政法學(xué)核心概念試題與答案
- 企業(yè)合規(guī)管理與戰(zhàn)略風(fēng)險(xiǎn)應(yīng)對(duì)試題及答案
- 戰(zhàn)略目標(biāo)實(shí)現(xiàn)中的障礙與應(yīng)對(duì)試題及答案
- 企業(yè)戰(zhàn)略反饋機(jī)制考題及答案
- 宜昌市猇亭區(qū)事業(yè)單位2025年統(tǒng)一公開(kāi)招聘工作人員筆試歷年典型考題及考點(diǎn)剖析附帶答案詳解
- 礦井火災(zāi)防治課件
- 屋面工程防水施工技術(shù)PPT課件(附圖豐富)
- 農(nóng)業(yè)概論試題及答案
- 良性陣發(fā)性位置性眩暈完整版本課件
- 液壓系統(tǒng)故障診斷分析課件
- “安全月”安全生產(chǎn)知識(shí)競(jìng)賽參賽隊(duì)伍報(bào)名表
- 老化箱點(diǎn)檢表A4版本
- 超高性能混凝土研究進(jìn)展及工程應(yīng)用199頁(yè)P(yáng)PT_ppt
- 視覺(jué)心理學(xué)(全套400頁(yè)P(yáng)PT課件)
- 設(shè)計(jì)學(xué)概論設(shè)計(jì)批評(píng)課件
- 教你如何填省普通高中學(xué)生檔案
評(píng)論
0/150
提交評(píng)論