timescaledb和influxdb单行写入性能

Influxdb单行写入测试

数据构造

timestamp + 20 fields 无tags

20fields, 11个整数, 9 个随机字符串

> select * from test where id = 1
name: test
time            col10 col11 col12                        col13             col14                col15              col16                      col17     col18           col19 col2 col20    col3 col4 col5 col6 col7 col8 col9 id
----            ----- ----- -----                        -----             -----                -----              -----                      -----     -----           ----- ---- -----    ---- ---- ---- ---- ---- ---- ---- --
947656001000000 9723  7713  5WP0RK6TB9GT4R740G4YJKXWQFGQ Z0ZBVQLZ2GUCZ4JT5 1SMXEU46DL7BUWSBKNCW 7YA2HA3IO922GUPNNB VS67LNXMWS8C4M68SCU52KBXD0 MLFYKCC54 1XN7R6EEAR7XLSY D7YDJ 3915 R6GVKNW3 6250 7874 5988 4291 4666 9036 7288 1

timestamp 从946656001000L,即"2000-01-01 00:00:01.000"开始,每个线程之间相隔 100万秒(大约11.5天)

线程中每一行数据间隔1秒,10W行数据,也就是10W秒,时间跨度大约1.5天。

测试结果

influxdb 单线程 2线程 4线程 8线程 16线程 32线程
线程平均速率 67 KB/s 70 KB/s 66 KB/s 65 KB/s 60 KB/s 52 KB/s
总写入速率 67 KB/s 140 KB/s 265 KB/s 526 KB/s 960 KB/s 1664 KB/s

 

资源占用,

4线程时,CPU、磁盘占用都不高

timescaledb和influxdb单行写入性能

32线程时,CPU占用有明显上升

timescaledb和influxdb单行写入性能

 

timescaledb单行写入测试

表结构如下,与上面测试保持一致

create table "ckts1"(
	time TIMESTAMPTZ NOT NULL,
	"id" int,
	"col2" int,
	"col3" int,
	"col4" int,
	"col5" int,
	"col6" int,
	"col7" int,
	"col8" int,
	"col9" int,
	"col10" int,
	"col11" varchar(30),
	"col12" varchar(30),
	"col13" varchar(30),
	"col14" varchar(30),
	"col15" varchar(30),
	"col16" varchar(30),
	"col17" varchar(30),
	"col18" varchar(30),
	"col19" varchar(30),
	"col20" varchar(30)
);

SELECT create_hypertable('ckts1', 'time');

timestamp 每行间隔和 线程间间隔与上面一致。

时间有限,没来得及测timescaledb. 明早再测。