InfluxDb性能测试


influxdb写性能测试工具influx-stress安装

本课使用influx-stress来进行性能测试,influx-stree的地址是:https://github.com/influxdata/influx-stress

首先安装go语言环境,因为influx-stress基于go语言:

wget http://66-ai.com/download/script-litte-prince/app/go-install.sh -O /root/go-install.sh && sh go-install.sh

安装有点慢,本网站经费有限,服务器带宽有限,:),请大家点击一下AD,支持一下把。


安装influx-stress

安装influx-stress,

go get -v github.com/influxdata/influx-stress/cmd/...

这样,influx-stress 就被安装在/root/go/bin/influx-stress中了。


influx-stress命令说明

influx-stress 命令的用法:

influx-stress insert SERIES FIELDS [flags]

其中flag是可选的,表示influx-stress这个程序的一些选项:

命令 缩写 含义
--batch-size uint -b 一个批次的插入的点数(默认10000),也就是每次提交到influxdb的点数
--consistency string -c
--create string 使用一个自定义创建数据库的命令
--db string 需要测试的数据库,默认是stress,如果不是默认数据库,数据库需要先新建。
--dump string 使用文件导入数据
--fast -f 最快速度运行
--gzip int 传到influxdb的数据是否需要压缩,以什么样的格式压缩。1=最快,2=最大压缩,-1=gzip压缩
--host string InfluxDB的地址 (默认 "http://localhost:8086")
--pass string 密码
--points uint -n 最大被写的点的数目,最大18446744073709551615
--pps uint 每秒默认写多少点,默认是20000,这个值过大,例如大于100万的时候,根据influxdb性能,每s实际写入量不等于你设置的数值
--precision string -p 数据的精度
--quiet -q 结果只打印吞吐量,这个参数建议不要打开
--rp string 将写的保留策略
--runtime duration -r 性能测试的持续时间,默认为2562047h47m16.854775807s,请不要使用默认,否则你永远得不到测试结果
--series int -s 将写的序列的数量
--strict 错误或异常发生,就退出
--user string 用户自定义要写的数据

influx-stress 测试机的配置

本性能测试机器的配置:

  • CPU: 4vCPUS
  • 内存: 16GB
  • 硬盘: 40G 机械硬盘

influx-stress 举个例子

/root/go/bin/influx-stress insert -r 60s --strict --pps 200000 --host http://192.168.1.39:8086

influxdb-性能测试20万点每秒

/root/go/bin/influx-stress insert -r 60s --strict --pps 800000 --host http://192.168.1.39:8086

influxdb-性能测试80万点

/root/go/bin/influx-stress insert -r 60s --strict --pps 1400000 --host http://192.168.1.39:8086

influxdb-行了测试100万点

/root/go/bin/influx-stress insert -r 60s --strict --pps 2000000 --host http://192.168.1.39:8086

influx-性能测试200万点

从上面的性能测试中,可以发现,100万/秒已经是这台influxdb实例的极限了。