OpenShift容量規劃步驟前端
OpenShift Container Platform(簡稱OCP)的容量規劃一共有5大步驟。這對於咱們將應用從虛擬化向OCP遷移的步驟也有必定參考意義。node
備註:OCP的訂閱最小單位是2個CPU Cores。若是服務器啓動了Intel CPU硬件超線程,那麼2 Core的訂閱將會被4個vCPU使用。數據庫
步驟1:肯定VM或硬件的 CPU Cores數量和內存服務器
OCP能夠部署在物理機或虛擬機上,在大多數狀況下,Intel CPU打開硬件超線程,所以2vCPU等於一個CPU Core。app
須要回答的問題:框架
用於OCP節點的VM的內存容量是多少?ide
用於OCP節點的VM的vCPU數量是多少?ui
是否使用CPU硬件超線程?spa
回答示例:線程
VM有64GB內存和4個vCPU,並使用了超線程
步驟2:計算所需的應用程序實例數
肯定計劃部署多少個應用程序實例或Pod。OpenShift上部署的任何應用程序組件(例如數據庫、前端靜態服務器或消息代理實例)都被視爲應用程序實例。
須要回答兩個問題:
預計在每一個OpenShift環境中部署多少個應用程序實例?
它們是什麼類型的應用程序(例如開發語言,開發框架,使用的數據庫)?
示例回答:
開發環境中大約有1,250個應用程序實例,生產中大約有250個應用程序實例。
主要部署Java,但也有一些Microsoft .NET Core和Ruby應用程序。使用不少MySQL。
步驟3:肯定首選的最大OpenShift節點利用率
建議在需求增長的狀況下保留一些空間,尤爲是在爲工做負載啓用HPA時。根據在OpenShift上運行的應用程序的歷史負載,最大利用率會有所不一樣。
肯定OpenShift節點的最大資源利用率問題。
想爲增長的需求預留多少空間?
示例回答:
咱們但願以最大平均值運行節點總容量的80%(保留20%的備用容量)。
步驟4:肯定總內存佔用量
考慮以下問題:
應用程序的平均內存佔用量是多少?
示例回答:
應用程序實例使用2GB內存或更少。
一般爲JVM Heap分配2GB。
步驟5:計算總計
每一個節點的有效內存:節點的總內存與節點最大利用率的乘積:
Effective per node memory capacity (GB)
= Preferred maximum OpenShift node utilization (%) * Standard VM or hardware memory
總內存使用量爲:應用實例的數量與平均應用程序內存佔用量的乘積:
Total memory utilization
= Application instances * Average application memory footprint
OCP計算資源節點數:應用總內存需求量除以虛擬機或服務器的內存數量
Number of nodes required to cover utilization
= Total memory utilization / Standard VM or hardware memory
總共須要的CPU Cores:OCP計算資源的節點數與節點的CPU Cores的乘積。
Total required cores
= Number of nodes required to cover utilization * Standard VM or Hardware cores
有效虛擬CPU Core需求量(若是打開了硬件超線程):
Effective virtual cores = Total required cores / 2
須要的OCP訂閱數(第一種是沒有打開硬件超線程,第二種是打開了硬件超線程,一個訂閱最少包含2 CPU Cores):
Number of OpenShift Container Platform subscriptions
= Total cores / 2
或
= Effective virtual cores / 2
計算範例
虛擬化環境的示例計算:
虛擬機有4個vCPU,打開了硬件超線程,所以有兩個有效虛擬CPU Core。
• Standard number of VM cores = 4 (hyperthreading used, 2 effective v
irtual cores)
虛擬機內存爲64GB
• Standard VM memory = 64 GB
節點最大利用率:
• Preferred maximum node utilization = 80%
每一個應用須要的內存:
• Average application memory footprint = 2 GB
應用的總量:
• Number of application instances = 1500
訂閱總需求量:
每一個OCP節點的有效內存量:64-GB與節點最大利用率的乘積,即每一個OCP節點提供51G內存:
• Effective node memory capacity
= 80% preferred maximum node utilization * 64 GB standard VM memory
= 51 GB
總的內存使用量:每一個應用消耗的內存與應用數量的乘積:
• Total memory utilization
= 1500 application instances * 2 GB average application memory footprint
= 3000 GB
OCP所需節點數:總內存需求量與每一個節點可以提供的有效內存的除法:
• Nodes required to cover utilization
= 3000 GB total memory utilization / 51 GB effective node memory capacity
= 59 nodes
總CPU Core需求量:所需OCP節點數與每一個OCP節點的CPU Cores的乘積:
• Total cores
= 59 nodes required * 2 cores per node
= 118 total cores
總的訂閱數量:總需求的CPU Cores除以2(一套訂閱包含兩個Cores)
• Total subscriptions
= 118 total cores / 2 cores per subscription
= 59 subscriptions
所以,在這種狀況下,須要購買59 套2-core OpenShift Container Platform subscriptions。