Ob peb xyoos dhau los muaj ib lub sijhawm ntawm Zabbix. Txhua tus neeg rau zaub mov liab liab tsis muaj ntau tshaj li ob peb qhov ntsuas - kev siv CPU, kev siv RAM, kev siv disk thiab kev siv network. Txoj kev no, kev ntsuas los ntawm ntau txhiab tus neeg rau zaub mov tuaj yeem haum rau 40 txhiab lub sijhawm tshwj xeeb, thiab Zabbix tuaj yeem siv MySQL ua tus thaub qab rau cov ntaub ntawv teev sijhawm :)
Tam sim no ib leeg node_exporter nrog kev teeb tsa ua ntej muab ntau dua 500 metrics ntawm tus tswv tsev nruab nrab. Muaj ntau exporters rau ntau yam databases, web servers, hardware systems, etc. Lawv txhua tus muab ntau yam kev ntsuas muaj txiaj ntsig. Tag nrho ntau thiab ntau daim ntawv thov pib teeb tsa ntau yam ntsuas rau lawv tus kheej. Muaj Kubernetes nrog pawg thiab pods uas nthuav tawm ntau qhov kev ntsuas. Qhov no ua rau cov servers nthuav tawm ntau txhiab tus cim ntsuas ib tus tswv tsev. Yog li qhov tshwj xeeb 40K lub sij hawm series tsis muaj zog lawm. Nws tau dhau los ua qhov tseem ceeb thiab yuav tsum tau yooj yim los ntawm TSDB niaj hnub no ntawm ib tus neeg rau zaub mov.
Dab tsi yog qhov loj ntawm lub sijhawm tshwj xeeb ntawm lub sijhawm tam sim no? Tej zaum 400K lossis 4M? Los yog 40 m? Cia peb piv TSDBs niaj hnub rau cov lej no.
Txhim kho qhov ntsuas ntsuas
TSBS yog ib tug zoo benchmarking cuab tam rau TSDBs. Nws tso cai rau koj los tsim kom muaj tus naj npawb ntawm cov ntsuas ntsuas los ntawm kev hla tus lej yuav tsum tau muab faib los ntawm 10 - chij - nplai (yav dhau los -scale-var). 10 yog tus naj npawb ntawm kev ntsuas (metrics) tsim los ntawm txhua tus tswv tsev lossis server. Cov ntaub ntawv hauv qab no tau tsim los siv TSBS rau qhov ntsuas:
400K lub sijhawm tshwj xeeb, 60 lub sijhawm thib ob ntawm cov ntaub ntawv cov ntsiab lus, cov ntaub ntawv nthuav tawm tag nrho 3 hnub, ~ 1.7B tag nrho cov ntaub ntawv cov ntsiab lus.
4M lub sijhawm tshwj xeeb series, 600 lub sijhawm thib ob, cov ntaub ntawv nthuav tawm 3 hnub tag nrho, ~ 1.7B tag nrho cov ntaub ntawv cov ntsiab lus.
40M tshwj xeeb lub sij hawm series, 1 teev ncua sij hawm, cov ntaub ntawv spans 3 tag nrho hnub, ~ 2.8B tag nrho cov ntaub ntawv cov ntsiab lus.
Cov neeg siv khoom thiab cov neeg rau zaub mov tau khiav ntawm cov xwm txheej tshwj xeeb n1-txoj-16 hauv Google huab. Cov xwm txheej no muaj cov kev teeb tsa hauv qab no:
vCPUs: 16
RAM: 60 GB
Cia: Standard 1TB HDD. Nws muab 120 Mbps nyeem / sau dhau los, 750 nyeem ua haujlwm ib ob thiab 1,5K sau ib ob.
TSDBs tau muab rho tawm los ntawm cov duab docker official thiab khiav hauv docker nrog cov kev teeb tsa hauv qab no:
VictoriaMetrics:
docker run -it --rm -v /mnt/disks/storage/vmetrics-data:/victoria-metrics-data -p 8080:8080 valyala/victoria-metrics
InfluxDB (-e) qhov tseem ceeb yuav tsum tau txhawb nqa lub zog siab. Saib cov ntsiab lus hauv cov ntaub ntawv):
InfluxDB kev ua tau zoo poob los ntawm 1,2M cov ntaub ntawv cov ntsiab lus ib ob rau 400K lub sij hawm series mus rau 330K cov ntaub ntawv cov ntsiab lus ib ob rau 4M lub sij hawm series. Qhov no yog ib qho kev poob haujlwm tseem ceeb piv rau lwm tus neeg sib tw. Cia peb saib ntawm CPU siv graphs kom nkag siab lub hauv paus ua rau qhov poob:
Saum toj no yog ib qho screenshot: VictoriaMetrics - CPU siv thaum lub sij hawm nkag mus rau qhov tshwj xeeb 4M lub sij hawm series.
Saum toj no yog ib qho screenshot: InfluxDB - CPU siv thaum lub sij hawm nkag mus rau qhov tshwj xeeb 4M lub sij hawm series.
Saum toj no yog ib qho screenshot: TimescaleDB - CPU siv thaum lub sij hawm nkag mus rau qhov tshwj xeeb 4M lub sij hawm series.
VictoriaMetrics siv yuav luag txhua chav ua haujlwm (CPU) lub zog. Qhov poob ntawm qhov kawg sib raug rau cov LSM txuas ntxiv tom qab tag nrho cov ntaub ntawv tau muab tso rau.
TimescaleDB muaj feem ntau system. Peb xav tias lub zog siab ua rau ntau lub kaw lus hu lossis ntau me nplooj faults.
Cia peb saib ntawm daim disk throughput graphs:
Saum toj no yog ib qho screenshot: VictoriaMetrics - Siv disk bandwidth los ntxig 4M cim ntsuas.
Saum toj no yog ib qho screenshot: InfluxDB - Siv disk bandwidth los ntxig 4M cim ntsuas.
Saum toj no yog lub screenshot: TimescaleDB - Siv disk bandwidth los ntxig 4M cim ntsuas.
VictoriaMetrics mus txog qhov txwv ntawm 120 MB / s ntawm lub ncov, thaum qhov nruab nrab sau nrawm yog 40 MB / s. Nws zoo li tias ob peb qhov hnyav LSM fusions tau ua thaum lub sijhawm siab tshaj.
InfluxDB rov nyem tawm qhov nruab nrab sau dhau los ntawm 200 MB / s nrog qhov siab txog li 340 MB / s ntawm lub disk nrog kev txwv sau ntawm 120 MB / s :)
TimescaleDB tsis yog disk txwv lawm. Nws zoo nkaus li txwv los ntawm lwm yam uas cuam tshuam nrog kev faib ua feem siab ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠΉ CPU load.
Cia peb saib ntawm IO siv cov duab:
Saum toj no yog ib qho screenshot: VictoriaMetrics - Siv I / O thaum ntsuas qhov ntsuas rau qhov tshwj xeeb 4M lub sijhawm.
Saum toj no yog ib qho screenshot: InfluxDB - Siv I / O thaum ntsuas qhov ntsuas rau qhov tshwj xeeb 4M lub sijhawm.
Saum toj no yog ib qho screenshot: TimescaleDB - I / O kev siv thaum lub sij hawm nkag mus rau qhov tshwj xeeb 4M lub sij hawm series.
VictoriaMetrics maj mam nce ntawm tus nqi ntawm 100k cov ntaub ntawv cov ntsiab lus ib ob kom txog rau thaum tag nrho 40M tagged metric npe tau ua tiav. Tom qab ntawd nws ua tiav qhov kev nkag mus tau ruaj khov ntawm 1,5-2,0M cov ntaub ntawv cov ntsiab lus ib ob, yog li qhov kawg tshwm sim yog 1,7M cov ntaub ntawv cov ntsiab lus ib ob.
Cov duab kos rau 40M lub sijhawm tshwj xeeb zoo ib yam li cov duab kos rau 4M lub sijhawm tshwj xeeb, yog li cia peb hla lawv.
tshawb pom
TSDBs niaj hnub no muaj peev xwm ua cov ntawv ntxig rau ntau lab lub sijhawm tshwj xeeb ntawm ib tus neeg rau zaub mov. Hauv tsab xov xwm tom ntej, peb yuav sim seb TSDBs ua tau zoo npaum li cas xaiv hla ntau lab lub sijhawm tshwj xeeb.
Kev siv CPU tsis txaus feem ntau qhia txog I / O lub fwj. Nws kuj tseem tuaj yeem qhia tau tias qhov thaiv qhov thaiv yog qhov ntxhib dhau, tsuas yog ob peb lub xov tuaj yeem khiav ntawm ib lub sijhawm.