簡介
既然 DB2 9 發布了,現在是時候對它的最新特性之一 —— pureXML® 進行測試驅動了。為此,建立了一個模擬的經紀業務環境。這個環境具有以下特征:
-
高事務量和並發性
-
小的事務大小
-
大量小型 XML 文檔
-
可變的 XML 文檔結構 —— 測試包含符合 FIXML 的數據,FIXML 是 Financial Information eXchange(FIX)標准的金融業 XML 實現。
請記住,XML 應用程序大致分成以下兩類:
-
面向數據的(高數據量,小文檔,這個測試就是針對這種情況)
-
面向文檔的(可變數據量,大文檔)
另外,涉及 XML 的數據庫應用程序也是各種各樣的,包括以下情況:
-
以 XML 形式發布關系數據
-
用 XML 全文本搜索進行內容和文檔管理
-
合並不同的數據源
-
表單處理
-
對 Web 服務和面向服務體系結構(SOA)的後端支持
-
基於消息的事務處理和基於 XML 的在線事務處理(OLTP),尤其是在金融業中
本文在一個基於 XML 的事務處理場景中進行性能度量,這個場景模擬一個面向數據的金融應用程序。測試設備包括最新的 POWER5 服務器(p5 560Q)以及 AIX 5.3 和 TotalStorage DS8100 磁盤系統。
DB2 9 和 XML
DB2 9 中新的 XML 支持包括純 XML 存儲、XML 索引、XQuery、SQL/XML 和高級的 XML 模式處理。“純” 意味著以標注上類型的樹的形式存儲和處理 XML 文檔,這與商業關系數據庫中以前的任何技術都不同。尤其是,pureXML 與將 XML 存儲為大對象(BLOB 或 CLOB)或者將 XML 分解到關系表中的技術有顯著差異。更多的信息請參考以前的文章 “What's new in DB2 Viper” (developerWorks,2006 年 2 月)和 “Native XML Support in DB2 Universal Database”。
測試場景:在線經紀業務
這個測試場景對在線經紀業務進行建模。我們曾經幫助金融公司采用 XML。這些經歷幫助我們理解了他們的數據和處理特征。這個場景有意地進行了簡化,但是在文檔、事務和 XML 模式方面仍然具有代表性。
這個場景中主要的邏輯數據實體如下(見圖 1):
-
Customer: 一個客戶可以有一個或多個帳號(account)。
-
Account: 每個帳號包含一個或多個持有物(holding)。
-
Holding: 某一證券 的數量。
-
Security: 某一持有物的標識符(例如,股票名稱)。
-
Order: 為一個帳號 買賣一種證券 的訂單。
圖 1. 數據實體和 XML 模式
文檔處理和大小因文檔類型而異:
-
對於每個客戶,有一個 CustAcc 文檔,其中包含這個客戶的所有客戶信息、帳號信息和持有物信息。CustAcc 文檔的大小在 4KB 和 20KB 之間。
-
使用 FIXML 4.4 表示訂單。FIXML 是用於交易相關消息(比如買賣訂單)的行業標准 XML 模式(www.fixprotocol.org)。訂單文檔的大小是 1KB 到 2KB。訂單文檔有許多屬性,而且數據節點的比例很高。
-
證券文檔(20833 個)使用實際的證券符號和名稱,表示在美國交易的大多數股票和共同基金。它們的大小在 3KB 和 10KB 之間。
使用 Toxgene 數據生成器為這三個模式生成實例文檔。關於 Toxgene 數據生成器的更多信息,請參考 ToXgene - the ToX XML Data Generator。
測試設備和配置
測試在以下設備上運行:
-
處理器: IBM System p5 560Q,使用 8 個處理器的邏輯分區(LPAR),這是一個中等的 IBM System p5 560Q。8 個處理器以 1.5GHz 的頻率運行。
-
內存: 32GB
-
操作系統: AIX 5L v5.3 TL04(系統類型:9116-561,兩個 4 芯片模塊)
-
並發多線程提供 16 個並發執行線程或邏輯處理器。
-
安裝了一個多路徑子系統設備驅動程序(SDD)。這個特性可以改進存儲服務器訪問,比如改進數據可用性和存儲服務器上跨光纖通道適配器的動態 I/O 負載平衡。
-
存儲: IBM TotalStorage DS8100,通過 4 個光纖通道適配器連接到 LPAR。
AIX 配置
在安裝 DB2 期間,會自動執行所有必需的操作系統參數調整。設置了以下的虛擬內存管理參數,從而更好地控制文件系統緩存使用的內存量:
vmo -o minperm%=5
vmo -o maxclient%=15
vmo -o maxperm%=15
另外,為了防止在數據裝載期間試圖緩存輸入文件,在掛裝命令中使用 -o cio
選項,用 JFS2 文件系統的並發 I/O 特性掛裝包含原始 XML 輸入文件的文件系統。
存儲配置
使用 TotalStorage DS8100 的標准默認配置。DS8100 在內部基本上是一個 POWER5 eServer p5 570。與之前的 ESS 使用 SSA 循環不同,DS8100 磁盤互連是一個 Switched Fiber Channel Arbitrated Loop(FC-AL),可以提供更快的數據訪問和高可用性。DS8100 配置了 128 個磁盤,在這些磁盤上創建了 16 個卷。在其中,8 個卷(64 個磁盤)分配給這個 LPAR。4 個卷使用 6+Parity+Spare 設置為 388GB。另外 4 個卷使用 7+Parity 設置為 452GB。創建了一個跨越所有 8 個卷的卷組(VG)。在這個卷組上定義了 DB2 數據庫的所有存儲組件,包括表空間、日志和備份。表 1 總結了配置。
表 1. 存儲配置
方面 |
配置 |
處理器
兩個處理器,每個附帶 pSeries POWER5 1.9 GHz 兩路 CEC
內存(緩存)
32GB
磁盤互連
Switched FC-AL
磁盤數量
128 個(只有 64 個由主機 LPAR 使用)
磁盤大小/速度
73 GB,15000 RPM
DB2 配置
DB2 9 包含許多新特性,包括新的自治自調整功能。在這個測試中,利用了其中幾種自治功能,包括:
因為啟動了 DB2 的自調整內存管理器(STMM),它會連續調整一系列 DB2 配置參數的設置。在測試運行期間 STMM 管理和調整的一些關鍵的 DB2 配置參數見表 2。要意識到的重要情況是,STMM 會根據正在運行的工作負載類型(比如純插入、純查詢或混合型工作負載)自主地修改這些值。
表 2. 數據庫配置,自調整
DB 配置參數名 |
初始設置 |
SELF_TUNING_MEM
ON(默認值)
DATABASE_MEMORY
AUTOMATIC(默認值)
SORTHEAP
156
SHEAPTHRES_SHR
10000
LOCKLIST
53000
MAXLOCKS
80
PCKCACHESZ
27000
緩沖池名 |
初始設置 |
IBMDEFAULTBP
1100000
CATBP
4000
TEMPBP
1000
DBA 只需要執行很少的數據庫配置任務,見表 3。
表 3. 數據庫配置,手工
方面 |
配置/設置 |
數據庫
Unicode。所有表空間采用自動存儲。DB2 日志在單獨的條帶上
內存
為所有測試啟用 STMM
頁面大小
16K(表空間和緩沖池)
表和索引
3 個表:CustAcc、order、security。24 個 XML 索引:10 個在 CustAcc 上,5 個在 order 上,9 個在 security 上
表空間
一共 6 個表空間:3 個表各有一個表空間,每個表的索引各有一個表空間。對所有表空間禁用文件系統緩存
緩沖池
一共 3 個緩沖池:默認緩沖池、用於編目表空間的緩沖池和用於臨時表空間的緩沖池