磁碟爭用是資料庫性能頭號殺手。條帶化技術將連續資料切分為多個條帶單元,分散儲存於多個物理磁碟,實現 I/O 負載自動均衡與最大並行讀寫。但唯有資料庫層、作業系統層、儲存層三層參數精準對齊,才能釋放條帶化紅利。本文以 DB2 on AIX 為例,構建全棧條帶化匹配框架。
| 參數 | 定義 | 典型範圍 (資料庫) |
|---|---|---|
| Stripe Depth (條帶深度) | 單一條帶塊大小 (Stripe Unit) | 256KB - 1MB |
| Stripe Width (條帶寬度) | 參與條帶的物理磁碟數量 | ≥ I/O Request Size / Stripe Depth |
黃金法則:Stripe Width × Stripe Depth ≥ 邏輯 I/O 請求大小,確保單次邏輯 I/O 可由物理裝置一次並行完成。
| 維度 | OLTP (高並發小 I/O) | DSS/數倉 (低並發大 I/O) |
|---|---|---|
| 策略名稱 | 粗粒度條帶 | 細粒度條帶 |
| Stripe Depth 設定 | N × Page Size (N≥2),如 2×16K=32K 或 64K+ | N × Page Size (N<PrefetchSize/Pagesize),如 64K-256K |
| 核心邏輯 | 單磁碟服務多並發請求,減少物理 I/O 次數 | 單請求跨多磁碟並行,最大化頻寬利用 |
| 邊界對齊風險 | Depth=Page Size 時邊界未對齊導致雙磁碟 I/O | Depth 必須整除 Prefetch Size,避免碎片 I/O |
DB2 預取流程:應用請求 → 異步處理 → I/O Server → 以 Prefetch Size 為單位讀取儲存 → 記憶體處理 → 返回結果。

強制對齊條件:
Prefetch Size % Stripe Depth == 0 (整數倍)Prefetch Size % (Stripe Depth × Stripe Width) == 0 (最佳,跨全寬度並行)同時需考慮 Extent Size、容器數量、Page Size 共同約束。
AIX V5.3+ 以 varyonvg -M <size> <vgname> 動態設定 LTG (4K-128M)。
作用:邏輯 I/O 超過 LTG 時,AIX 以 LTG 為單位分割後分發物理裝置。
匹配原則:LTG == Stripe Depth 或 LTG = N × Stripe Depth。

PV (Physical Volume) → VG (Volume Group) → LV (Logical Volume) → 檔案系統/原始裝置。
LV 層啟用條帶 → 連續邏輯塊按 Round-Robin 分散至多 PV。
OS Stripe Depth = 儲存 Stripe Depth × 儲存 Stripe Width → 確保 OS 層單次 I/O 橫跨儲存層全寬度| 層級 | 參數 | 對齊目標 | 驗證命令 |
|---|---|---|---|
| DB2 | Page Size | 建庫固定,表空間可覆蓋 | db2 get db cfg | grep -i page |
| DB2 | Prefetch Size | % (Stripe Depth × Width) == 0 | db2 "select tbspace, prefetchsize from syscat.tablespaces" |
| DB2 | Extent Size | 配合 Prefetch Size、容器數 | db2 "select tbspace, extentsize from syscat.tablespaces" |
| AIX LVM | LTG (varyonvg -M) | = Stripe Depth 或其整數倍 | lsvg -L <vgname> (查看 MAX LTG) |
| AIX LVM | LV Stripe Size (-S) | = 儲存 Stripe Depth × Width | lslv <lvname> (STRIPE SIZE) |
| AIX LVM | LV Stripe Width (-u) | PV 數量,映射不同物理磁碟組 | lslv -m <lvname> (映射分布) |
| 儲存 | RAID Stripe Size | 硬體基礎單元 | 廠商管理介面 |
| 儲存 | RAID Group 磁碟數 | = Stripe Width | 廠商管理介面 |
條帶化技術至今仍是榨乾硬體 I/O 能力的最強槓桿。成功關鍵在於:
iostat -x/db2pd -bufferpool/snap 監控實際 I/O 分布與佇列深度將條帶化視為「全棧契約」而非獨立參數,方能構建極致 I/O 性能基石。