Boemo bo phahameng ba ts'ebetso ea TSDB VictoriaMetrics vs TimescaleDB vs InfluxDB

VictoriaMetrics, TimescaleDB le InfluxDB li ile tsa bapisoa ho sehlooho se fetileng ho dataset e nang le lintlha tse bilione tsa letoto la nako le ikhethang la 40K.

Lilemong tse 'maloa tse fetileng ho ne ho e-na le mehla ea Zabbix. Seva e 'ngoe le e' ngoe ea tšepe e se nang letho e ne e se na matšoao a fetang a 'maloa - ts'ebeliso ea CPU, ts'ebeliso ea RAM, ts'ebeliso ea disk le ts'ebeliso ea marang-rang. Ka tsela ena, metrics e tsoang ho li-server tse likete e ka lekana letoto la linako tse ikhethang tsa 40, 'me Zabbix e ka sebelisa MySQL joalo ka morao bakeng sa lintlha tsa letoto la nako :)

Hona joale feela node_exporter ka litlhophiso tsa kamehla li fana ka metrics e fetang 500 ho moamoheli ea tloaelehileng. Ho na le tse ngata barekisi ba kantle bakeng sa li-database tse fapaneng, li-server, lisebelisoa tsa hardware, joalo-joalo. Kaofela li fana ka mefuta e fapaneng ea metrics ea bohlokoa. Tsohle likopo tse ngata le ho feta qala ho ipehela matšoao a fapaneng. Ho na le Kubernetes e nang le lihlopha le li-pods tse pepesang metrics e mengata. Sena se fella ka hore li-server li hlahise likete tsa metrics e ikhethang moamoheli ka mong. Kahoo letoto le ikhethang la nako la 40K ha le sa le matla a phahameng. E ntse e tloaeleha 'me e lokela ho sebetsoa habonolo ke TSDB efe kapa efe ea sejoale-joale ho seva se le seng.

Letoto le leholo la linako tse ikhethang ke bokae ha joale? Mohlomong 400K kapa 4M? Kapa 40m? Ha re bapiseng li-TSDB tsa sejoale-joale le linomoro tsena.

Ho kenya benchmark

TSBS ke sesebelisoa se setle sa ho beha li-benchmarking bakeng sa TSDBs. E u lumella ho hlahisa palo e fapaneng ea metrics ka ho fetisa palo e hlokahalang ea letoto la nako le arotsoeng ke 10 - folakha. -bolela (ea pele -scale-var). 10 ke palo ea litekanyo (metrics) e hlahisoang ho moamoheli e mong le e mong kapa seva. Lintlha tse latelang li entsoe ho sebelisoa TSBS bakeng sa benchmark:

  • 400K letoto la nako e ikhethang, nako ea bobeli ea 60 lipakeng tsa lintlha tsa data, data e nka matsatsi a 3 a felletseng, ~ 1.7B kakaretso ea lintlha tsa lintlha.
  • Letoto la nako le ikhethang la 4M, nako ea metsotsoana ea 600, data e nka matsatsi a 3 a felletseng, ~ 1.7B kakaretso ea lintlha tsa lintlha.
  • Letoto la nako le ikhethileng la 40M, nako ea hora ea 1, data e nka matsatsi a 3 a felletseng, ~ 2.8B kakaretso ea lintlha tsa lintlha.

Moreki le seva li ne li sebetsa maemong a ikhethileng n1-e tloaelehileng-16 ho Google cloud. Liketsahalo tsena li ne li e-na le litlhophiso tse latelang:

  • li-vCPU: 16
  • RAM: 60 GB
  • Polokelo: HDD e tloaelehileng ea 1TB. E fana ka 120 Mbps ea ho bala / ho ngola ka mokhoa oa ho bala, ts'ebetso ea ho bala ea 750 motsotsoana 'me 1,5K e ngola ka motsotsoana.

Li-TSDB li ntšitsoe litšoantšong tsa semmuso tsa docker mme li tsamaisoa ka har'a docker ka meralo e latelang:

  • VictoriaMetrics:

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

  • Litekanyetso tsa InfluxDB (-e) lia hlokahala ho ts'ehetsa matla a phahameng. Sheba lintlha ho litokomane):

    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 (sebopeho se nkiloeng ho e faele):

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

Sesebelisoa sa data se ne se tsamaisoa ka likhoele tse 16 tse bapileng.

Sengoliloeng sena se na le liphetho feela tsa litekanyetso tsa ho kenya. Liphetho tsa palo e khethiloeng li tla phatlalatsoa sengoloa se arohaneng.

400K letoto la nako le ikhethang

Ha re qale ka lintho tse bonolo - 400K. Liphetho tsa benchmark:

  • VictoriaMetrics: lintlha tsa data tsa 2,6M motsotsoana; Tšebeliso ea RAM: 3 GB; boholo ba data ho disk: 965 MB
  • InfluxDB: Lintlha tsa lintlha tsa 1.2M motsotsoana; Tšebeliso ea RAM: 8.5 GB; boholo ba data ba ho qetela ho disk: 1.6 GB
  • Nako ea nako: lintlha tsa data tsa 849K motsotsoana; Tšebeliso ea RAM: 2,5 GB; boholo ba data ba ho qetela ho disk: 50 GB

Joalo ka ha u bona ho tsoa liphethong tse kaholimo, VictoriaMetrics e hlola ts'ebetsong ea ho kenyelletsa le karo-karolelano ea khatello. Nako ea nako e hapa ts'ebeliso ea RAM, empa e sebelisa sebaka se ngata sa disk - 29 bytes ka ntlha ea data.

Ka tlase ke li-graph tsa ts'ebeliso ea CPU bakeng sa e 'ngoe le e' ngoe ea TSDB nakong ea benchmark:

Boemo bo phahameng ba ts'ebetso ea TSDB VictoriaMetrics vs TimescaleDB vs InfluxDB

Ka holimo ke skrini: VictoriaMetrics - CPU load nakong ea teko ea ho kenya bakeng sa metric e ikhethang ea 400K.

Boemo bo phahameng ba ts'ebetso ea TSDB VictoriaMetrics vs TimescaleDB vs InfluxDB

Ka holimo ke setšoantšo sa skrini: InfluxDB - CPU load nakong ea teko ea ho kenya bakeng sa metric 400K e ikhethang.

Boemo bo phahameng ba ts'ebetso ea TSDB VictoriaMetrics vs TimescaleDB vs InfluxDB

Ka holimo ke skrini: TimescaleDB - CPU load nakong ea teko ea ho kenya bakeng sa metric e ikhethang ea 400K.

VictoriaMetrics e sebelisa li-vCPU tsohle tse fumanehang, ha InfluxDB e sa sebelise ~ 2 ho tse 16 vCPU.

Nako e sebelisa feela 3-4 ea 16 vCPUs. Likarolo tse phahameng tsa iowait le sistimi ho graph ea TimescaleDB timescale e bonts'a botlolo tsamaisong e nyane ea input/output (I/O). Ha re shebeng li-graph tsa tšebeliso ea li-bandwidth tsa disk:

Boemo bo phahameng ba ts'ebetso ea TSDB VictoriaMetrics vs TimescaleDB vs InfluxDB

Ka holimo ke setšoantšo sa skrini: VictoriaMetrics - Tšebeliso ea Disk Bandwidth Test Insertion for Unique Metrics 400K.

Boemo bo phahameng ba ts'ebetso ea TSDB VictoriaMetrics vs TimescaleDB vs InfluxDB

Ka holimo ke setšoantšo sa skrini: InfluxDB - Tšebeliso ea Disk Bandwidth ho Teko ea Kenyeletso bakeng sa Unique Metrics 400K.

Boemo bo phahameng ba ts'ebetso ea TSDB VictoriaMetrics vs TimescaleDB vs InfluxDB

Ka holimo ke setšoantšo sa skrini: TimescaleDB - Tšebeliso ea Disk Bandwidth ho Teko ea Kenyeletso bakeng sa Unique Metrics 400K.

VictoriaMetrics e tlaleha data ho 20 Mbps ka litlhōrō ho fihla ho 45 Mbps. Litlhōrō li lumellana le ho kopana ho hoholo ha karolo ea sefate NGO.

InfluxDB e ngola data ho 160 MB/s, ha koloi e le 1 TB e lokela ho fokotsoa ngola tlhahiso 120 MB/s.

TimescaleDB e lekanyelitsoe ho ngola tlhahiso ea 120 Mbps, empa ka linako tse ling e tlōla moeli ona mme e fihla ho 220 Mbps ka litekanyetso tse phahameng. Litlhōrō tsena li lumellana le likhohlo tsa tšebeliso e sa lekaneng ea CPU ho graph e fetileng.

Ha re shebeng li-graph tsa ts'ebeliso ea li-input/output (I/O):

Boemo bo phahameng ba ts'ebetso ea TSDB VictoriaMetrics vs TimescaleDB vs InfluxDB

Ka holimo ke setšoantšo sa skrini: VictoriaMetrics - Kenya tlhahlobo ea tlhahlobo ea I/O bakeng sa metrics e ikhethang ea 400K.

Boemo bo phahameng ba ts'ebetso ea TSDB VictoriaMetrics vs TimescaleDB vs InfluxDB

Ka holimo ke setšoantšo sa skrini: InfluxDB - Kenya tlhahlobo ea tlhahlobo ea I/O bakeng sa metrics e ikhethang ea 400K.

Boemo bo phahameng ba ts'ebetso ea TSDB VictoriaMetrics vs TimescaleDB vs InfluxDB

Ka holimo ke setšoantšo sa skrini: TimescaleDB - Kenya tlhahlobo ea tlhahlobo ea I/O bakeng sa metrics e ikhethang ea 400K.

Hona joale ho hlakile hore TimescaleDB e fihla moeling oa I/O, kahoo e ke ke ea sebelisa li-vCPU tse 12 tse setseng.

Letoto la nako le ikhethang la 4M

Letoto la nako la 4M le shebahala le le thata. Empa baphadisani ba rona ba feta tlhahlobo ena ka katleho. Liphetho tsa benchmark:

  • VictoriaMetrics: lintlha tsa lintlha tsa 2,2M motsotsoana; Tšebeliso ea RAM: 6 GB; boholo ba data ba ho qetela ho disk: 3 GB.
  • InfluxDB: Lintlha tsa data tsa 330K motsotsoana; Tšebeliso ea RAM: 20,5 GB; boholo ba data ho disk: 18,4 GB.
  • TimescaleDB: Lintlha tsa data tsa 480K motsotsoana; Tšebeliso ea RAM: 2,5 GB; boholo ba data ba ho qetela ho disk: 52 GB.

Ts'ebetso ea InfluxDB e theohile ho tloha ho lintlha tsa data tse 1,2M motsotsoana bakeng sa letoto la nako la 400K ho ea ho lintlha tse 330K motsotsoana bakeng sa letoto la nako la 4M. Ena ke tahlehelo e kholo ea ts'ebetso ha e bapisoa le bahlolisani ba bang. Ha re shebeng li-graph tsa ts'ebeliso ea CPU ho utloisisa sesosa sa tahlehelo ena:

Boemo bo phahameng ba ts'ebetso ea TSDB VictoriaMetrics vs TimescaleDB vs InfluxDB

Ka holimo ke skrini: VictoriaMetrics - Tšebeliso ea CPU nakong ea teko ea ho kenya bakeng sa letoto le ikhethang la nako la 4M.

Boemo bo phahameng ba ts'ebetso ea TSDB VictoriaMetrics vs TimescaleDB vs InfluxDB

Ka holimo ke skrini: InfluxDB - Tšebeliso ea CPU nakong ea teko ea ho kenya bakeng sa letoto le ikhethang la nako la 4M.

Boemo bo phahameng ba ts'ebetso ea TSDB VictoriaMetrics vs TimescaleDB vs InfluxDB

Ka holimo ke skrini: TimescaleDB - Tšebeliso ea CPU nakong ea teko ea ho kenya bakeng sa letoto le ikhethang la nako la 4M.

VictoriaMetrics e sebelisa hoo e batlang e le matla ohle a ho sebetsa (CPU). Ho theoha qetellong ho lumellana le LSM e setseng e kopanya ka mor'a hore data eohle e kenngoe.

InfluxDB e sebelisa feela 8 ea 16 vCPU, ha TimsecaleDB e sebelisa 4 ea 16 vCPU. Li-graph tsa bona li tšoana ka eng? Kabelo e phahameng iowait, e leng se bontšang hape hore ho na le bothata ba I/O.

TimescaleDB e na le kabelo e phahameng system. Re nahana hore matla a phahameng a bakile mehala e mengata ea sistimi kapa tse ngata liphoso tse nyane tsa leqephe.

Ha re shebeng li-graph tsa disk throughput:

Boemo bo phahameng ba ts'ebetso ea TSDB VictoriaMetrics vs TimescaleDB vs InfluxDB

Ka holimo ke setšoantšo sa skrini: VictoriaMetrics - Ho sebelisa disk bandwidth ho kenya metrics e ikhethang ea 4M.

Boemo bo phahameng ba ts'ebetso ea TSDB VictoriaMetrics vs TimescaleDB vs InfluxDB

Ka holimo ke setšoantšo sa skrini: InfluxDB - Ho sebelisa disk bandwidth ho kenya metrics e ikhethang ea 4M.

Boemo bo phahameng ba ts'ebetso ea TSDB VictoriaMetrics vs TimescaleDB vs InfluxDB

Ka holimo ke setšoantšo sa skrini: TimescaleDB - Ho sebelisa disk bandwidth ho kenya metrics e ikhethang ea 4M.

VictoriaMetrics e fihlile moeling oa 120 MB/s tlhōrōng, ha lebelo le tloaelehileng la ho ngola e ne e le 40 MB/s. Ho ka etsahala hore ebe li-fusion tse ngata tse boima tsa LSM li entsoe nakong ea tlhoro.

InfluxDB e boetse e petetsa kakaretso ea ho ngola ea 200 MB/s ka litlhoro tse fihlang ho 340 MB/s ho disk e nang le moeli oa ho ngola oa 120 MB/s :)

TimescaleDB ha e sa le disk e lekantsoeng. E bonahala e lekanyelitsoe ke ntho e 'ngoe e amanang le tekanyo e phahameng системной Sesebelisoa sa CPU.

Ha re shebeng li-graph tsa tšebeliso ea IO:

Boemo bo phahameng ba ts'ebetso ea TSDB VictoriaMetrics vs TimescaleDB vs InfluxDB

Ka holimo ke skrini: VictoriaMetrics - Ho sebelisa I/O nakong ea tlhahlobo ea ho kenya bakeng sa letoto le ikhethang la nako la 4M.

Boemo bo phahameng ba ts'ebetso ea TSDB VictoriaMetrics vs TimescaleDB vs InfluxDB

Ka holimo ke skrini: InfluxDB - Ho sebelisa I/O nakong ea teko ea ho kenya bakeng sa letoto le ikhethang la nako la 4M.

Boemo bo phahameng ba ts'ebetso ea TSDB VictoriaMetrics vs TimescaleDB vs InfluxDB

Ka holimo ke skrini: Tšebeliso ea TimescaleDB - I/O nakong ea teko ea ho kenya bakeng sa letoto le ikhethang la nako la 4M.

Mekhoa ea ts'ebeliso ea IO e bonts'a ea disk bandwidth - InfluxDB e IO e lekanyelitsoe, athe VictoriaMetrics le TimescaleDB li na le lisebelisoa tsa IO.

Letoto la nako le ikhethang la 40M

Letoto la nako le ikhethileng la 40M le ne le le leholo haholo bakeng sa InfluxDB :)

Liphetho tsa benchmark:

  • VictoriaMetrics: lintlha tsa lintlha tsa 1,7M motsotsoana; Tšebeliso ea RAM: 29 GB; Tšebeliso ea sebaka sa disk: 17 GB.
  • InfluxDB: Ha e ea qeta hobane e ne e hloka ho feta 60GB ea RAM.
  • TimescaleDB: lintlha tsa data tsa 330K motsotsoana, tšebeliso ea RAM: 2,5 GB; Tšebeliso ea sebaka sa disk: 84GB.

TimescaleDB e bonts'a ts'ebeliso ea RAM e tlase haholo le e tsitsitseng ho 2,5 GB - e ts'oanang le ea 4M le 400K metrics e ikhethang.

VictoriaMetrics e ile ea nyoloha butle ka sekhahla sa lintlha tse 100k motsotsoana ho fihlela mabitso ohle a li-tagged a 40M a sebetsoa. Eaba o finyella tekanyo e tsitsitseng ea ho kenya lintlha tsa lintlha tsa 1,5-2,0M motsotsoana, kahoo sephetho sa ho qetela e ne e le lintlha tsa lintlha tsa 1,7M motsotsoana.

Li-graph tsa letoto la nako le ikhethang la 40M li tšoana le li-graph bakeng sa letoto la nako le ikhethileng la 4M, kahoo ha re li tloleng.

fumanoeng ke

  • Li-TSDB tsa sejoale-joale li khona ho sebetsana le tse kentsoeng bakeng sa limilione tsa letoto la nako le ikhethileng ho seva se le seng. Sengoliloeng se latelang, re tla leka hore na TSDBs e etsa khetho hantle hakae ho limilione tsa letoto la nako le ikhethileng.
  • Tšebeliso e sa lekaneng ea CPU hangata e bontša bothata ba I/O. E ka boela ea bontša hore thibelo e mahoashe haholo, ka likhoele tse 'maloa feela tse khonang ho matha ka nako.
  • I/O bottleneck e teng, haholo-holo polokelong eo e seng ea SSD joalo ka lisebelisoa tsa block tsa bafani ba maru.
  • VictoriaMetrics e fana ka ts'ebetso e ntle ka ho fetisisa bakeng sa polokelo e liehang, e tlase ea I/O. E fana ka lebelo le molemo ka ho fetisisa le tekanyo e ntle ka ho fetisisa ea compression.

Khoasolla VictoriaMetrics setšoantšo sa seva se le seng 'me u e leke ho data ea hau. Binary e ts'oanang e tsitsitseng e fumaneha ho GitHub.

Bala haholoanyane ka VictoriaMetrics ho sena sehlooho.

Nchafatso: e hatisitsoe sengoloa se bapisa ts'ebetso e kentsoeng ea VictoriaMetrics le InfluxDB e nang le liphetho tse ka ikatisang.

Nchafatso #2: Bala hape sengoloa se mabapi le scalability e emeng VictoriaMetrics vs InfluxDB vs TimescaleDB.

Nchafatso #3: VictoriaMetrics joale ke mohloli o bulehileng!

Puisano ea Telegraph: https://t.me/VictoriaMetrics_ru1

Source: www.habr.com

Eketsa ka tlhaloso