Tagarmharc ardfheidhmíochta TSDB VictoriaMetrics vs TimescaleDB vs InfluxDB

Rinneadh comparáid idir VictoriaMetrics, TimescaleDB agus InfluxDB i alt roimhe seo ar thacar sonraí ina bhfuil billiún pointe sonraí a bhaineann le 40K sraith ama uathúil.

Cúpla bliain ó shin bhí ré Zabbix ann. Ní raibh níos mó ná roinnt táscairí ag gach freastalaí miotail lom - úsáid LAP, úsáid RAM, úsáid dioscaí agus úsáid líonra. Ar an mbealach seo, is féidir le méadracht ó na mílte freastalaithe a bheith oiriúnach i 40 míle sraith ama uathúil, agus is féidir le Zabbix MySQL a úsáid mar inneall le haghaidh sonraí sraith ama :)

Faoi láthair ina n-aonar nód_onnmhaireoir le cumraíochtaí réamhshocraithe soláthraíonn sé níos mó ná 500 méadracht ar an meánóstach. Is iomaí onnmhaireoirí do bhunachair shonraí éagsúla, do fhreastalaithe gréasáin, do chórais crua-earraí, etc. Soláthraíonn siad go léir éagsúlacht de mhéadracht úsáideach. Gach iarratais níos mó agus níos mó tús a chur le táscairí éagsúla a shocrú dóibh féin. Tá Kubernetes ann le braislí agus pods a nochtann go leor méadracht. Mar thoradh air seo nochtar freastalaithe na mílte méadracht uathúla in aghaidh an ósta. Mar sin níl an tsraith ama uathúil 40K ard-chumhachta a thuilleadh. Tá sé ag éirí príomhshrutha agus ba cheart go láimhseálfadh aon TSDB nua-aimseartha é go héasca ar fhreastalaí amháin.

Cad é an líon mór sraitheanna ama uathúla faoi láthair? 400K nó 4M is dócha? Nó 40m? Déanaimis TSDBanna nua-aimseartha a chur i gcomparáid leis na huimhreacha seo.

Tagarmharc a shuiteáil

TSBS is uirlis tagarmharcála den scoth é do TSDBanna. Ligeann sé duit líon treallach méadrachta a ghiniúint tríd an líon riachtanach sraith ama roinnte ar 10 - bratach a rith -scála (iar -scale-var). Is é 10 líon na dtomhas (méadracht) a ghintear ar gach óstach nó freastalaí. Gineadh na tacair sonraí seo a leanas le TSBS don tagarmharc:

  • Sraith ama uathúil 400K, eatramh 60 soicind idir pointí sonraí, a chuimsíonn sonraí 3 lá iomlán, ~ 1.7B líon iomlán na bpointí sonraí.
  • Sraith ama uathúil 4M, eatramh 600 soicind, a chuimsíonn sonraí 3 lá iomlán, ~1.7B líon iomlán na bpointí sonraí.
  • Sraith ama uathúil 40M, eatramh 1 uair an chloig, a chuimsíonn sonraí 3 lá iomlán, ~ 2.8B líon iomlán pointí sonraí.

Bhí an cliant agus an freastalaí ag rith ar chásanna tiomnaithe n1-chaighdeán-16 i scamall Google. Bhí na cumraíochtaí seo a leanas ag na cásanna seo:

  • vCPUanna: 16
  • RAM: 60 GB
  • Stóráil: Caighdeán 1TB HDD. Soláthraíonn sé tréchur léite/scríofa 120 Mbps, 750 oibríocht léite in aghaidh an tsoicind agus scríobhann 1,5K in aghaidh an tsoicind.

Baineadh TSDBanna as íomhánna duganna oifigiúla agus ritheadh ​​iad i ndugálaí leis na cumraíochtaí seo a leanas:

  • VictoriaMetrics:

    docker run -it --rm -v /mnt/disks/storage/vmetrics-data:/victoria-metrics-data -p 8080:8080 valyala/victoria-metrics

  • Tá luachanna InfluxDB (-e) ag teastáil chun tacú le cumhacht ard.Féach sonraí i doiciméadú):

    docker run -it --rm -p 8086:8086 
    -e INFLUXDB_DATA_MAX_VALUES_PER_TAG=4000000 
    -e INFLUXDB_DATA_CACHE_MAX_MEMORY_SIZE=100g 
    -e INFLUXDB_DATA_MAX_SERIES_PER_DATABASE=0 
    -v /mnt/disks/storage/influx-data:/var/lib/influxdb influxdb

  • TimescaleDB (cumraíocht tógtha ó comhad):

MEM=`free -m | grep "Mem" | awk ‘{print $7}’`
let "SHARED=$MEM/4"
let "CACHE=2*$MEM/3"
let "WORK=($MEM-$SHARED)/30"
let "MAINT=$MEM/16"
let "WAL=$MEM/16"
docker run -it — rm -p 5432:5432 
--shm-size=${SHARED}MB 
-v /mnt/disks/storage/timescaledb-data:/var/lib/postgresql/data 
timescale/timescaledb:latest-pg10 postgres 
-cmax_wal_size=${WAL}MB 
-clog_line_prefix="%m [%p]: [%x] %u@%d" 
-clogging_collector=off 
-csynchronous_commit=off 
-cshared_buffers=${SHARED}MB 
-ceffective_cache_size=${CACHE}MB 
-cwork_mem=${WORK}MB 
-cmaintenance_work_mem=${MAINT}MB 
-cmax_files_per_process=100

Ritheadh ​​an lódóir sonraí le 16 snáithe comhthreomhara.

Níl san alt seo ach torthaí maidir le tagarmharcanna a chur isteach. Foilseofar torthaí an tagarmhairc roghnach in alt ar leith.

Sraith ama uathúil 400K

Let tús le heilimintí simplí - 400K. Torthaí tagarmhairc:

  • VictoriaMetrics: 2,6M pointe sonraí in aghaidh an tsoicind; Úsáid RAM: 3 GB; Méid na sonraí deiridh ar an diosca: 965 MB
  • InfluxDB: 1.2M pointí sonraí in aghaidh an tsoicind; Úsáid RAM: 8.5 GB; méid sonraí deiridh ar dhiosca: 1.6 GB
  • Scála ama: 849K pointe sonraí in aghaidh an tsoicind; Úsáid RAM: 2,5 GB; Méid na sonraí deiridh ar an diosca: 50 GB

Mar a fheiceann tú ó na torthaí thuas, bhuaigh VictoriaMetrics i bhfeidhmíocht ionsáite agus cóimheas comhbhrú. Bhuaigh amlíne in úsáid RAM, ach úsáideann sé go leor spás diosca - 29 bytes in aghaidh an phointe sonraí.

Seo thíos na graif úsáide LAP do gach ceann de na TSDBanna le linn an tagarmhairc:

Tagarmharc ardfheidhmíochta TSDB VictoriaMetrics vs TimescaleDB vs InfluxDB

Seo thuas scáileán scáileáin: VictoriaMetrics - ualach LAP le linn tástála ionsáite le haghaidh méadrach uathúil 400K.

Tagarmharc ardfheidhmíochta TSDB VictoriaMetrics vs TimescaleDB vs InfluxDB

Seo thuas scáileán scáileáin: InfluxDB - ualach LAP le linn tástála ionsáite le haghaidh 400K méadrach uathúil.

Tagarmharc ardfheidhmíochta TSDB VictoriaMetrics vs TimescaleDB vs InfluxDB

Thuas tá seat: TimescaleDB - ualach LAP le linn tástála ionsáite le haghaidh méadrach uathúil 400K.

Úsáideann VictoriaMetrics gach vCPU atá ar fáil, agus ní dhéanann InfluxDB tearcúsáid ar ~2 as 16 vCPU.

Ní úsáideann scála ama ach 3-4 de na 16 vCPU. Léiríonn comhréireanna arda iowait agus córais sa ghraf Amscála DB bac san fhochóras ionchuir/aschuir (I/O). Breathnaímid ar na graif úsáide bandaleithead diosca:

Tagarmharc ardfheidhmíochta TSDB VictoriaMetrics vs TimescaleDB vs InfluxDB

Seo thuas scáileán: VictoriaMetrics - Úsáid Bandaleithid Diosca i dTástáil Ionsáite do Mhéadracht Uathúil 400K.

Tagarmharc ardfheidhmíochta TSDB VictoriaMetrics vs TimescaleDB vs InfluxDB

Seo thuas scáileán scáileáin: InfluxDB - Úsáid Bandaleithid Diosca ar Thástáil Ionsáite do Mhéadracht Uathúil 400K.

Tagarmharc ardfheidhmíochta TSDB VictoriaMetrics vs TimescaleDB vs InfluxDB

Seo thuas scáileán: Scála AmaDB - Úsáid Bandaleithid Diosca ar Thástáil Ionsáite le haghaidh Méadracht Uathúil 400K.

Taifeadann VictoriaMetrics sonraí ag 20 Mbps le buaiceanna suas le 45 Mbps. Freagraíonn beanna do chumaisc pháirteacha móra sa chrann NGO.

Scríobhann InfluxDB sonraí ag 160 MB/s, agus tiomántán 1 TB chóir a bheith teoranta scríobh tréchur 120 MB/s.

Tá TimescaleDB teoranta chun tréchur 120 Mbps a scríobh, ach uaireanta sáraíonn sé an teorainn seo agus sroicheann sé 220 Mbps i mbuaicluachanna. Freagraíonn na buaiceanna seo do na gleannta nach bhfuil dóthain úsáide á baint as LAP sa ghraf roimhe seo.

Breathnaímid ar na graif úsáide ionchuir/aschuir (I/O):

Tagarmharc ardfheidhmíochta TSDB VictoriaMetrics vs TimescaleDB vs InfluxDB

Seo thuas scáileán: VictoriaMetrics - Cuir isteach úsáid tástála I/O le haghaidh méadracht uathúil 400K.

Tagarmharc ardfheidhmíochta TSDB VictoriaMetrics vs TimescaleDB vs InfluxDB

Seo thuas scáileán scáileáin: InfluxDB - Cuir isteach úsáid I/O tástála le haghaidh méadracht uathúil 400K.

Tagarmharc ardfheidhmíochta TSDB VictoriaMetrics vs TimescaleDB vs InfluxDB

Thuas tá seat: TimescaleDB - Cuir isteach úsáid I/O tástála le haghaidh méadracht uathúil 400K.

Tá sé soiléir anois go bhfuil TimescaleDB ag baint amach a theorainn I/O, mar sin ní féidir leis na 12 vCPU eile a úsáid.

Sraith ama uathúil 4M

Breathnaíonn sraith ama 4M beagán dúshlánach. Ach éiríonn lenár n-iomaitheoirí an scrúdú seo a dhéanamh. Torthaí tagarmhairc:

  • VictoriaMetrics: 2,2M pointe sonraí in aghaidh an tsoicind; Úsáid RAM: 6 GB; Méid na sonraí deiridh ar an diosca: 3 GB.
  • InfluxDB: 330K pointí sonraí in aghaidh an tsoicind; Úsáid RAM: 20,5 GB; méid sonraí deiridh ar dhiosca: 18,4 GB.
  • Scála AmaDB: 480K pointí sonraí in aghaidh an tsoicind; Úsáid RAM: 2,5 GB; Méid na sonraí deiridh ar an diosca: 52 GB.

Thit feidhmíocht InfluxDB ó 1,2M pointí sonraí in aghaidh an tsoicind le haghaidh sraith ama 400K go 330K pointí sonraí in aghaidh an tsoicind le haghaidh sraith ama 4M. Is caillteanas feidhmíochta suntasach é seo i gcomparáid le hiomaitheoirí eile. Breathnaímid ar na graif úsáide LAP chun bunchúis an chaillteanais seo a thuiscint:

Tagarmharc ardfheidhmíochta TSDB VictoriaMetrics vs TimescaleDB vs InfluxDB

Seo thuas scáileán scáileáin: VictoriaMetrics - úsáid LAP le linn tástála ionsáite do shraith ama uathúil 4M.

Tagarmharc ardfheidhmíochta TSDB VictoriaMetrics vs TimescaleDB vs InfluxDB

Seo thuas scáileán scáileáin: InfluxDB - úsáid LAP le linn tástála ionsáite do shraith ama uathúil 4M.

Tagarmharc ardfheidhmíochta TSDB VictoriaMetrics vs TimescaleDB vs InfluxDB

Thuas tá seat: TimescaleDB - úsáid LAP le linn tástála ionsáite do shraith ama uathúil 4M.

Úsáideann VictoriaMetrics beagnach gach ceann de chumhacht an aonaid phróiseála (LAP). Freagraíonn an titim ag an deireadh don chumasc LSM atá fágtha tar éis na sonraí go léir a chur isteach.

Ní úsáideann InfluxDB ach 8 gcinn de 16 vCPU, agus úsáideann TimsecaleDB 4 as 16 vCPU. Cad atá i gcoiteann ag na graif acu? Sciar ard iowait, a léiríonn arís baic I/O.

Tá sciar ard ag TimescaleDB system. Glacaimid leis go raibh go leor glaonna córais nó go leor mar thoradh ar ardchumhachta lochtanna beaga leathanaigh.

Breathnaímid ar na graif tréchur diosca:

Tagarmharc ardfheidhmíochta TSDB VictoriaMetrics vs TimescaleDB vs InfluxDB

Seo thuas scáileán scáileáin: VictoriaMetrics - Bain úsáid as bandaleithead diosca chun méadracht uathúil 4M a chur isteach.

Tagarmharc ardfheidhmíochta TSDB VictoriaMetrics vs TimescaleDB vs InfluxDB

Seo thuas scáileán scáileáin: InfluxDB - Bain úsáid as bandaleithead diosca chun méadracht uathúil 4M a chur isteach.

Tagarmharc ardfheidhmíochta TSDB VictoriaMetrics vs TimescaleDB vs InfluxDB

Thuas tá seat: TimescaleDB - Bain úsáid as bandaleithead diosca chun méadracht uathúil 4M a chur isteach.

Shroich VictoriaMetrics teorainn 120 MB/s ag buaicphointe, agus ba é an meánluas scríofa ná 40 MB/s. Is dócha go ndearnadh roinnt comhleá trom LSM le linn na buaicphointí.

Brúann InfluxDB amach arís meán-thréchur scríofa de 200 MB/s le buaiceanna suas le 340 MB/s ar dhiosca le teorainn scríofa de 120 MB/s :)

Níl an diosca teoranta ag TimescaleDB a thuilleadh. Dealraíonn sé go bhfuil sé teoranta ag rud éigin eile a bhaineann le cion ard системной LAP ualach.

Breathnaímid ar na graif úsáide IO:

Tagarmharc ardfheidhmíochta TSDB VictoriaMetrics vs TimescaleDB vs InfluxDB

Seo thuas scáileán: VictoriaMetrics - I/O a úsáid le linn tástála ionsáite do shraith ama uathúil 4M.

Tagarmharc ardfheidhmíochta TSDB VictoriaMetrics vs TimescaleDB vs InfluxDB

Seo thuas scáileán scáileáin: InfluxDB - Ag baint úsáide as I/O le linn tástála ionsáite le haghaidh sraith ama uathúil 4M.

Tagarmharc ardfheidhmíochta TSDB VictoriaMetrics vs TimescaleDB vs InfluxDB

Thuas tá seat: TimescaleDB - Úsáid I/O le linn tástála ionsáite do shraith ama uathúil 4M.

Is ionann patrúin úsáide IO agus iad siúd a bhaineann le bandaleithead diosca - tá IO teoranta ag InfluxDB, agus tá acmhainní IO spártha ag VictoriaMetrics agus TimescaleDB.

Sraith ama uathúil 40M

Bhí sraith ama uathúil 40M ró-mhór do InfluxDB :)

Torthaí tagarmhairc:

  • VictoriaMetrics: 1,7M pointe sonraí in aghaidh an tsoicind; Úsáid RAM: 29 GB; Úsáid spáis diosca: 17 GB.
  • InfluxDB: Níor chríochnaigh sé toisc go raibh níos mó ná 60GB RAM de dhíth air.
  • TimescaleDB: 330K pointí sonraí in aghaidh an tsoicind, úsáid RAM: 2,5 GB; Úsáid spáis diosca: 84GB.

Léiríonn TimescaleDB úsáid RAM atá thar a bheith íseal agus cobhsaí ag 2,5 GB - mar an gcéanna leis na méadrachtaí uathúla 4M agus 400K.

Mhéadaigh VictoriaMetrics suas go mall ag ráta 100k pointe sonraí in aghaidh an tsoicind go dtí gur próiseáladh gach ainm méadrach clibeáilte 40M. Bhain sé amach ansin ráta ionsáite marthanach de 1,5-2,0M pointe sonraí in aghaidh an tsoicind, mar sin ba é an toradh deiridh ná 1,7M pointe sonraí in aghaidh an tsoicind.

Tá na graif le haghaidh sraith ama uathúil 40M cosúil leis na graif do shraith ama uathúil 4M, mar sin déanaimis iad a scipeáil.

Torthaí

  • Tá TSDBanna nua-aimseartha in ann iatáin a phróiseáil do na milliúin sraith ama uathúla ar fhreastalaí amháin. Sa chéad alt eile, déanfaimid tástáil ar cé chomh maith agus a fheidhmíonn TSDBanna roghnú thar na milliúin sraitheanna ama uathúla.
  • De ghnáth léiríonn úsáid neamhleor LAP go bhfuil bac I/O ann. Féadfaidh sé a léiriú freisin go bhfuil an blocáil ró-gharbh, agus gan ach cúpla snáithe in ann rith ag an am céanna.
  • Tá an tranglam I/O ann, go háirithe i stóráil neamh-SSD, amhail gléasanna bloc fíorúla soláthraithe néal.
  • Soláthraíonn VictoriaMetrics an barrfheabhsú is fearr le haghaidh stórála mall, íseal I/O. Soláthraíonn sé an luas is fearr agus an cóimheas comhbhrú is fearr.

Íoslódáil Íomhá aon fhreastalaí VictoriaMetrics agus bain triail as ar do shonraí. Tá an dénártha statach comhfhreagrach ar fáil ag GitHub.

Léigh tuilleadh faoi VictoriaMetrics anseo Airteagal.

Nuashonrú: foilsithe alt a dhéanann comparáid idir feidhmíocht cuir isteach VictoriaMetrics le InfluxDB le torthaí atáirgthe.

Nuashonraigh #2: Léigh freisin alt ar scalability ingearach VictoriaMetrics vs InfluxDB vs TimescaleDB.

Nuashonraigh #3: Is foinse oscailte é VictoriaMetrics anois!

comhrá teileagram: https://t.me/VictoriaMetrics_ru1

Foinse: will.com

Add a comment