Fa'ailoga maualuga a le TSDB VictoriaMetrics vs TimescaleDB vs InfluxDB

VictoriaMetrics, TimescaleDB ma InfluxDB na faʻatusatusa i mataupu muamua i luga o se faʻamaumauga faʻatasi ma le piliona faʻamatalaga faʻamaumauga o loʻo i le 40K faʻasologa o taimi tulaga ese.

I nai tausaga ua mavae sa i ai se vaitau o Zabbix. O 'au'aunaga u'amea ta'itasi e leai ni nai fa'ailoga - fa'aogaina o le CPU, fa'aogaina o le RAM, fa'aoga tisiki ma le fa'aogaina o feso'otaiga. I lenei auala, metrics mai le faitau afe o 'auʻaunaga e mafai ona ofi i le 40 afe faʻasologa tulaga ese, ma e mafai e Zabbix ona faʻaogaina MySQL e fai ma tua mo faʻamaumauga faʻasologa taimi :)

I le taimi nei na o ia node_exporter fa'atasi ai ma fa'atonuga fa'aletonu e tu'uina atu i luga ole 500 metrics ile averesi talimalo. E tele tagata faatau atu i fafo mo faʻamaumauga eseese, 'upega tafaʻilagi, masini faʻapipiʻi, ma isi. O mea uma tele ma sili atu talosaga amata ona seti faailoga eseese mo i latou lava. O loʻo i ai Kubernetes ma fuifui ma pusa e faʻaalia ai le tele o metrics. O lenei mea e mafua ai ona faʻaalia e 'auʻaunaga le faitau afe o metric tulaga ese i le talimalo. O lea la o le tulaga tulaga ese 40K taimi faasologa ua le toe maualuga le mana. O loʻo faʻauluuluga ma e tatau ona faigofie ona faʻatautaia e soʻo se TSDB faʻaonaponei i luga o se server e tasi.

O le a le numera tele o taimi tulaga ese i le taimi nei? Masalo 400K pe 4M? Po o le 40m? Se'i o tatou fa'atusatusa TSDB fa'aonaponei i nei fuainumera.

Fa'apipi'i se fa'ailoga

TSBS ose meafaigaluega fa'avasega lelei mo TSDBs. E faʻatagaina oe e faʻatupuina se numera faʻamaonia o metrics e ala i le pasia o le numera manaʻomia o taimi faʻasologa e vaevaeina i le 10 - fuʻa -fua (muamua -scale-var). 10 o le numera o fuataga (metrics) faʻatupuina i luga o talimalo taʻitasi poʻo le server. O faʻamaumauga nei na faʻaaogaina e faʻaaoga ai le TSBS mo le faʻailoga:

  • 400K fa'asologa taimi tulaga ese, 60 vaeluaga lua i le va o fa'amaumauga, fa'amaumauga e 3 aso atoa, ~ 1.7B numera atoa o fa'amaumauga.
  • 4M fa'asologa tulaga ese taimi, 600 vaeluaga lua, fa'amaumauga e 3 aso atoa, ~ 1.7B le aofa'i o fa'amaumauga.
  • 40M tulaga ese taimi faasologa, 1 itula vaeluaga, faʻamaumauga e va i le atoa 3 aso, ~ 2.8B numera atoa o faʻamaumauga.

O le kalani ma le 'au'aunaga sa fa'agasolo i taimi fa'apitoa n1-tulaga-16 i Google ao. O nei fa'ata'ita'iga sa iai fa'atonuga nei:

  • vCPUs: 16
  • TAMA: 60 GB
  • Teuina: Tulaga 1TB HDD. E maua ai le 120 Mbps faitau/tusi, 750 faitau galuega ile sekone ma le 1,5K tusitusi ile sekone.

TSDBs na maua mai ata aloaia docker ma tamoʻe i le docker ma faʻasologa nei:

  • VictoriaMetrics:

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

  • InfluxDB (-e) fa'atatau e mana'omia e lagolago ai le malosi maualuga. Va'ai fa'amatalaga i totonu fa'amaumauga):

    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 (faʻatulagaina na maua mai na faila):

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

O le fa'amaumauga o fa'amaumauga sa fa'atautaia ma 16 filo tutusa.

O lenei tala o lo'o iai na'o fa'ai'uga mo fa'aofi fa'ailoga. O faʻaiʻuga o le faʻailoga filifilia o le a faʻasalalau i se isi tala.

400K fa'asologa taimi tulaga ese

Tatou amata i elemene faigofie - 400K. I'uga fa'ailoga:

  • VictoriaMetrics: 2,6M fa'amaumauga fa'amaumauga ile sekone; RAM fa'aoga: 3 GB; tele fa'amaumauga mulimuli ile tisiki: 965 MB
  • InfluxDB: 1.2M fa'amaumauga fa'amaumauga ile sekone; Fa'aoga RAM: 8.5 GB; tele fa'amaumauga mulimuli i luga ole tisiki: 1.6 GB
  • Taimi: 849K fa'amaumauga fa'amaumauga ile sekone; Fa'aoga RAM: 2,5 GB; tele faʻamaumauga mulimuli i luga ole disk: 50 GB

E pei ona e va'ai i fa'ai'uga o lo'o i luga, e manumalo VictoriaMetrics i le fa'aofiina o fa'atinoga ma le fua fa'atatau. E manumalo le Timeline i le fa'aogaina o le RAM, ae fa'aogaina le tele o avanoa va'a - 29 bytes i le fa'amaumauga.

O loʻo i lalo kalafi faʻaogaina o le CPU mo TSDB taʻitasi i le taimi o le faʻailoga:

Fa'ailoga maualuga a le TSDB VictoriaMetrics vs TimescaleDB vs InfluxDB

O lo'o i luga le fa'amalama: VictoriaMetrics - uta CPU i le taimi o su'ega fa'aofi mo se 400K metric tulaga ese.

Fa'ailoga maualuga a le TSDB VictoriaMetrics vs TimescaleDB vs InfluxDB

O loʻo i luga le faʻamalama: InfluxDB - uta CPU i le taimi o suʻega faʻapipiʻi mo metric tulaga ese 400K.

Fa'ailoga maualuga a le TSDB VictoriaMetrics vs TimescaleDB vs InfluxDB

O loʻo i luga se faʻamalama: TimescaleDB - uta CPU i le taimi o suʻega faʻaofi mo se metric tulaga ese o le 400K.

VictoriaMetrics e fa'aoga uma vCPU avanoa, a'o InfluxDB e fa'aaogaina le ~ 2 mai le 16 vCPUs.

E na'o le 3-4 o le 16 vCPU e fa'aoga ai le taimi. O le maualuga o le iowait ma le faiga i le TimescaleDB time scale graph o loʻo faʻaalia ai se faʻamaʻi i totonu o le faʻaogaina / galuega (I / O) subsystem. Se'i o tatou va'ai i kalafi fa'aogaina o le bandwidth disk:

Fa'ailoga maualuga a le TSDB VictoriaMetrics vs TimescaleDB vs InfluxDB

O lo'o i luga le fa'amalama: VictoriaMetrics - Fa'aoga Bandwidth Disk i Su'ega Fa'aofi mo Fua Tulaga Tulaga 400K.

Fa'ailoga maualuga a le TSDB VictoriaMetrics vs TimescaleDB vs InfluxDB

O lo'o i luga se fa'amalama: InfluxDB - Fa'aoga Bandwidth Disk i luga ole Su'ega Fa'aofi mo Fua Tulaga Tulaga 400K.

Fa'ailoga maualuga a le TSDB VictoriaMetrics vs TimescaleDB vs InfluxDB

O lo'o i luga le fa'amalama: TimescaleDB - Fa'aoga Bandwidth Disk i luga ole Su'ega Fa'aofi mo Fua Tulaga Tulaga 400K.

VictoriaMetrics fa'amaumau fa'amaumauga ile 20 Mbps fa'atasi ai ma tumutumu e o'o ile 45 Mbps. O tumutumu e fetaui ma vaega tetele o tu'ufa'atasiga i le la'au NGO.

E tusia e InfluxDB faʻamaumauga ile 160 MB/s, aʻo le 1 TB drive e tatau ona faatapulaaina tusi le gaosiga 120 MB/s.

TimescaleDB e fa'atapula'aina i le tusiaina o le 120 Mbps, ae o nisi taimi e solia ai lenei tapula'a ma o'o atu i le 220 Mbps i tau maualuga. O nei tumutumu e fetaui ma vanu o le le lava o le faʻaogaina o le PPU i le kalafi muamua.

Se'i o tatou va'ai i kalafi fa'aoga/fa'aaogāina (I/O):

Fa'ailoga maualuga a le TSDB VictoriaMetrics vs TimescaleDB vs InfluxDB

O lo'o i luga se fa'amalama: VictoriaMetrics - Fa'aofi le su'ega I/O fa'aoga mo 400K metrics tulaga ese.

Fa'ailoga maualuga a le TSDB VictoriaMetrics vs TimescaleDB vs InfluxDB

O lo'o i luga se fa'amalama: InfluxDB - Fa'aofi le su'ega I/O fa'aoga mo 400K metric fa'apitoa.

Fa'ailoga maualuga a le TSDB VictoriaMetrics vs TimescaleDB vs InfluxDB

O lo'o i luga le fa'amalama: TimescaleDB - Fa'aofi le su'ega I/O fa'aoga mo 400K matā'upu tulaga ese.

Ua manino nei o le TimescaleDB o loʻo oʻo i lona I / O tapulaa, o lea e le mafai ai ona faʻaogaina le 12 vCPU o totoe.

4M fa'asologa taimi tulaga ese

4M taimi fa'asologa e foliga e fai si lu'itau. Ae pasi manuia a tatou tagata tauva i lenei su'ega. I'uga fa'ailoga:

  • VictoriaMetrics: 2,2M fa'amaumauga fa'amaumauga ile sekone; fa'aoga RAM: 6 GB; tele fa'amaumauga mulimuli ile tisiki: 3 GB.
  • InfluxDB: 330K faʻamaumauga i le sekone; Fa'aoga RAM: 20,5 GB; tele fa'amaumauga mulimuli ile tisiki: 18,4 GB.
  • TimescaleDB: 480K fa'amaumauga i le sekone; Fa'aoga RAM: 2,5 GB; tele faʻamaumauga mulimuli i luga ole disk: 52 GB.

Na pa'ū le fa'atinoga o le InfluxDB mai le 1,2M fa'amaumauga i le sekone mo le 400K taimi fa'asologa i le 330K fa'amaumauga i le sekone mo le 4M taimi fa'asologa. Ose fa'aletonu mata'ina tele lea fa'atusatusa i isi tagata tauva. Sei o tatou vaʻavaʻai i kalafi faʻaoga CPU e malamalama ai i le mafuaʻaga o lenei gau:

Fa'ailoga maualuga a le TSDB VictoriaMetrics vs TimescaleDB vs InfluxDB

O lo'o i luga se fa'amalama: VictoriaMetrics - fa'aogaina o le PPU i le fa'aofiina o su'ega mo se fa'asologa tulaga 4M taimi.

Fa'ailoga maualuga a le TSDB VictoriaMetrics vs TimescaleDB vs InfluxDB

O lo'o i luga se fa'amalama: InfluxDB - fa'aoga PPU i le taimi o le fa'aofiina o su'ega mo le fa'asologa o taimi fa'apitoa 4M.

Fa'ailoga maualuga a le TSDB VictoriaMetrics vs TimescaleDB vs InfluxDB

O loʻo i luga le faʻamalama: TimescaleDB - faʻaogaina o le PPU i le taimi o suʻega faʻapipiʻi mo se faʻasologa tulaga 4M taimi.

O lo'o fa'aogaina e VictoriaMetrics toetoe lava o mea uma e fa'aogaina ai le masini (CPU). O le pa'ū i le pito e fetaui ma le LSM o totoe o loʻo tuʻufaʻatasia pe a uma ona tuʻuina uma faʻamaumauga.

E fa'aaogaina e InfluxDB na'o le 8 o le 16 vCPU, a'o le TimsecaleDB e fa'aaogaina le 4 o le 16 vCPUs. O le a le mea e tutusa ai a latou kalafi? Tulaga maualuga iowait, lea e toe faʻaalia ai se I/O bottleneck.

TimescaleDB e maualuga lona sao system. Matou te manatu o le mana maualuga na mafua ai le tele o telefoni feaveaʻi poʻo le tele faaletonu laiti itulau.

Se'i o tatou va'ai i le fa'asologa o fa'asologa o le tisiki:

Fa'ailoga maualuga a le TSDB VictoriaMetrics vs TimescaleDB vs InfluxDB

O loʻo i luga le faʻamalama: VictoriaMetrics - Faʻaaogaina le bandwidth disk e faʻaofi ai 4M metrics tulaga ese.

Fa'ailoga maualuga a le TSDB VictoriaMetrics vs TimescaleDB vs InfluxDB

O loʻo i luga se faʻamalama: InfluxDB - Faʻaaogaina le bandwidth disk e faʻaofi ai 4M metrics tulaga ese.

Fa'ailoga maualuga a le TSDB VictoriaMetrics vs TimescaleDB vs InfluxDB

O loʻo i luga se faʻamalama: TimescaleDB - Faʻaaogaina le bandwidth disk e faʻaofi ai 4M metrics tulaga ese.

VictoriaMetrics na ausia le tapulaʻa o le 120 MB / s i le maualuga, ae o le averesi o le saoasaoa tusitusi o le 40 MB / s. E foliga mai o le tele o fusuaga LSM mamafa na faia i le taimi o le tumutumu.

O le InfluxDB e toe faʻapipiʻi mai le averesi o le tusitusi tusitusi o le 200 MB / s faʻatasi ai ma tumutumu e oʻo atu i le 340 MB / s i luga o se tisiki ma se tapulaa tusitusi o le 120 MB / s :)

TimescaleDB ua le toe fa'atapula'aina tisiki. E foliga mai e faʻatapulaʻaina e se isi mea e fesoʻotaʻi ma le maualuga maualuga системной uta CPU.

Se'i tatou va'ai i kalafi fa'aoga IO:

Fa'ailoga maualuga a le TSDB VictoriaMetrics vs TimescaleDB vs InfluxDB

O lo'o i luga se fa'amalama: VictoriaMetrics - Fa'aaogā le I/O i le taimi o le fa'aofiina o su'ega mo se fa'asologa tulaga ese 4M taimi.

Fa'ailoga maualuga a le TSDB VictoriaMetrics vs TimescaleDB vs InfluxDB

O loʻo i luga le faʻamalama: InfluxDB - Faʻaaogaina le I/O i le taimi o le faʻaofiina o suʻega mo se faʻasologa tulaga 4M taimi.

Fa'ailoga maualuga a le TSDB VictoriaMetrics vs TimescaleDB vs InfluxDB

O lo'o i luga le fa'amalama: TimescaleDB - I/O fa'aoga ile fa'aofiina o su'ega mo fa'asologa tulaga ese ole 4M.

O fa'aoga fa'aoga IO e fa'ata'ita'ia ai le fa'aogaina o le bandwidth disk - InfluxDB e fa'atapula'a IO, a'o VictoriaMetrics ma TimescaleDB o lo'o maua avanoa IO.

40M fa'asologa taimi tulaga ese

40M fa'asologa tulaga ese taimi sa tele tele mo InfluxDB :)

I'uga fa'ailoga:

  • VictoriaMetrics: 1,7M fa'amaumauga fa'amaumauga ile sekone; RAM fa'aoga: 29 GB; Fa'aoga avanoa tisiki: 17 GB.
  • InfluxDB: E leʻi maeʻa ona e manaʻomia le sili atu i le 60GB o le RAM.
  • TimescaleDB: 330K faʻamaumauga i le sekone, faʻaoga RAM: 2,5 GB; Fa'aoga avanoa tisiki: 84GB.

TimescaleDB o loʻo faʻaalia le maualalo ma le mautu le faʻaogaina o le RAM i le 2,5 GB - tutusa ma le tulaga ese 4M ma le 400K metrics.

VictoriaMetrics na fa'asolosolo malie i luga i se fua faatatau o le 100k fa'amaumauga i le sekone se'ia o'o ina fa'agasolo uma 40M fa'ailoga metric igoa. Ona ia ausia lea o se fua faatatau faʻapipiʻi tumau o 1,5-2,0M faʻamaumauga faʻamaumauga i le sekone, ma o le taunuuga mulimuli o le 1,7M faʻamaumauga faʻamaumauga i le sekone.

O kalafi mo le 40M tulaga ese taimi faasologa e tutusa ma kalafi mo le 4M tulaga tulaga ese faasologa, o lea tatou faamisi.

sailiiliga

  • TSDBs faʻaonaponei e mafai ona faʻapipiʻiina mea faʻapipiʻi mo le faitau miliona o taimi tulaga ese i luga o se server e tasi. I le isi tala, matou te su'eina pe fa'afefea ona fa'atino e TSDB filifiliga i le faitau miliona o fa'asologa o taimi tulaga ese.
  • O le le lava o le fa'aogaina o le PPU e masani ona fa'aalia ai se I/O bottleneck. E mafai fo'i ona ta'u mai ai o le poloka e matua maaa tele, ma na'o ni nai filo e mafai ona tamo'e i le taimi.
  • Ole I/O bottleneck o lo'o i ai, ae maise lava ile teuina ole SSD e pei o masini poloka fa'akomepiuta a le 'au'aunaga ao.
  • VictoriaMetrics e maua ai le fa'atonuga sili mo le fa'agesegese, maualalo le teuina o I/O. E maua ai le saoasaoa sili ona lelei ma le fua fa'atatau fa'amalosi.

Lalotoso VictoriaMetrics ata e tasi-server ma taumafai i lau faʻamatalaga. O lo'o maua le binary static fetaui i GitHub.

Faitau atili e uiga i VictoriaMetrics i lenei tusiga.

Fa'afouga: fa'asalalau tala fa'atusatusa fa'aofi fa'atinoga o VictoriaMetrics ma InfluxDB fa'atasi ai ma fa'ai'uga e mafai ona toe faia.

Fa'afouga #2: Faitau fo'i tala e uiga i le fa'asa'o sa'o VictoriaMetrics vs InfluxDB vs TimescaleDB.

Fa'afouga #3: VictoriaMetrics ua tatala nei punaoa!

Telegram talatalanoaga: https://t.me/VictoriaMetrics_ru1

puna: www.habr.com

Faaopoopo i ai se faamatalaga