VictoriaMetrics, TimescaleDB αα·α InfluxDB ααααΌαααΆααααααααααα
αααα»α
ααΈαααΈααααΆααα»αααΆααααα Zabbix α αααΆαααΈαααααααααααΈαα½αααα·αααΆαααΌα ααΆααααΎαααΈααΈαααΈαα - ααΆαααααΎααααΆαααααΈααΈααΌ ααΆαααααΎααααΆαα RAM ααΆαααααΎααααΆααααΆα αα·αααΆαααααΎααααΆαααααααΆαα αα·ααΈααα αααααΆααααΈαααΆαααΈαααααΆααααΆααα’αΆα ααααΉααααααΈαααααααΆαα·αααα ααα½α 40 ααΆαα α αΎα Zabbix α’αΆα ααααΎ MySQL ααΆαααααα·ααΈααΆαααααααααααΆαααα·αααααααααααΈαααααααΆ :)
αα
αα
α»αααααααα
ααααΆααα―α
ααΎα ααα½αααα αααΎααααααααΈαααααααΆαα·ααααα ααααααααΊααΆα’αααΈ? αααα ααααΆ 400K α¬ 4M? α¬ 40 αααααα? α αΌαααΎααααααααα TSDBs ααααΎααα ααΉααααααΆαααααα
ααΆαααα‘αΎααααααααΆα
-scale-var
) 10 ααΊααΆα
ααα½ααααααΆαα (αααααα) ααααααααΎααα
ααΎαααΆαααΈα α¬αααΆαααΈαααααΈαα½ααα αααα»ααα·ααααααααΆααααααααααΌαααΆααααααΎααααααααΎ TSBS αααααΆαααααα
- αααααΈαααααααΆαα·ααα 400K α αααααααα 60 αα·ααΆααΈαααΆαα ααα»α αα·αααααα αα·ααααααααΆααααααα 3 ααααααα ~ 1.7B α ααα½αααα»αααα ααα»α αα·ααααααα
- αααααΈαααααααΆαα·ααα 4M, α αααααααα 600 αα·ααΆααΈ, αα·ααααααααΆααααααα 3 ααααααα, ~ 1.7B α ααα½αααα»αααα ααα»α αα·ααααααα
- αααααΈαααααααΆαα·ααα 40M α αααααααα 1 αααα αα·ααααααααΆαααααααααα 3 αααα ~ 2.8B α ααα½αααα»αααα ααα»α αα·ααααααα
αααΆαααΈαααααα αα·ααααΆαααΈααααααα»αααααΎαααΆαααΎααααΈααΆααααΆαα
- vCPUsα α‘α¦
- α’αααα αα αΆα: 60 GB
- ααα ααααα»αα HDD αααααααΆα 1TB α ααΆαααααααΌαααΆαα’αΆα/ααααα 120 Mbps ααααΎαααΆαα’αΆα 750 αααα»ααα½ααα·ααΆααΈ αα·α 1,5K ααααααααα»ααα½ααα·ααΆααΈα
TSDBs ααααΌαααΆααααααα ααααΈααΌαααΆα docker ααααΌαααΆα α αΎαααααΎαααΆααααα»α docker ααΆαα½αααΉαααΆααααααααΌα ααΆααααααα
-
VictoriaMetricsα
docker run -it --rm -v /mnt/disks/storage/vmetrics-data:/victoria-metrics-data -p 8080:8080 valyala/victoria-metrics
-
ααααα InfluxDB (-e) ααααΌαααΆαααΆαααΆαααΎααααΈααΆααααααΆααααααααα ααΌαααΎαααααααΆααααα’α·ααα αααα»α
α―αααΆα ):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 (ααΆαααααααα ααΆααααααααααααΈ
ααΆ α―αααΆα):
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
αααααα·ααΈαααα»ααα·ααααααααααΌαααΆαααααΎαααΆαααΆαα½α 16 αααααααΆαααΆα‘ααα
α’ααααααααααΆααααααααααααΆααααααΆααααα αΌαααααΌα ααααααβααβααΆαβααααΎαααΎαβαααβααΉαβααααΌαβααΆαβααααα»αααβααααΆαβαααα»αβα’αααααβααΆα αβαααβα‘ααβαα½αα
αααααΈαααααααΆαα·ααα 400K
α αΌαα αΆααααααΎαααΆαα½αααΉαααΆαα»ααΆαααα - 400K α ααααααβαααααααΆαα
- VictoriaMetricsα α ααα»α αα·αααααα 2,6M αααα»ααα½ααα·ααΆααΈ; ααΆαααααΎααααΆαα RAM: 3 GB; ααα ααα·ααααααα α»αααααααα ααΎααΆαα 965 MB
- InfluxDB: 1.2M α ααα»α αα·αααααααααα»ααα½ααα·ααΆααΈ; ααΆαααααΎααααΆαα RAM: 8.5 GB; ααα ααα·ααααααα α»αααααααα ααΎααΆαα 1.6 GB
- ααΆαααααααΆααααααααΆα α¨α€α©K α ααα»α αα·αααααααααα»ααα½ααα·ααΆααΈ; ααΆαααααΎααααΆαα RAM: 849 GB; ααα ααα·ααααααα α»αααααααα ααΎααΆαα 2,5 GB
ααΌα αααα’αααα’αΆα ααΎαααΎαααΈααααααααΆαααΎ VictoriaMetrics αααααααα»αααΆαα’αα»ααααααΆααααα αΌα αα·ααααΆααΆααααααα αΆααα αααααΆαααααααααΆαααααααα»αααΆαααααΎααααΆαα RAM ααα»ααααααΆααααΎααα αααΆαα αααΎα - 29 αααααα»ααα½αα ααα»α αα·ααααααα
ααΆαααααααααααΆααααΆα ααααααΆαααααΎααααΆαααααΈααΈααΌαααααΆαα TSDBs ααΈαα½αααααα»αα’αα‘α»ααααααααααααααααΆαα
ααΆαααΎααΊααΆααΌαααα’ααααααα VictoriaMetrics - ααΆααααα»ααααΈααΈααΌα’αα‘α»ααααααααΎααααααααα αΌααααααΆαααααααα 400K αααα½ααααα
ααΆαααΎααΊααΆααΌαααα’ααααααα InfluxDB - ααΆααααα»ααααΈααΈααΌααα‘α»ααααααααΎααααααααα αΌααααααΆαααααααααααα½αααα 400K α
ααΆαααΎααΊααΆααΌαααα’ααααααα TimescaleDB - ααΆααααα»ααααΈααΈααΌα’αα‘α»ααααααααΎααααααααα αΌααααααΆαααααααααααα½αααααα 400K α
VictoriaMetrics ααααΎ vCPUs αααααΆαααΆααα’αα ααααααααα InfluxDB ααααΎααααΆαααα·α ααΆα ~2 αααα»αα αααα vCPUs 16 α
Timescale ααααΎαα 3-4 αα vCPUs 16 ααα»αααααα αααΆααΆαααααααααα iowait αα·ααααααααααα αααα»αααααΆα ααααααΆααααααααΆ TimescaleDB αααα αΆαααΈααΆαααΆααααΆαααα αααα»ααααααααααα input/output (I/O) α ααΌααααα‘ααααΎαααααΆα ααααααΆαααααΎααααΆααααααα·ααααααΌαααααααΆαα
ααΆαααΎααΊααΆααΌαααα’ααααααα VictoriaMetrics - Disk Bandwidth Usage in Insertion Test for Unique Metrics 400Kα
ααΆαααΎααΊααΆααΌαααα’ααααααα InfluxDB - Disk Bandwidth Usage on Insertion Test for Unique Metrics 400Kα
ααΆαααΎααΊααΆααΌαααα’ααααααα TimescaleDB - Disk Bandwidth Usage on Insertion Test for Unique Metrics 400Kα
VictoriaMetrics αααααααΆαα·αααααααα
ααααΏα 20 Mbps ααΆαα½αααΉαααααα·αααααΌααα αΌαααα 45 Mbps α ααααΌαααααΌαααααΆαα
ααΉαααΆααααα
αΌαααααΆααααααααααα
αααα»αααΎαααΎ
InfluxDB ααααααα·αααααααααα»αααααΏα 160 MB/s αααααααΆα 1 TB
TimescaleDB ααααΌαααΆαααααααααα»αααΆααααααααααααΆαα 120 Mbps ααα»αααααααααααααΆααααααααααααααααα αΎαααΆαααα 220 Mbps αααα»ααααααααααααααα»αα ααααΌαααΆαααααααααΌαααααΆαα ααΉααααααααααΆαααααΎααααΆαααααΈααΈααΌαα·ααααααααααΆαααα αααα»αααααΆα αααα»αα
ααΌααααα‘ααααΎαααααΆα ααααΆαααααΎααααΆαααααα αΌα/αα·ααααα (I/O)α
ααΆαααΎααΊααΆααΌαααα’ααααααα VictoriaMetrics - αααα αΌαααΆαααααΎααααΆααααααα I/O αααααΆαααααααααααα½αααα 400Kα
ααΆαααΎααΊααΆααΌαααα’ααααααα InfluxDB - αααα αΌαααΆαααααΎααααΆααααααα I/O αααααΆαααααααααααα½αααα 400K α
ααΆαααΎααΊααΆααΌαααα’ααααααα TimescaleDB - αααα αΌαααΆαααααΎααααΆααααααα I/O αααααΆαααααααααααα½αααα 400K α
α₯α‘αΌααααααΆα αααΆααααΆααααΆ TimescaleDB αααα»αααΆαααααααααααα I/O ααααααΆ ααΌα ααααααΆαα·αα’αΆα ααααΎ vCPU ααααα ααα 12 ααΆαααα
αααααΈαααααααΆαα·ααα 4M
αααααΈαααααααΆ 4M ααΎααα αα·ααΆαααααα·α α ααα»ααααα’αααααααα½αααααααααααααΎαααΆααααα‘αααΆαααααααααααα ααααααβαααααααΆαα
- VictoriaMetricsα α ααα»α αα·αααααα 2,2M αααα»ααα½ααα·ααΆααΈ; ααΆαααααΎααααΆαα RAM: 6 GB; ααα ααα·ααααααα α»αααααααα ααΎααΆαα 3 GB α
- InfluxDB: 330K α ααα»α αα·αααααααααα»ααα½ααα·ααΆααΈ; ααΆαααααΎααααΆαα RAM: 20,5 GB; ααα ααα·ααααααα α»αααααααα ααΎααΆαα 18,4 GB α
- TimescaleDB: 480K α ααα»α αα·αααααααααα»ααα½ααα·ααΆααΈ; ααΆαααααΎααααΆαα RAM: 2,5 GB; ααα ααα·ααααααα α»αααααααα ααΎααΆαα 52 GB α
ααΆαα’αα»αααααααα InfluxDB ααΆαααααΆααα α»αααΈα ααα»α αα·αααααα 1,2M αααα»ααα½ααα·ααΆααΈαααααΆαααααααΈαααααααΆ 400K αα 330K α ααα»α αα·αααααααααα»ααα½ααα·ααΆααΈαααααΆαααααααΈαααααααΆ 4M α αααβααΆβααΆαβααΆαβαααβαααΆαβααααΆααβααΎβαααβααΉαβααΌβααααααβαααααβαααα ααΌααααα‘ααααΎαααααΆα ααααααΆαααααΎααααΆαα CPU ααΎααααΈααααααααααΈααΌαα ααα»ααΎαααααΆαααΆααααααααα
ααΆαααΎααΊααΆααΌαααα’ααααααα VictoriaMetrics - ααΆαααααΎααααΆαααααΈααΈααΌα’αα‘α»ααααααααΎααααααααα αΌααααααΆαααααααΈαααααααΆ 4M αααα½ααααα
ααΆαααΎααΊααΆααΌαααα’ααααααα InfluxDB - ααΆαααααΎααααΆαααααΈααΈααΌα’αα‘α»ααααααααΎααααααααα αΌααααααΆαααααααΈαααααααΆ 4M αααα½ααααα
ααΆαααΎααΊααΆααΌαααα’ααααααα TimescaleDB - ααΆαααααΎααααΆαααααΈααΈααΌα’αα‘α»ααααααααΎααααααααα αΌααααααΆαααααααΈαααααααΆ 4M αααα½ααααα
VictoriaMetrics ααααΎααααΆααααΆαααααααΎαααααΆααα’ααααα’αααααΆαααααΎαααΆα (CPU) α ααΆαααααΆααα α»ααα α α»ααααα ααααααΌαααααΆαα ααΉαααΆααααα αΌα LSM ααααα ααααααααΆααααΈαα·ααααααααΆααα’ααααααΌαααΆααααα αΌαα
InfluxDB ααααΎαα 8 vCPUs 16 ααα»ααααα ααα TimsecaleDB ααααΎ vCPU 4 αααα»αα
αααα 16 α ααΎααααΆα αααααααα½αααααΆαα’αααΈααααααΌα
ααααΆ? ααΆαα αα»ααααααα iowait
ααααααα αΆαααΈααΆααααα I/O αααααααα
TimescaleDB ααΆαααΆαα αα»ααααααα system
. ααΎαααααααααΆααΆαααααααααααααΆαα±ααααΆαααΆαα α
ααΆαααααααααααΆα
αααΎαα¬α
αααΎαα
ααΌααααα‘ααααΎαααααΆα ααααααΆααααα αΌαααΆαα
ααΆαααΎααΊααΆααΌαααα’ααααααα VictoriaMetrics - ααΆαααααΎααααα·ααααααΌαααΆαααΎααααΈαααα αΌααααααααααα½αααα 4M α
ααΆαααΎααΊααΆααΌαααα’ααααααα InfluxDB - ααΆαααααΎααααα·ααααααΌαααΆαααΎααααΈαααα αΌααααααααααα½αααα 4M α
ααΆαααΎααΊααΆααΌαααα’ααααααα TimescaleDB - ααΆαααααΎααααα·ααααααΌαααΆαααΎααααΈαααα αΌααααααααααα½αααα 4M α
VictoriaMetrics ααΆααααααααα·αααααα 120 MB/s αα ααααα·αααααΌα αααααααΏααααααααΆαααααααΊ 40 MB/s α ααΆααααααΆααΆααΆαααΆα LSM ααααααααΆα αααΎαααααΌαααΆαα’αα»ααααααα‘α»ααααααααΌαα
InfluxDB α ααααΆα αα αααααααααααΌαααΆααααααααΆααααα 200 MB/s ααΆαα½αααΉαααααα·αααααααα αΌαααα 340 MB/s αα ααΎααΆααααααΆαααααααααααααα 120 MB/s :)
TimescaleDB αααααΆααααααααΆααααα αΎαα ααΆα αΆααααΌα
ααΆααααΌαααΆαααααααααα’αααΈαααααααααααααΆααααααΉααααΆααΆααααααααα ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠΉ
ααααα»ααααΈααΈααΌα
αααααΎαααααΆα ααααααΆαααααΎααααΆαα IOα
ααΆαααΎααΊααΆααΌαααα’ααααααα VictoriaMetrics - ααΆαααααΎααααΆαα I/O ααα‘α»ααααααααΎααααααααα αΌααααααΆαααααααΈαααααααΆ 4M αααα½ααααα
ααΆαααΎααΊααΆααΌαααα’ααααααα InfluxDB - ααΆαααααΎααααΆαα I/O ααα‘α»ααααααααΎααααααααα αΌααααααΆαααααααΈαααααααΆ 4M αααα½ααααα
ααΆαααΎααΊααΆααΌαααα’ααααααα TimescaleDB - ααΆαααααΎααααΆαα I/O ααα‘α»ααααααααΎααααααααα αΌααααααΆαααααααΈαααααααΆ 4M αααα½ααααα
ααααΌααΆαααααΎααααΆαα IO αααα»ααααα αΆααααΈααααα·ααααααΌαααααααΆα - InfluxDB ααααΌαααΆαααααα IO ααααααααα VictoriaMetrics αα·α TimescaleDB ααΆαααααΆα IO αααααα
40M αααααΈαααααααΆαα·ααα
αααααΈαααααααΆαα·ααα 40M ααΊααααααααααΆαα InfluxDB :)
ααααααβαααααααΆαα
- VictoriaMetrics: 1,7M α ααα»α αα·αααααααααα»ααα½ααα·ααΆααΈ; ααΆαααααΎααααΆαα RAM: 29 GB; ααΆαααααΎααααΆααααα αααΆαα α‘α§ ααΈααΆααα
- InfluxDBα αα·αααΆααααα αααααααααααΆααααΌαααΆα RAM ααΎαααΈ 60GBα
- TimescaleDB: 330K α ααα»α αα·αααααααααα»ααα½ααα·ααΆααΈ ααΆαααααΎααααΆαα RAM: 2,5 GB; ααΆαααααΎααααΆααααα αααΆαα α¨α€ ααΈααΆααα
TimescaleDB αααα αΆαααΆαααααΎααααΆαα RAM ααΆα αα·αααΆααααααααΆααα·ααααα 2,5 GB - ααΌα ααααΆαα ααΉααααααα 4M αα·α 400K αααα½ααααα
VictoriaMetrics ααΆααααααΈαααααα·α ααααααααα»αα’ααααΆ 100k data point αααα»ααα½ααα·ααΆααΈ αα αΌααααααΆαα 40M tagged names ααααΌαααΆαααααΎαααΆαα αααααΆααααααΆαααααααα ααΆαααΌαα’ααααΆαααα αΌααααααααααα·αααααααΆααα 1,5-2,0M α ααα»α αα·αααααααααα»ααα½ααα·ααΆααΈ ααΌα ααααααααααα α»ααααααααΊ 1,7M α ααα»α αα·αααααααααα»ααα½ααα·ααΆααΈα
ααααΆα αααααααΆαααααααΈαααααααΆαα·ααα 40M ααΊααααααααΉαααααΆα αααααααΆαααααααΈαααααααΆαααα½αααα 4M ααΌα ααααααΌααααααα½αααΆα
ααΆαααααΎα
- TSDBs ααααΎαααΆααααααααΆαααααΎαααΆαααΆααααα αΌααααααΆαααααααΈαααααααΆαα·αααααΆααααΆααα ααΎαααΆαααΈααααααα½αα αα αααα»αα’ααααααααααΆαα ααΎαααΉαααΆαααααααΆααΎ TSDBs ααααΎαααΆαααΆαααααΎαααΎαααΆαααα’ααα»ααααΆαα ααΎαααααΈαααααααΆααααααααΆααααΆαα
- ααΆαααααΎααααΆαααααΈααΈααΌαα·ααααααααααΆααααΆααααααΆαααα αΆαααΈααΆααααα I/O α ααΆααα’αΆα αααα αΆαααΆααΆααααααααΆααααΊααΆαααΆααααα½α ααααΆαααα αααααΆααααααααααα‘αΆαααΈαααΈααα»ααααααααα’αΆα ααααΎαααΆαααΆααααα»αααααααα½αα
- ααΆαααΆααΆαα I/O ααΆαααΆαα·ααααα αααα»ααααααααααα»αααααα·ααααααΆ SSD ααΌα ααΆα§ααααααααα»ααα·αααα·αααααα’ααααααααααααΆαααα
- VictoriaMetrics αααααααΌαααΆααααααΎαααααα·αααααΆαααα’αααα»ααααααΆααααΆααααα»α I/O ααΊα αα·αααΆαα ααΆαααααααΌαααααΏαααα’αααα»α αα·ααααΆααΆααααααα αΆααααα’αααα»αα
ααΆααα
ααΌαα’αΆαααααααα’αααΈ VictoriaMetrics αα
αααα»ααααα
αα
αα
α»ααααααααΆαα ααααα»αααααααΆα
ααααΎαα
αα
α»ααααααααΆα # 2: α’αΆααααααα
α’αΆααααα #3α
ααΆαααααααΆαααα‘αααααΆαα
ααααα: www.habr.com