ProHoster > Blog > Pulega > Fa'ailoga maualuga a le TSDB VictoriaMetrics vs TimescaleDB vs InfluxDB
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):
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:
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.
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.
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:
O lo'o i luga le fa'amalama: VictoriaMetrics - Fa'aoga Bandwidth Disk i Su'ega Fa'aofi mo Fua Tulaga Tulaga 400K.
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.
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):
O lo'o i luga se fa'amalama: VictoriaMetrics - Fa'aofi le su'ega I/O fa'aoga mo 400K metrics tulaga ese.
O lo'o i luga se fa'amalama: InfluxDB - Fa'aofi le su'ega I/O fa'aoga mo 400K metric fa'apitoa.
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:
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.
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.
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:
O loʻo i luga le faʻamalama: VictoriaMetrics - Faʻaaogaina le bandwidth disk e faʻaofi ai 4M metrics tulaga ese.
O loʻo i luga se faʻamalama: InfluxDB - Faʻaaogaina le bandwidth disk e faʻaofi ai 4M metrics tulaga ese.
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:
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.
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.
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 :)
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.