Ko te tohu tohu TSDB mahi teitei VictoriaMetrics vs TimescaleDB vs InfluxDB

VictoriaMetrics, TimescaleDB me InfluxDB i whakatairitehia ki Tuhinga o mua i runga i te huingararaunga me te piriona tohu raraunga no te 40K raupapa wa ahurei.

I etahi tau kua pahure ake nei he wa o Zabbix. He torutoru noa iho nga tohu o ia tūmau karekau - te whakamahi PTM, te whakamahi RAM, te whakamahi kōpae me te whakamahi whatunga. Ma tenei ara, ka uru nga inenga mai i nga mano tini o nga kaitoro ki roto i te 40 mano nga raupapa wa ahurei, a ka taea e Zabbix te whakamahi i a MySQL hei tuara mo nga raraunga raupapa wa :)

I tenei wa anake node_exporter me nga whirihoranga taunoa e whakarato ana i runga i te 500 ine i runga i te kaihautu toharite. He maha kai kaweake mo te maha o nga papaa raraunga, nga tūmau tukutuku, nga punaha taputapu, me era atu. He maha nga momo inenga whai hua. Katoa he nui noa atu nga tono timata ki te whakatakoto i nga momo tohu mo ratou ano. He Kubernetes me nga tautau me nga putunga e whakaatu ana i nga inenga maha. Ko tenei ka puta mai i nga kaitoro nga mano tini o nga inenga ahurei mo ia kaihautu. Na ko te raupapa wa ahurei 40K kua kore he mana teitei. Kei te noho auraki, me ngawari te whakahaere e tetahi TSDB hou i runga i te tūmau kotahi.

He aha te nui o nga raupapa wa ahurei i tenei wa? 400K, 4M pea? 40m ranei? Me whakatauritea nga TSDB hou ki enei tau.

Te whakauru tohu tohu

TSBS he taputapu tohu tohu pai mo nga TSDB. Ka taea e koe te whakaputa i te maha o nga inenga ma te tuku i te maha o nga raupapa wa ka wehea ki te 10 - haki -tauine (o mua -scale-var). Ko te 10 te maha o nga inenga (nga inenga) ka mahia ki ia kaihautu, ki ia kaihautu ranei. Ko nga raraunga e whai ake nei i hangaia ma te whakamahi i te TSBS mo te tohu tohu:

  • 400K raupapa wa ahurei, 60 tuarua te waahi i waenga i nga tohu raraunga, ko nga raraunga mo te 3 ra katoa, ~1.7B te tapeke o nga tohu raraunga.
  • 4M raupapa wa ahurei, 600 te waahi tuarua, te roa o nga raraunga e 3 nga ra katoa, ~1.7B te tapeke o nga tohu raraunga.
  • 40M raupapa wa ahurei, 1 haora te waahi, nga raraunga mo nga ra 3 katoa, ~2.8B te tapeke o nga tohu raraunga.

Ko te kiritaki me te tūmau i te whakahaere i runga i nga waahanga kua whakatapua n1-paerewa-16 i roto i te kapua Google. Ko enei tauira e whai ake nei nga whirihoranga:

  • vCPU: 16
  • RAM: 60 GB
  • Rokiroki: Paerewa 1TB HDD. E whakarato ana i te 120 Mbps panui/tuhia te whakaputanga, 750 mahi panui mo ia hekona me te 1,5K tuhi mo ia hekona.

I tangohia mai nga TSDB mai i nga whakaahua docker whaimana me te whakahaere i roto i te docker me nga whirihoranga e whai ake nei:

  • VictoriaMetrics:

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

  • Ko nga uara InfluxDB (-e) e hiahiatia ana hei tautoko i te mana teitei. Tirohia nga korero kei roto tuhinga):

    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 (i tangohia te whirihoranga mai i reira kōnae):

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

I whakahaerehia te kaitautaunga raraunga me nga miro whakarara 16.

Kei roto i tenei tuhinga nga hua mo nga tohu tohu whakauru. Ko nga hua o te tohu tohu tohu ka whakaputahia ki tetahi tuhinga motuhake.

400K raupapa wa ahurei

Me timata ma nga huānga ngawari - 400K. Nga hua tohu:

  • VictoriaMetrics: 2,6M tohu raraunga mo ia hēkona; Whakamahinga RAM: 3 GB; rahinga raraunga whakamutunga i runga i te kōpae: 965 MB
  • InfluxDB: 1.2M nga tohu raraunga mo ia hekona; Whakamahinga RAM: 8.5 GB; rahinga raraunga whakamutunga i runga i te kōpae: 1.6 GB
  • Wā: 849K tohu raraunga ia hēkona; Whakamahinga RAM: 2,5 GB; rahinga raraunga whakamutunga i runga i te kōpae: 50 GB

Ka taea e koe te kite mai i nga hua i runga ake nei, ka toa a VictoriaMetrics i roto i nga mahi whakauru me te ōwehenga kōpeketanga. Ka toa te Rainarangi i roto i te whakamahi RAM, engari he nui te mokowā kōpae - 29 paita mo ia tohu raraunga.

Kei raro ko nga kauwhata whakamahi CPU mo ia TSDB i te wa o te tohu tohu:

Ko te tohu tohu TSDB mahi teitei VictoriaMetrics vs TimescaleDB vs InfluxDB

Kei runga ko te Whakaahuamata: VictoriaMetrics - Te utaina PTM i te wa o te whakamatautau whakauru mo tetahi inenga 400K ahurei.

Ko te tohu tohu TSDB mahi teitei VictoriaMetrics vs TimescaleDB vs InfluxDB

Kei runga ko te whakaahua: InfluxDB - Te utaina PTM i te wa o te whakamatautau whakauru mo te 400K inenga ahurei.

Ko te tohu tohu TSDB mahi teitei VictoriaMetrics vs TimescaleDB vs InfluxDB

Kei runga ko te Whakaahuamata: TimescaleDB - Te utaina PTM i te wa o te whakamatautau whakauru mo te inenga ahurei o te 400K.

Ka whakamahia e VictoriaMetrics nga vCPU katoa e waatea ana, ko te InfluxDB he iti te whakamahi ~2 i roto i te 16 vCPU.

E 3-4 noa o te 16 vCPU te whakamahi i te Tauine. Ko nga waahanga teitei o te iowait me te punaha i roto i te kauwhata taima TimescaleDB e tohu ana i te kohungahunga i roto i te punaha whakauru/putanga (I/O). Kia titiro tatou ki nga kauwhata whakamahi bandwidth kōpae:

Ko te tohu tohu TSDB mahi teitei VictoriaMetrics vs TimescaleDB vs InfluxDB

Kei runga ko te Whakaahuamata: VictoriaMetrics - Whakamahi Aratuku Kopae ki te Whakamatau Whakauru mo nga Ine Motuhake 400K.

Ko te tohu tohu TSDB mahi teitei VictoriaMetrics vs TimescaleDB vs InfluxDB

Kei runga ko te Whakaahuamata: InfluxDB - Whakamahi Aratuku Kōpae i runga i te Whakamatau Whakauru mo nga Ine Motuhake 400K.

Ko te tohu tohu TSDB mahi teitei VictoriaMetrics vs TimescaleDB vs InfluxDB

Kei runga ko te Whakaahuamata: TimescaleDB - Whakamahi Aratuku Kōpae i runga i te Whakamatau Whakauru mo nga Ine Motuhake 400K.

Ka tuhia e VictoriaMetrics nga raraunga ki te 20 Mbps me nga tihi ki te 45 Mbps. Ko nga tihi e rite ana ki nga whakakotahitanga waahanga nui o te rakau NGO.

Ka tuhia e InfluxDB nga raraunga i te 160 MB/s, i te mea he puku 1 TB kia iti tuhia te whakaputanga 120 MB/s.

He iti te TimescaleDB ki te tuhi i te 120 Mbps, engari i etahi wa ka pakaru tenei tepe ka tae ki te 220 Mbps i nga uara teitei. Ko enei tihi e rite ana ki nga raorao o te iti rawa o te whakamahi PTM i te kauwhata o mua.

Kia titiro tatou ki nga kauwhata whakamahinga/whakaputa (I/O):

Ko te tohu tohu TSDB mahi teitei VictoriaMetrics vs TimescaleDB vs InfluxDB

Kei runga ko te Whakaahuamata: VictoriaMetrics - Whakauruhia he whakamatautau I/O mo te 400K inenga ahurei.

Ko te tohu tohu TSDB mahi teitei VictoriaMetrics vs TimescaleDB vs InfluxDB

Kei runga ko te Whakaahuamata: InfluxDB - Whakauruhia he whakamatautau I/O mo te 400K inenga ahurei.

Ko te tohu tohu TSDB mahi teitei VictoriaMetrics vs TimescaleDB vs InfluxDB

Kei runga ko te Whakaahuamata: TimescaleDB - Whakauruhia te whakamahinga I/O whakamatautau mo te 400K inenga ahurei.

Kua marama inaianei kei te eke a TimescaleDB ki tana rohe I/O, na reira kaore e taea te whakamahi i nga toenga 12 vCPU.

4M raupapa wa ahurei

He uaua te ahua o nga raupapa wa 4M. Engari ka tutuki pai o taatau kaiwhakataetae i tenei whakamatautau. Nga hua tohu:

  • VictoriaMetrics: 2,2M nga tohu raraunga mo ia hekona; Whakamahinga RAM: 6 GB; rahinga raraunga whakamutunga i runga i te kōpae: 3 GB.
  • InfluxDB: 330K nga tohu raraunga ia rua; Whakamahinga RAM: 20,5 GB; rahinga raraunga whakamutunga i runga i te kōpae: 18,4 GB.
  • TimescaleDB: 480K nga tohu raraunga mo ia hekona; Whakamahinga RAM: 2,5 GB; rahinga raraunga whakamutunga i runga i te kōpae: 52 GB.

I heke iho te mahinga InfluxDB mai i te 1,2M tohu raraunga mo ia hekona mo te raupapa wa 400K ki te 330K tohu raraunga mo ia hekona mo te raupapa wa 4M. He mate nui tenei ki te whakataurite ki etahi atu whakataetae. Me titiro ki nga kauwhata whakamahi CPU kia mohio ai koe ki te take o tenei mate:

Ko te tohu tohu TSDB mahi teitei VictoriaMetrics vs TimescaleDB vs InfluxDB

Kei runga ko te Whakaahuamata: VictoriaMetrics - Te whakamahi PTM i te wa o te whakamatautau whakauru mo te raupapa wa 4M ahurei.

Ko te tohu tohu TSDB mahi teitei VictoriaMetrics vs TimescaleDB vs InfluxDB

Kei runga ko te Whakaahuamata: InfluxDB - Te whakamahi PTM i te wa o te whakamatautau whakauru mo nga raupapa wa 4M ahurei.

Ko te tohu tohu TSDB mahi teitei VictoriaMetrics vs TimescaleDB vs InfluxDB

Kei runga ko te Whakaahuamata: TimescaleDB - Te whakamahi PTM i te wa o te whakamatautau whakaurunga mo te raupapa wa 4M ahurei.

Ka whakamahia e VictoriaMetrics tata katoa o te mana tukatuka (CPU). Ko te taka i te mutunga e rite ana ki nga toenga hanumi LSM i muri i te whakaurunga o nga raraunga katoa.

Ka whakamahia e InfluxDB te 8 o te 16 vCPU anake, ka whakamahia e TimsecaleDB te 4 o te 16 vCPU. He aha te ōritetanga o ā rātou kauwhata? Tiri teitei iowait, e tohu ana ano he I/O bottleneck.

He nui te wahanga o TimescaleDB system. Ki ta matou whakaaro na te mana nui i hua mai he maha nga waea punaha, he maha ranei nga hapa iti o te whaarangi.

Kia titiro tatou ki nga kauwhata whakaputa kōpae:

Ko te tohu tohu TSDB mahi teitei VictoriaMetrics vs TimescaleDB vs InfluxDB

Kei runga ko te Whakaahuamata: VictoriaMetrics - Te whakamahi i te hōkaiipurangi kōpae hei whakauru i nga inenga ahurei 4M.

Ko te tohu tohu TSDB mahi teitei VictoriaMetrics vs TimescaleDB vs InfluxDB

Kei runga ko te whakaahua: InfluxDB - Te whakamahi i te bandwidth kōpae hei whakauru i nga inenga ahurei 4M.

Ko te tohu tohu TSDB mahi teitei VictoriaMetrics vs TimescaleDB vs InfluxDB

Kei runga ko te Whakaahuamata: TimescaleDB - Te whakamahi i te hōkaiipurangi kōpae hei whakauru i nga inenga ahurei 4M.

I eke a VictoriaMetrics ki te tepe o te 120 MB/s i te tihi, ko te tere tuhi toharite ko 40 MB/s. Te ahua nei he maha nga whakakotahitanga LSM taumaha i mahia i te wa o te tihi.

Ka pehia ano e InfluxDB te mahinga tuhi toharite o te 200 MB/s me nga tihi o runga ki te 340 MB/s i runga i te kōpae me te tepe tuhi o te 120 MB/s :)

Ko TimescaleDB kua kore e whakawhāitihia te kōpae. Te ahua nei he mea iti e tetahi atu mea e pa ana ki te waahanga teitei системной utaina PTM.

Me titiro ki nga kauwhata whakamahinga IO:

Ko te tohu tohu TSDB mahi teitei VictoriaMetrics vs TimescaleDB vs InfluxDB

Kei runga ko te Whakaahuamata: VictoriaMetrics - Te whakamahi I/O i te wa o te whakamatautau whakaurunga mo te raupapa wa 4M ahurei.

Ko te tohu tohu TSDB mahi teitei VictoriaMetrics vs TimescaleDB vs InfluxDB

Kei runga ko te Whakaahuamata: InfluxDB - Te whakamahi I/O i te wa o te whakamatautau whakauru mo te raupapa wa 4M ahurei.

Ko te tohu tohu TSDB mahi teitei VictoriaMetrics vs TimescaleDB vs InfluxDB

Kei runga ko te Whakaahuamata: TimescaleDB - Te whakamahi I/O i te wa o te whakamatautau whakauru mo te raupapa wa 4M ahurei.

Ko nga tauira whakamahi IO e whakaata ana i era o te bandwidth kōpae - He iti te InfluxDB i te IO, ko VictoriaMetrics me TimescaleDB he rauemi IO e waatea ana.

40M raupapa wa ahurei

He nui rawa te 40M raupapa wa ahurei mo InfluxDB :)

Nga hua tohu:

  • VictoriaMetrics: 1,7M nga tohu raraunga mo ia hekona; Whakamahinga RAM: 29 GB; Te whakamahi mokowā kōpae: 17 GB.
  • InfluxDB: Kaore i oti na te mea me nui ake i te 60GB RAM.
  • TimescaleDB: 330K nga tohu raraunga mo ia hekona, te whakamahi RAM: 2,5 GB; Te whakamahi mokowā kōpae: 84GB.

Ko te TimescaleDB e whakaatu ana i te tino iti me te u o te whakamahi RAM i te 2,5 GB - he rite ki nga waahanga motuhake 4M me te 400K.

Ka piki haere a VictoriaMetrics ki te 100k nga tohu raraunga mo ia hekona tae noa ki te tukatuka i nga ingoa inenga 40M kua tohua. Ka eke ia ki te reeti whakauru 1,5-2,0M nga tohu raraunga mo ia hekona, na ko te hua whakamutunga ko te 1,7M nga tohu raraunga mo ia hekona.

He rite nga kauwhata mo te 40M rangatū wa ahurei ki nga kauwhata mo te 4M rangatū wa ahurei, no reira me pekehia.

kitenga

  • Ko nga TSDB hou e kaha ana ki te tukatuka whakauru mo nga miriona o nga raupapa waahi ahurei i runga i te tūmau kotahi. I roto i te tuhinga e whai ake nei, ka whakamatauhia e maatau te pai o nga TSDB ki te kowhiringa puta noa i nga miriona raupapa wa ahurei.
  • Ko te iti rawa o te whakamahi PTM e tohu ana i te kohungahunga I/O. Ka tohu ano pea he tino marara te aukati, he ruarua noa nga miro ka taea te rere i te wa kotahi.
  • Kei te noho tonu te I/O bottleneck, ina koa i roto i te rokiroki kore-SSD penei i nga taputapu paraka mariko a nga kaiwhakarato kapua.
  • Ka whakaratohia e VictoriaMetrics te tino arotautanga mo te puhoi, te iti o te rokiroki I/O. E whakarato ana i te tere pai me te ōwehenga kōpeketanga pai.

Tikiake VictoriaMetrics whakaahua tūmau kotahi ka whakamatau i to raraunga. Kei te waatea te rua pateko e rite ana ki GitHub.

Pānuihia atu mo VictoriaMetrics i tenei Tuhinga.

Whakahou: whakaputaina tuhinga whakatairite i te mahi whakauru a VictoriaMetrics me InfluxDB me nga hua ka taea te whakaputa.

Whakahoutanga #2: Panuitia hoki tuhinga mo te whakahiato poutū VictoriaMetrics vs InfluxDB vs TimescaleDB.

Whakahōu #3: Ko VictoriaMetrics he puna tuwhera inaianei!

Kōrerorero Telegram: https://t.me/VictoriaMetrics_ru1

Source: will.com

Tāpiri i te kōrero