背景:QPS = 200萬(wàn)/s? ? ?全天不間斷
讓高峰期QPS控制在集群能承載的總QPS的30%左右是比較安全的策略
即應(yīng)設(shè)計(jì)集群承載QPS上限為600萬(wàn)~700萬(wàn)/s 才是安全的(也就是集群的處理能力是高峰期的3~4倍這個(gè)樣子)
數(shù)據(jù)集群估算:
假設(shè)每條數(shù)據(jù)估算2kb大小,2KB轉(zhuǎn)換為G=2/1024/1024,即每條數(shù)據(jù)約1.9073486328125e-6GB
存儲(chǔ)估算:
每天數(shù)據(jù)增量:2000000*24*60*60=172,800,000,000條/天
172,800,000,000*(2/1024/1024)=329,589.84375GB/天=321.8650817871094TB/天=0.314321368932724PB/天
0.314321368932724*3*365PB/年=344.1818989813328PB/年
一般集群存儲(chǔ)不超過(guò)總存儲(chǔ)大小的80%,所以一年總存儲(chǔ)大小如下:
344.1818989813328PB/0.8=430.227373726666PB/年,?
按每個(gè)節(jié)點(diǎn)存儲(chǔ)10PB的數(shù)量來(lái)算,
430.227373726666PB/10PB=43.0227373726666? 大概需要44個(gè)節(jié)點(diǎn)來(lái)存儲(chǔ)一年的數(shù)據(jù)
內(nèi)存估算:
內(nèi)存估算,內(nèi)存的估算其實(shí)這個(gè)是沒(méi)有絕對(duì)標(biāo)準(zhǔn),有的公司使用Flink處理物聯(lián)網(wǎng)數(shù)據(jù),只用了幾臺(tái)不到10G的機(jī)器就可以處理。所以內(nèi)存的估算其實(shí)不同的組件,執(zhí)行多少任務(wù),多少實(shí)時(shí)任務(wù),離線任務(wù)、算法模型等,區(qū)別比較大
一般實(shí)時(shí)任務(wù)占用的資源都是固定的,可以根據(jù)業(yè)務(wù)個(gè)數(shù)估算。離線任務(wù)可以根據(jù)ETL任務(wù)數(shù)和任務(wù)資源配置情況估算,計(jì)算資源離線和實(shí)時(shí)同時(shí)啟用的時(shí)候不能超過(guò)資源90%
實(shí)時(shí)任務(wù)資源占用需要小于50%,實(shí)時(shí)任務(wù)2000000/s的QPS,一分鐘窗口2000000*60*(2/1024/1024)=228.9G,有的設(shè)置5分鐘窗口,那么大概是1144.4G。
按照不超過(guò)50%來(lái)計(jì)算,需要1144.4G/0.5=2,288.8G(五分鐘窗口計(jì)算);? 228.9G/0.5=457.8G(一分鐘窗口計(jì)算)
2,288.8G/44=52G/臺(tái)(或457.8G/44=10.40G/臺(tái))
CPU估算:
CPU和內(nèi)存比例,一般為1:2或者1:4,當(dāng)然具體需要看有多少線程
16核的CPU一般能HOLD住一兩百個(gè)線程的工作,如果一次計(jì)算量過(guò)大建議使用更大核的CPU 如32 cpu core,
支持超線程,SSE4.2指令
綜上建議配置:? ? ?
? ? ? Nodes? ? 44臺(tái)
? ? ? Mem? ? ? 56G
? ? ? CPU? ? ? 32 cpu core,支持sse4.2指令