本文介紹了選擇升配與擴容的邏輯和方法。
升配與增加節點
PolarDB-X中,擴容包含兩種方式:
升配,指節點數不變,升級已有節點的CPU、記憶體、IOPS等規格。
升配優先會選擇原地升配,例如,將節點由4C升配為8C,如果當前節點所在宿主機有空餘的CPU資源,則會通過調整參數的方式,將4C升配為8C。此種形式的升配耗時比較短,特別是儲存節點的升配,不涉及資料的遷移;如果節點宿主機沒有足夠的資源做原地升配,則會進行節點的遷移,相對會消耗更多的時間。
一般情況下,節點規格相對較小的時候,能更容易做到原地升配。相應的,降配操作可以做到原地降配。
增加節點,指節點的規格不變,增加新的CN與DN節點。
增加DN節點會對資料做重新的負載平衡,因此涉及到資料的遷移,所耗時間與資料量成比例。相應的,減少節點的操作也會涉及到資料的遷移。
可以看出,大多情況下,升配可以在原地完成,是一種更輕量的操作;增加節點一定涉及到資料移轉,是一個更複雜的操作。
因此選擇升配還是擴容,遵循以下原則:
業務突發流量、高峰期等引起的資源不足,優先選擇升配,可以更快的解決效能瓶頸。同時,業務高峰過去之後,也更方便使用降配來節省資源。
日常開發、營運等過程中計劃內的增加資源,優先選擇增加節點,將單節點規格保持在相對較小的狀態,便於應急情況下進行原地升配。
升配不會增加磁碟容量,磁碟容量是瓶頸的情況下,選擇增加節點。
何時選擇擴容
對於線上交易類業務,一般推薦日常負載不超過水位線的30%,以應付突發的一些流量(例如促銷、甚至業務代碼出現BUG等)。業務應該根據自己的業務特點(例如是否有周期性波動,是否有大促等)來對安全水位線進行調整。
CN的負載一般重點關注以下指標:
CPU使用率
活躍線程數 (runing thread)
回應時間(邏輯RT、物理RT)
DN的負載一般重點關注以下指標:
CPU使用率
IOPS使用率
活躍連結數 (active session)
對於磁碟空間成為瓶頸的情境,考慮到增加節點需要消耗一定的時間,因此增加節點需要提前進行,一般推薦磁碟容量超過70%就應該進行增加節點的操作。