国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
WebSphere Information Integrator
隨著 IBM? WebSphere? Information Integrator 8.2 的發(fā)布,IBM 提供了一項稱作隊列復(fù)制或 Q 復(fù)制的功能,使數(shù)據(jù)庫復(fù)制有了很大的進(jìn)步。新的復(fù)制架構(gòu)是隨著對高性能(高事務(wù)量,低延時)的需求而出現(xiàn)的。本文將介紹新的 Q 復(fù)制架構(gòu),預(yù)期它有什么樣的性能,以及哪些因素對性能有影響。此外,我們還將研究實驗室測試時在 AIX? 和 z/OS? 平臺上所使用的例子。

注意:在閱讀本文之前,請先閱讀免責(zé)聲明

簡介

隨著 WebSphere Information Integrator 8.2 的發(fā)布,IBM 提供了一個稱作隊列復(fù)制Q 復(fù)制 的功能,使數(shù)據(jù)庫復(fù)制有了很大的進(jìn)步。這種新的復(fù)制架構(gòu)是隨著對高性能的需求而出現(xiàn)的,高性能是指高事務(wù)量和低延時,這里的延時是從在源數(shù)據(jù)庫上提交對源數(shù)據(jù)庫的更改到這些更改在目標(biāo)數(shù)據(jù)庫上完成提交這中間所經(jīng)歷的時間。

本文描述新的 Q 復(fù)制架構(gòu),討論預(yù)期的性能水平,以及影響性能的一些因素,并給出在實驗室測試時在 AIX 和 z/OS 平臺上所使用的例子。文中的信息對于那些有興趣使用 Q 復(fù)制,以及想知道 Q 復(fù)制對性能的影響的客戶來說會有所幫助。








為什么是新的架構(gòu)?

數(shù)據(jù)復(fù)制技術(shù)對于 IBM 或 DB2? 來說并不是什么新技術(shù),早在十年前,該技術(shù)就第一次被引入到一個稱作 DataPropagator? Relational(DPropR)的產(chǎn)品當(dāng)中。從那以后,它的名稱和包有所變化,產(chǎn)品的廣度和功能有所擴(kuò)展,形成的一組產(chǎn)品也獲得了實實在在的商業(yè)上的成功。

現(xiàn)有的復(fù)制架構(gòu)是 SQL 復(fù)制,它依然與 Q 復(fù)制并駕齊驅(qū),并且在多種客戶場景中很可能仍將是最佳解決方案。

對于 SQL 復(fù)制,數(shù)據(jù)庫的更改可以被捕捉,并臨時地存儲在稱作關(guān)系中間表(staging table)的關(guān)系表中。然后,從目標(biāo)系統(tǒng)上的一個客戶接口可以讀取這些關(guān)系中間表,并將它們應(yīng)用于目標(biāo)表。SQL Replication 與 DB2 for Linux?、DB2 for UNIX? 和 DB2 for Windows? 一起打包。在 z/OS 上,SQL Replication 以 DB2 Data Propagator 的形式提供給用戶,此外,它還包含在所有具有復(fù)制功能的 WebSphere Information Integrator 產(chǎn)品當(dāng)中。對于某些場景,例如那些以非 DB2 數(shù)據(jù)庫作為源或目標(biāo)的場景,SQL Replication 可能仍是目前的最佳選擇。

雖然 SQL Replication 有這些成功之處,但它也面臨一些技術(shù)上的挑戰(zhàn),特別是當(dāng)客戶系統(tǒng)有所增長,性能需要日益提高的時候,挑戰(zhàn)尤為突出。而 Q Replication 就是為滿足這些性能需求而設(shè)計的,此外,它還增加了一些功能,提高了可管理性。

系統(tǒng)在規(guī)模上不斷增長,打破了吞吐率的限制。與此同時,客戶需要更多地實時訪問被復(fù)制的更改。這些實時更改操作常常需要朝多個方向流動,因此造成對同步兩個或更多系統(tǒng)的需要,以及當(dāng)這些系統(tǒng)并發(fā)地更改相同數(shù)據(jù)時解決沖突問題的需要。

客戶對于數(shù)據(jù)庫復(fù)制有很多方面的需要,數(shù)據(jù)庫復(fù)制這個過程常常需要謹(jǐn)慎地計劃和調(diào)度。下面是數(shù)據(jù)庫復(fù)制的一些傳統(tǒng)用法和未來的趨勢:

  • 維護(hù)數(shù)據(jù)倉庫。這是目前復(fù)制功能最常見的用法之一。數(shù)據(jù)倉庫與操作性數(shù)據(jù)是分離的,這使得它們適合特定查詢,這不會影響生產(chǎn)應(yīng)用的性能。
  • 業(yè)務(wù)連續(xù)性和災(zāi)難恢復(fù)。對于數(shù)據(jù)庫復(fù)制在這方面的需求可能是增長最快的需求。當(dāng)前,業(yè)界提供了各種各樣的帶有同步和異步復(fù)制技術(shù)的硬件和軟件實現(xiàn),以解決業(yè)務(wù)連續(xù)性的問題。Q 復(fù)制是異步操作的,這意味著更改是在源數(shù)據(jù)庫操作提交之后才傳播出去的。如果因為距離較遠(yuǎn),而使得主數(shù)據(jù)庫和備份數(shù)據(jù)庫不在一起,那么客戶常常會選擇異步方法。距離會增加傳輸延時,這使得同步方法對于高性能應(yīng)用程序來說不切實際。然而,同步復(fù)制意味著當(dāng)出現(xiàn)故障時,應(yīng)用程序可以容忍在過渡階段某些事務(wù)出現(xiàn)失敗。更小的延時意味著失敗的事務(wù)更少。與其他常用的硬件和軟件解決方案相比,Q 復(fù)制惟一的優(yōu)勢是備份數(shù)據(jù)庫可以連續(xù)處于活動狀態(tài),這縮短了恢復(fù)時間。
  • 用于負(fù)載均衡的數(shù)據(jù)分發(fā)。只要增加的復(fù)制成本相對于處理總量來說比較小,這種用法就有意義,例如,在某些應(yīng)用程序中,被修改的數(shù)據(jù)所占比例相對于檢索操作或應(yīng)用程序處理來說較小,這就屬于上述情況。
  • 數(shù)據(jù)在地理上分布或數(shù)據(jù)的合并。使適當(dāng)?shù)膽?yīng)用程序“接近”終端用戶,或與其他相關(guān)數(shù)據(jù)駐扎在一起,可以提高性能。
  • 支持使用多個數(shù)據(jù)庫的應(yīng)用程序。很多基于 Web 的應(yīng)用程序都是由多個數(shù)據(jù)庫構(gòu)成的。進(jìn)行在線交易的客戶可能在做一筆交易的時候使用其中某個數(shù)據(jù)庫,而通過另一個數(shù)據(jù)庫來驗證交易的完成情況。交易數(shù)據(jù)庫可能是為一個遺留應(yīng)用程序而設(shè)計的,并且在考慮在線事務(wù)處理(online transaction processing,OLTP)的性能的情況下進(jìn)行組織,而交易歷史數(shù)據(jù)庫則考慮查詢性能,并駐留在不同的平臺上。因此,關(guān)鍵是使某些應(yīng)用程序的無縫操作能夠以近乎即時的速度,將更改過的數(shù)據(jù)從一個數(shù)據(jù)庫轉(zhuǎn)移到另一個數(shù)據(jù)庫。




回頁首


Q 復(fù)制的工作原理

從下面的圖 1 可以看到 Q 復(fù)制使用消息隊列在源數(shù)據(jù)庫和目標(biāo)數(shù)據(jù)庫之間傳遞事務(wù)數(shù)據(jù)更改的情況。這里所使用的隊列系統(tǒng)是 IBM 的一個旗艦消息傳遞產(chǎn)品,即 WebSphere MQ。WebSphere MQ 隨用于 Linux、UNIX 和 Windows 平臺的 WebSphere Information Integrator 一起打包,是 z/OS 環(huán)境的必備產(chǎn)品。


圖 1. Q 復(fù)制

Q 復(fù)制有兩大基本組件,Q CaptureQ Apply。Q Capture 從數(shù)據(jù)庫恢復(fù)日志讀取數(shù)據(jù),并用從提交的事務(wù)中選擇的數(shù)據(jù)更改構(gòu)造消息。然后,這些消息被寫入到一個或多個 MQ 隊列。這意味著這個過程對于源數(shù)據(jù)庫來說是異步的,只有在數(shù)據(jù)庫更改已經(jīng)提交到源數(shù)據(jù)庫時,那些消息才會發(fā)送到 MQ。每條邏輯消息代表一個完整的、已提交的數(shù)據(jù)庫事務(wù)。Q Apply 從消息隊列接收事務(wù)消息,并將每條消息作為一個事務(wù)單元應(yīng)用到目標(biāo)系統(tǒng)。

WebSphere MQ 的消息傳遞功能負(fù)責(zé)處理跨異構(gòu)系統(tǒng)和網(wǎng)絡(luò)協(xié)議傳遞消息的問題。在內(nèi)部,MQ 使用日志文件和數(shù)據(jù)文件,以類似于數(shù)據(jù)庫管理系統(tǒng)可能使用的方式,來管理消息的完整性和持久性。這些文件實質(zhì)上替代了 SQL 復(fù)制中由 DB2 處理的關(guān)系中間表和相關(guān)數(shù)據(jù)庫日志記錄功能。

如前所述,Q 復(fù)制允許有多個數(shù)據(jù)副本,該數(shù)據(jù)可能在多個站點發(fā)生改變,并且數(shù)據(jù)庫更改可以朝多個方向流動。這也意味著可能出現(xiàn)沖突,例如,當(dāng)多個站點更新相同的數(shù)據(jù)行時就會發(fā)生沖突。Q 復(fù)制為解決那些沖突提供了一種機(jī)制。

Q 訂閱定義源表與目標(biāo)表之間的關(guān)系,而且可以用單向、雙向或點對點這三種映射類型來定義。兩個服務(wù)器之間任意方向的復(fù)制的數(shù)據(jù)更改可以定義為雙向和點對點。雙向映射計算源數(shù)據(jù)庫和目標(biāo)數(shù)據(jù)庫上的數(shù)據(jù)值,從而提供了一種簡單的、低成本的沖突檢測和沖突解決方法。

點對點映射依靠添加到源應(yīng)用程序數(shù)據(jù)上的版本信息,提供了更健壯的沖突檢測和沖突解決。版本信息是在 Q 復(fù)制內(nèi)部在底層數(shù)據(jù)庫引擎中通過觸發(fā)器實現(xiàn)的。雖然從性能的角度來看,這種方法成本更高,但它允許兩個或更多可以并行地更新的數(shù)據(jù)庫的聚合(convergence)。本文的第 5 節(jié)比較了這幾種方法的性能。





回頁首


Q 復(fù)制與 SQL replication 相比的性能

下面的 圖 23 說明了在 AIX 和 z/OS 環(huán)境下 Q 復(fù)制與 SQL 相比的優(yōu)勢。這兩組使用同等工作負(fù)載和配置的測試都表明:Q 復(fù)制的吞吐率幾乎是 SQL 復(fù)制的三倍,而且在吞吐率的峰值處仍然維持著低得多的延遲。在這兩種配置中,Q 復(fù)制每秒可以復(fù)制 12,000 多行,而端到端的延遲低于 2 秒,在吞吐率較低的情況下,這種延遲常常低于 1 秒。在這兩次測試中使用的工作負(fù)載只包含 INSERT,以模擬適度復(fù)雜的事務(wù),每個事務(wù)有 10 個 INSERT 操作,行大小為 212 字節(jié)。這種非常簡單的工作負(fù)載有它的用處,因為它關(guān)注復(fù)制過程執(zhí)行的任務(wù),而減少了測試中使用的硬件資源。例如,我們不需要像真正的應(yīng)用程序那樣為 SELECT 或應(yīng)用程序處理分配硬件資源。關(guān)于本文中使用的工作負(fù)載和配置的更多信息,請參閱“工作負(fù)載和配置”一節(jié)。

還應(yīng)注意,與 SQL 復(fù)制相比,Q 復(fù)制真正降低的延遲甚至要好于上面圖中顯示的那樣。Q 復(fù)制提供了非常好的性能監(jiān)控功能,包括對端對端延遲的真實度量,這個延遲是指從源上提交事務(wù)開始到事務(wù)在目標(biāo)上完成提交這之間的時間。對于 SQL 復(fù)制,這些監(jiān)控功能不存在,因此基準(zhǔn)應(yīng)用程序采用一種技術(shù)來度量平均行延遲。由于每個事務(wù)涉及多個行,SQL 復(fù)制的事務(wù)延遲實際上要高于圖中顯示的延遲。

對于 z/OS 和 AIX 這兩個測試,Q 復(fù)制測試表明復(fù)制吞吐率限制大約是每秒 12,000 行,當(dāng)吞吐率達(dá)到這個高度時,各種資源變得飽和,從而導(dǎo)致延遲增加。最為顯著的是,在達(dá)到飽和點之前,延遲一直很穩(wěn)定,我們的經(jīng)驗是,大多數(shù)客戶的需求都低于這些限制。但為了保險起見,建議從每秒復(fù)制的行數(shù)這一角度估計客戶的吞吐率需求,并確保在峰值情況下仍然低于限制。此外,這些限制并不是絕對的,要受工作負(fù)載和配置變化的影響,這在后面會討論到。

在圖 2 中可以看到,Q 復(fù)制在 z/OS 中有更高的吞吐率和更低的延遲....


圖 2. Q 復(fù)制與 SQL replication 的性能比較 - z/OS

...在 AIX 上也同樣如此。


圖 3. Q 復(fù)制與 SQL replication 的性能比較 - AIX

Q 復(fù)制如何提高性能?

有很多因素可以幫助提高 Q 復(fù)制的性能,其中包括:

減少 DB2 日志記錄活動 對于 SQL 復(fù)制,數(shù)據(jù)庫更改是在源數(shù)據(jù)庫上的 DB2 關(guān)系中間表中捕捉的。這要求將附加的日志記錄寫入到 DB2 日志中。(如果捕捉所有數(shù)據(jù)庫更改,那么就會導(dǎo)致在中間關(guān)系表中寫入附加的用于插入和刪除的日志,從而潛在地使 DB2 日志的寫活動增加到原來的三倍。而對于 Q 復(fù)制,關(guān)系中間表是用 MQ 隊列捕捉的。數(shù)據(jù)文件和日志文件提供 MQ 隊列的底層存儲,只要這些文件放在與 DB2 日志不同的磁盤上,就可以減少日志文件的內(nèi)容。

減少對處理器的使用 由于多種原因,Q 復(fù)制在源服務(wù)器上比 SQL 復(fù)制要消耗更少的處理器周期,而在目標(biāo)服務(wù)器上消耗得要更多些,但總體上仍然是少一些。這是至關(guān)重要的,因為源服務(wù)器最可能運行“生產(chǎn)”應(yīng)用程序,在那上面的處理器周期是比較珍貴的。

下面的圖 4 展示了在 z/OS 上 SQL 復(fù)制和 Q 復(fù)制對處理器的使用情況的比較。這個圖給出了源系統(tǒng)和目標(biāo)系統(tǒng)上處理器成本的兩個度量:每個被復(fù)制的行占用的微秒數(shù),以及每一千個被復(fù)制的行每秒所需的 MIPS(1) (2)。您可以使用這兩個度量來理解不同復(fù)制方法在處理器成本方面的不同之處,以及復(fù)制的粗略的“能力規(guī)劃(capacity planning)”估計。

這些測試試圖用大致相等但不相同的吞吐量來比較這兩個度量點。在所有情況下,復(fù)制都可以滿足工作負(fù)載的需求,并且延遲要小于 5 秒。

圖 4 說明了 Q 復(fù)制所減少的 CPU 消耗:

  • Q capture 對 CPU 的使用減少 2-3 倍。
  • Q capture 對 CPU 的使用大約每行 70-80 微秒。
  • 在目標(biāo)上對 CPU 的使用要稍微多一些(隊列管理)。

 


圖 4. Q 復(fù)制- 減少的處理器消耗

下面是從這些測試中觀察到的一些方面:

  • 將 Q 復(fù)制與 SQL 復(fù)制相比較,在源服務(wù)器上每個被復(fù)制的行所需的處理器成本減少了大約三分之二。Q Capture 成本大約是每行 70-80 微秒,每一千個被復(fù)制的行每秒只需不超過 20 的 MIPS。
  • 將 Q 復(fù)制與 SQL 復(fù)制相比較,在目標(biāo)系統(tǒng)上處理器成本有所增加,其原因是,某些內(nèi)務(wù)功能,例如“修剪(pruning)”消息隊列,現(xiàn)在在目標(biāo)系統(tǒng)上大量地執(zhí)行。然而,在使用 Q 復(fù)制時,在源系統(tǒng)和目標(biāo)系統(tǒng)上的總體成本通常仍然會有所減少。

增加 Q Apply 處理中的并行度 Q Apply 采用高度的并行性,這是支撐復(fù)制目標(biāo)上源應(yīng)用程序的吞吐率需求的關(guān)鍵。如果一個源應(yīng)用程序采用高度的并行性來取得高吞吐率,那么 Q Apply 組件可以使用并行來跟上步伐。

如下面的圖 5 所示,對于每個傳入的接收隊列,Q Apply 啟動一個瀏覽器(可以將這個過程看作是“瀏覽隊列”)。Q Apply 從該隊列讀取事務(wù),檢查事務(wù)之間的依賴關(guān)系,并基于這種依賴分析通過并行的 Q Apply 代理應(yīng)用數(shù)據(jù)更改。一個Q Apply 程序可以處理多個消息隊列(每個隊列一個瀏覽器),每個瀏覽器可以啟動多個代理。Q Apply 代理可以并行地應(yīng)用事務(wù),以跟上發(fā)起事務(wù)的源應(yīng)用程序的并行度,從而大大增加復(fù)制吞吐率。


圖 5. Q Apply 過程

理論上,SQL 復(fù)制可以通過啟動 SQL Apply 程序的多個實例取得一定程度的并行性,但這需要管理員將表劃分到適當(dāng)?shù)慕M中,并平衡這些組之間的工作負(fù)載。此外,它不能像 Q 復(fù)制那樣允許在一個很活躍的表內(nèi)使用并行。

記住,即使只用一個消息隊列和一個瀏覽器,Q 也可以使用多個代理(默認(rèn)情況下每個瀏覽器 16 個代理),而不需要管理員做額外的工作。Q Apply 可以自動判斷事務(wù)之間的依賴關(guān)系,因此可以按適當(dāng)?shù)捻樞驊?yīng)用數(shù)據(jù)更改。管理員可以定義附加的隊列,但這需要格外小心,因為沒有事務(wù)可以跨消息隊列修改表。而對于完全獨立的應(yīng)用程序來說,這樣做也許是合適的。

下面的圖 6 說明了增加 Q Apply 代理和瀏覽器數(shù)量的影響。在這個測試中,我們使用“預(yù)先裝載”的消息隊列測試 Q Apply,以排除 Q Capture 方面的任何約束。此外,在 z/OS LPAR(3) 上使用了 6 個處理器。您可以看到,增加代理的數(shù)量可以大大提高吞吐率,增加瀏覽器也可以得到一定的好處。使用一個消息隊列和默認(rèn)的 16 個代理對于大多數(shù)應(yīng)用程序來說通常已經(jīng)足夠了,在這里,最大工作負(fù)載是每秒 15,000 個事務(wù)(這確實是一個相當(dāng)大的工作負(fù)載)。


圖 6. Q Apply 在 z/OS 中的吞吐率





回頁首


雙向和點對點映射對性能的影響

下面的圖 7 比較了不同復(fù)制方案的吞吐率:沒有復(fù)制的 INSERT 工作負(fù)載、單向映射、雙向映射和點對點映射。在這些測試中使用的工作負(fù)載由 8 個并發(fā)的執(zhí)行 INSERT 操作的任務(wù)組成,事務(wù)之間有短暫的應(yīng)用程序延遲(4)。然而,在雙向映射和點對點映射的測試中,相同的工作負(fù)載要在兩個系統(tǒng)上運行,這使得總工作負(fù)載翻了一倍。這些工作負(fù)載還要在不同的數(shù)據(jù)上執(zhí)行,以避免為解決沖突問題而導(dǎo)致的成本。在實際情況中,我們期望客戶設(shè)計自己的應(yīng)用程序來盡可能避免沖突,減少對性能的影響。


圖 7. 雙向映射和點對點映射對性能的影響

圖 8 采用與圖 4 相同的格式,它展示了每行所需的微秒數(shù)以及每一千個被復(fù)制的行每秒所需的 MIPS 這兩方面的處理器成本。


圖 8. 雙向映射和點對點映射對 CPU 和資源消耗的影響

下面是從這兩個圖中觀察到的一些方面:

  • 如果將雙向測試與單向測試相比較,應(yīng)該注意到,當(dāng)我們在第二個系統(tǒng)上運行一個克隆的應(yīng)用程序時,總吞吐率幾乎增加了一倍。記住,每個系統(tǒng)都在運行它自己的基本工作負(fù)載,捕捉那些更改,并將更改應(yīng)用到其他系統(tǒng)。雖然這幾乎使每個系統(tǒng)上對處理器的使用量翻了一倍,但每行的成本(5)只是增加了一點點(大約 12%)。對于雙向處理,需要一些附加工作來避免遞歸,確保 Q 復(fù)制不會重復(fù)捕捉 Q Apply 正在作出的更改。每個系統(tǒng)上的吞吐率稍微有些下降,這是因為增加了對處理器的使用。
  • 如果將點對點測試與雙向測試相比較,每個系統(tǒng)上的吞吐率同樣稍微有些下降(大約 17%),但每一行的 CPU 成本卻大大增多(70%)。這主要是通過數(shù)據(jù)庫觸發(fā)器維護(hù)版本信息時帶來的內(nèi)部成本所致。在我們的測試中,觸發(fā)器不僅造成額外的處理成本,而且還會造成一定的附加延遲,因為它們與應(yīng)用程序是同步的。還應(yīng)注意,這里顯示的測試是在 z/OS 環(huán)境下的 DB2 中進(jìn)行的。與觸發(fā)器相關(guān)的成本要少于在 DB2/UDB 上的成本,這一點可以通過測量得知。還需記住的是,這種工作負(fù)載非??鋸垼ㄖ挥?INSERT),因此對于大多數(shù)常見的同時也會讀取數(shù)據(jù)和處理數(shù)據(jù)的客戶工作負(fù)載來說,延遲被夸大了很多。此外,允許不同系統(tǒng)上的應(yīng)用程序并發(fā)地操作數(shù)據(jù)復(fù)制品可以為用戶全面提高生產(chǎn)率、數(shù)據(jù)可用性和吞吐率。




回頁首


這些結(jié)果是否適合其他工作負(fù)載和配置?

在以往進(jìn)行的所有性能測試當(dāng)中,隨著工作負(fù)載和配置的不同,得到的結(jié)果會有很大的變化。您可能想知道,那些因素對于您對 Q 復(fù)制的中意程度會有怎樣的影響。下面是關(guān)于這些因素的影響力的考慮:

吞吐率 在本文中,我們一直選擇以每秒復(fù)制的行數(shù)來度量復(fù)制。當(dāng)然還有其他一些度量指標(biāo),例如每秒的事務(wù)數(shù),但是由于事務(wù)的復(fù)雜性變化多端,我們避免使用那個度量指標(biāo)作為通用的吞吐率度量。然而,事務(wù)的復(fù)雜性的確會影響每秒復(fù)制的行數(shù)。如前所述,大多數(shù)這方面的測試都使用在某些方面走極端(只有 INSERT),但在其他方面較為合理的工作負(fù)載:每個事務(wù)涉及 10 行,每個行 212 字節(jié),并且共有 14 列。

圖 9 表明,改變這些參數(shù)將影響吞吐率(每秒的行數(shù))。這個圖展示了當(dāng)每個事務(wù)的行數(shù)變化時(從 2 行/每個事務(wù)到至多 20 行/每個事務(wù))取得的吞吐率,以及當(dāng)行的規(guī)模變化時(從 192 字節(jié)到 2K 字節(jié))取得的吞吐率。從這個圖中可以看出,當(dāng)每個事務(wù)的行數(shù)增加時,每秒復(fù)制的行數(shù)也隨之增加。其原因是,復(fù)制需要開銷來處理每個行,另外還要開銷來處理每個事務(wù)。每秒有更多的事務(wù)意味著提交點更少了,因此開銷也就更小了。同樣,復(fù)制更多的數(shù)據(jù)(更大的行規(guī)模)會造成更大的工作量,并會減少每秒復(fù)制的行數(shù)。


圖 9. Q Capture 的吞吐率與行和事務(wù)的規(guī)模

延遲 在本文中,我們展示了一些很好的性能結(jié)果,在某些情況下,延遲甚至低于 1 秒。雖然在通過精心優(yōu)化的環(huán)境中,可以獲得這樣的結(jié)果,但還有一些因素很可能會使復(fù)制的真正延遲大于前面得到的值。這些因素包括:

  • 更復(fù)雜的事務(wù)(例如每個事務(wù)有成千個行)。我們將延遲(和 Q 復(fù)制的度量)定義為事務(wù)延遲,即從在源系統(tǒng)上提交一個數(shù)據(jù)庫事務(wù)到該事務(wù)在目標(biāo)系統(tǒng)上完成提交這之間的時間。這個過程只有在源事務(wù)被提交之后才可以開始。非常大的事務(wù)會有更多的工作量,需要更長的時間來處理。
  • 更大的行規(guī)模。
  • UPDATE 事務(wù)。與 INSERT 相比,數(shù)據(jù)庫管理系統(tǒng)必須對 UPDATE 做更多的工作,例如檢索相關(guān)的行。
  • 更遠(yuǎn)的網(wǎng)絡(luò)距離(廣域網(wǎng))(6)。
  • 數(shù)據(jù)共享。Q replicaiton 必須檢索和處理多個日志文件。

有關(guān)這些監(jiān)控功能的更多信息,以及其他性能調(diào)優(yōu)方面的信息,請參閱在后面參考資料一節(jié)中列出的資料。


圖 10. 帶有 4 路數(shù)據(jù)共享的一個例子

當(dāng)然,有很多因素可能影響性能預(yù)期。結(jié)果在很大程度上取決于工作負(fù)載和配置的變化。雖然次秒級(sub-second)的延遲是可能達(dá)到的,但也無法保證。根據(jù)現(xiàn)今技術(shù)的標(biāo)準(zhǔn),低于 5 秒的復(fù)制延遲仍然可以看作是突出情況,并且在大多數(shù)常見的 Q 復(fù)制場景中都是可以達(dá)到的。





回頁首


工作負(fù)載和配置

本文中給出的測試是由硅谷實驗室 WebSphere Information Integration 的性能分析小組在 Q 復(fù)制的產(chǎn)品開發(fā)期間進(jìn)行的。有些測試是在采用尚未普遍可用的產(chǎn)品代碼級的情況下進(jìn)行的。

測試人員有意地使工作負(fù)載對 Q 復(fù)制施加盡可能大的壓力,同時減少硬件資源。因此,大多數(shù)測試只包含數(shù)據(jù)庫 INSERT。(由于現(xiàn)實情況下工作負(fù)載同時還會包含應(yīng)用程序處理和 SELECT,因此,用于這種 INSERT 工作負(fù)載的復(fù)制部分所消耗的資源可能遠(yuǎn)遠(yuǎn)多于客戶預(yù)計在類似系統(tǒng)上需要消耗的資源。)

對于 z/OS 測試,配置由下面各部分組成:

  • 系統(tǒng):一個 2064-216 z900 大型主機(jī)的兩個 LPAR。除非特別標(biāo)明,每個 LPAR 由 4 個處理器組成,并有 8 GB 的內(nèi)存。每個處理器大約相當(dāng)于一個 200MIP 的機(jī)器(總共 800 MIP)。
  • 軟件:
    • DB2 for z/OS V7
    • MQ 5.3.1
      這些測試是在使用一個分成兩個 LPAR 的 2064-216 大型主機(jī)的情況下進(jìn)行的,其中每個 LPAR 使用 4 個處理器。
    • 網(wǎng)絡(luò):LPAR 之間采用 1 Gb OSA 的網(wǎng)卡(以太網(wǎng))。
    • 磁盤:Enterprise Storage Server Model 800。

 

對于 AIX 測試,配置由以下部分組成:

  • 系統(tǒng):一個 IBM pSeries model p690 的兩個 LPAR。每個 LPAR 由 8 個處理器、8GB 的內(nèi)存組成。
  • 網(wǎng)卡:10/100 Mbit Ethernet。
  • 軟件:AIX 5.2,MQ 5.3,DB2 V8.2。
  • 磁盤:帶有快速寫緩存的 SSA 磁盤。




回頁首


性能監(jiān)控和性能調(diào)優(yōu)

雖然對于一個產(chǎn)品來說,取得良好的性能十分重要,但對于一個分析師而言,能夠?qū)π阅苓M(jìn)行監(jiān)控同樣具有重要意義。Q 復(fù)制提供了一些有用的功能,這些功能目前在 SQL 復(fù)制中是沒有的。也許最關(guān)鍵的是,現(xiàn)在可以測量 Q 復(fù)制取得的端到端事務(wù)的延遲。Replication Center 提供了對 Q Capture 和 Q Apply 的報告,其中包括以下度量指標(biāo):

  • 復(fù)制吞吐率。
  • 復(fù)制延遲。這包括對端到端總延遲的度量,以及各個部分的延遲的度量。
  • 內(nèi)存使用情況。
  • 其他異常情況。

 

此外,性能統(tǒng)計信息是在監(jiān)控表(CAPMON、CAPQMON 和 APPLYMON)中維護(hù)的,其他監(jiān)控軟件可以查詢這些表。

參考資料一節(jié)中可以找到有關(guān)這些監(jiān)控功能的更多信息,以及大量其他性能調(diào)優(yōu)方面的信息。





回頁首


結(jié)束語

我們相信,Q 復(fù)制使數(shù)據(jù)庫復(fù)制技術(shù)有了顯著的進(jìn)步,某些方面要強(qiáng)于 SQL 復(fù)制。在一個測試環(huán)境中,我們發(fā)現(xiàn):

  • 與 SQL 復(fù)制相比,復(fù)制吞吐率提高到了三倍,并且復(fù)制延遲也更好。
  • Q 復(fù)制達(dá)到了每秒復(fù)制超過 12,000 行這樣的吞吐率,同時還能保證延遲持續(xù)低于 5 秒,并且在很多情況下低于 1 秒。
  • Q 復(fù)制所需的總處理器周期變得更少,并且在源服務(wù)器上大大節(jié)省了處理器周期。

 

這些性能上的提高,以及其他功能上的增強(qiáng),使您可以更好地利用數(shù)據(jù)庫復(fù)制來滿足您的業(yè)務(wù)需要。





回頁首


致謝

Q 復(fù)制開發(fā)和性能小組的很多成員都為本文中的材料作出了貢獻(xiàn),他們是 John Aschoff、Nhut Bui、Ying Chang、Nguyen Dao 和 Beth Hamel。如果您對于本文有什么疑問和評論,可以發(fā)送郵件給 John Aschoff(aschoffj@us.ibm.com)。





回頁首


腳注

(1) MIPS = Million Instructions per Second(每秒的百萬指令數(shù)),這是用于評價大型主機(jī)處理器的相對速度的粗略方法。在這些實驗中用到的 4 個處理器中,每個處理器的速度大約是 200 MIPS。MIPS 是對相對速度的非常粗略的度量方法。

(2) 這里用于計算每行所需微秒數(shù)的技術(shù),以觀察到的每行所需的總處理器時間在組成該系統(tǒng)的 4 個處理器上分?jǐn)偟玫降臅r間為依據(jù)。該技術(shù)的優(yōu)點在于,它可以捕捉所有花費的時間,但缺點是當(dāng)對處理器的使用量比較少時,由于“低使用量的影響”,它可能會有些夸張。在 Q 捕獲方面,每行被扣除掉了 100 微秒,因為這是在沒有復(fù)制的純 INSERT 工作負(fù)載的情況下觀察到的成本。所需的 MIPS 數(shù)嚴(yán)格地以觀察這種 200 MIPS 處理器得到的一組結(jié)果為依據(jù)。

(3) 本文中大多數(shù)其他的 z/OS 測試都使用 4-處理器的 LPAR。

(4) 這種工作負(fù)載配置不是為發(fā)現(xiàn)最大吞吐率而設(shè)計的,而是為了可以通過相同的工作負(fù)載需求來比較各種不同的方案。結(jié)果,我們有意地在事務(wù)之間引入了一個較短的延遲(9 微秒)。

(5) 在計算每行的成本時,我們將 CPU 成本除以每個系統(tǒng)上捕捉到的并被應(yīng)用的總行數(shù)。

(6) 光和電也只能那么快!





回頁首


免責(zé)聲明

本文包含的信息是在“現(xiàn)狀”的基礎(chǔ)上提供的,沒有經(jīng)過任何形式的 IBM 測試。該信息的使用或這些技術(shù)的實現(xiàn)是用戶的責(zé)任,可以依靠用戶的能力進(jìn)行評估,并將其集成到客戶特有的操作環(huán)境中。雖然 IBM 已經(jīng)在特定情況下檢查了每一項的準(zhǔn)確性,但不保證在其他地方將獲得相同或相似的結(jié)果。嘗試調(diào)整這些技術(shù)以適應(yīng)自己環(huán)境的用戶必須自擔(dān)風(fēng)險。

本文顯示的性能信息數(shù)據(jù)基于一個測試環(huán)境中所獲得的結(jié)果。受各種因素的影響,各項結(jié)果和性能可能有所變化。有關(guān)本文中使用的工作負(fù)載和配置的更多信息,可以在“工作負(fù)載和配置”一節(jié)中找到。



參考資料

  • 您可以參閱本文在 developerWorks 全球站點上的 英文原文

  • DB2 Information Integrator Tuning for Replication and Event Publishing Performance (SC18-9289-00)

  • DB2 Information Integrator Replication and Event Publishing Guide and Reference (SC18-7568-00)

  • DB2 Information Integrator Introduction to Replication and Event Publishing (GC18-7567-00)

  • 要了解關(guān)于 WebSphere Information Integrator 的更多信息,請訪問 developerWorks 上的 Websphere Information Integrator 頁面。您可以從中發(fā)現(xiàn)技術(shù)性文章、各種文檔和下載的鏈接以及更多內(nèi)容。


關(guān)于作者

John Aschoff 目前是 WebSphere Information Integration Performance 部門的經(jīng)理。他在 IBM 工作了 34 年,在存儲和數(shù)據(jù)管理領(lǐng)域的性能方面有 20 多年的經(jīng)驗。他發(fā)表了大量性能方面的文章,包括為 Computer Measurement Group 發(fā)表的一些文章。他和妻子 Marcy 居住在 Monterey Bay 地區(qū),家里還有一條喚作 Dante 的德國牧羊狗

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
MySQL集群性能優(yōu)化指南(1)
WAS 5.x中數(shù)據(jù)源的配置使用及其常見問題
所有 OS 平臺上的常規(guī) WebSphere 調(diào)整
常用嵌入式數(shù)據(jù)庫概覽 - 嵌入式相關(guān) - 無為
應(yīng)用技術(shù):DB2數(shù)據(jù)庫技術(shù)關(guān)鍵領(lǐng)域列表 - 志誠自制-2010,汗水和煎熬凝聚生存的技能 - JavaEye技術(shù)網(wǎng)站
DB2和 Oracle的并發(fā)控制(鎖)比較
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服