influx测试——单条读性能很差,大约400条/s,批量写性能很高,7万条/s,总体说来适合IOT数据批量存,根据tag查和过滤场景,按照时间顺序返回...
测试准备
需要将InfluxDB的源码放入 go/src/github.com/influxdata 目录
单写测试代码(write1.go):
package mainimport ("log""time""fmt""math/rand""github.com/influxdata/influxdb/client/v2" )const (MyDB = "testInfluxdb"username = "root"password = "" )func queryDB(clnt client.Client, cmd string) (res []client.Result, err error) {q := client.Query{Command: cmd,Database: MyDB,}if response, err := clnt.Query(q); err == nil {if response.Error() != nil {return res, response.Error()}res = response.Results} else {return res, err}return res, nil }func writePoints(clnt client.Client,num int) {sampleSize := 1 * 10000rand.Seed(42)t := numbp, _ := client.NewBatchPoints(client.BatchPointsConfig{Database: MyDB,Precision: "us",})for i := 0; i < sampleSize; i++ {t += 1tags := map[string]string{"system_name": fmt.Sprintf("sys_%d",i%10),"site_name":fmt.Sprintf("s_%d", (t+i) % 10),"equipment_name":fmt.Sprintf("e_%d",t % 10),}fields := map[string]interface{}{"value" : fmt.Sprintf("%d",rand.Int()),}pt, err := client.NewPoint("monitorStatus", tags, fields,time.Now())if err != nil {log.Fatalln("Error: ", err)}bp.AddPoint(pt)}err := clnt.Write(bp)if err != nil {log.Fatal(err)}//fmt.Printf("%d task done\n",num) }func main() {// Make clientc, err := client.NewHTTPClient(client.HTTPConfig{Addr: "http://localhost:8086",Username: username,Password: password,})if err != nil {log.Fatalln("Error: ", err)}_, err = queryDB(c, fmt.Sprintf("CREATE DATABASE %s", MyDB))if err != nil {log.Fatal(err)}i := 1for i <= 10000 {defer writePoints(c,i)//fmt.Printf("i=%d\n",i)i += 1}//fmt.Printf("task done : i=%d \n",i) }
单机读:
package mainimport ("log"//"time""fmt"//"math/rand""github.com/influxdata/influxdb/client/v2" )const (MyDB = "testInfluxdb"username = "root"password = "" )func queryDB(clnt client.Client, cmd string) (res []client.Result, err error) {q := client.Query{Command: cmd,Database: MyDB,}if response, err := clnt.Query(q); err == nil {if response.Error() != nil {return res, response.Error()}res = response.Results} else {return res, err}return res, nil }func main() {// Make clientc, err := client.NewHTTPClient(client.HTTPConfig{Addr: "http://localhost:8086",Username: username,Password: password,})if err != nil {log.Fatalln("Error: ", err)}q := fmt.Sprintf("select * from monitorStatus where system_name='sys_5' and site_name='s_1' and equipment_name='e_6' order by time desc limit 10000 ;")res, err2 := queryDB(c, q)if err2 != nil {log.Fatal(err)}count := len(res[0].Series[0].Values)log.Printf("Found a total of %v records\n", count)}
代码摘自:http://www.cnblogs.com/MikeZhang/p/InfluxDBTest20170212.html
转载于:https://www.cnblogs.com/bonelee/p/6813989.html
influx测试——单条读性能很差,大约400条/s,批量写性能很高,7万条/s,总体说来适合IOT数据批量存,根据tag查和过滤场景,按照时间顺序返回...相关推荐
- 在网上看到和篇关于sql server 2005的性能优化篇,觉得写得很好。
在网上看到和篇关于sql server 2005的性能优化篇,觉得写得很好. SQL Server2005扩展函数已经不是一件什么新鲜的事了,但是我看网上的大部分都是说聚合函数,例子也比较浅,那么这里 ...
- postgis数据库优化_PostgreSQL批量导入性能优化
现在很多企业都将数据库逐渐由Mysql转向了更加强大而且开源的PostgreSQL数据库.在数据迁移过程中,PostgreSQL数据库导入大量数据时候非常缓慢,本文我们就来说说PostgreSQL数据 ...
- paddle静态图训练,训练集和测试集效果都有很好,但验证集上效果很差
在paddle静态图训练中,训练集和测试集效果都有很好,但验证集上效果很差 在paddle的训练中,如果使用这样的方式进行训练 main_program = fluid.default_main_pr ...
- 苹果手机移动信号测试软件,同样是苹果手机,为何别人的信号很好,你却很差?检测方法在这里...
同样是苹果手机,为何别人的信号很好,你却很差?检测方法在这里 关于苹果手机的信号问题,据说在过去的两年里它经常被用户吐槽,并且苹果方面从未给出解决方案,原因是苹果在专利战中以高通撕裂了面孔,合作破裂, ...
- 作为反馈电路有很好的相位裕度、但很差的稳定性能的一个例子
作为反馈电路有很好的相位裕度.但很差的稳定性能的一个例子 拉扎维 P291
- 在测试行业找工作2个月,投的简历都石沉大海,我真的很差吗?
几天前刷到一个帖子 我是软件测试专业,在找工作的历程中越发迷茫,投了很多简历都石沉大海,有点怀疑自己了,我真的很差吗? 看到这样的同道中人非常多,所以我决定给大家分享两步方法,提高简历命中率. 首先一 ...
- Elasticsearch-32.生产环境常用配置与上线清单 he 集群写性能优化 he 集群读性能优化
Elasticsearch 生产环境常用配置和上线清单 Development vs.Production Mode 从ES 5开始,支持Development 和Production 两种运行模式 ...
- 你知道为啥给JVM分配的内存越大,结果性能越差吗?
前言 这篇文章,给大家聊一个生产环境的实践经验:线上系统部署的时候,JVM堆内存大小是越大越好吗? 先说明白一个前提,本文主要讨论的是Kafka和Elasticsearch两种分布式系统的线上部署情况 ...
- 网站性能越来越差怎么办?
新的一年,你的老板或客户,是否曾和你抱怨公司的网站性能愈来愈差?网站大家都会写,自从有了 Visual Studio 之后,连你家楼下的正妹小喵和隔壁的王大婶都会写 ASP.NET.但同样的一个画面, ...
最新文章
- Fiddler抓取数据并分析(完整的配置教程)
- 10个操作数的随机四则运算(二)
- python中字典和集合的区别_Python中字典和集合学习小结
- docker安装elasticsearch和kibana
- leetcode 106. Construct Binary Tree from Inorder and Postorder Traversal | 106. 从中序后序遍历序列构造二叉树(Java)
- 这才是真正的,坐上来,自己动!| 今日趣图
- 初识openwrt(下)
- SprinBoot整合SSM之添加
- aic值检验 p值_23. 假设检验的时候为什么常写p lt; 0.05,而不写具体的p值?
- 微信蓝牙协议一:协议文档查阅方法和空中数据解析示例
- 现在学python2还有意义吗_现在学python该学python2还是python3?
- Raki的读paper小记:Style Transformer
- xp系统远程桌面关闭计算机,系统是xp在本机开启远程桌面后,别人使用远程桌面连接我的电脑,我的电脑就会出现蓝屏停止代码是0x0000007f...
- 计算机打数据执行保护删除不掉,XP老是出现“数据执行保护”怎么办?教你方法轻松解决此问题...
- 计算机系学生thinkbook,设计师笔记本电脑推荐 ThinkBook 15p视觉系创造本你值得拥有...
- 千与千寻主题曲beep函数版
- SaaSBase:什么是企业微信?
- 右侧追击(二)——券商行业
- 【机器学习实战】k-近邻算法案例——改进约会网站的配对效果
- 【工具】Gamepad Tester游戏手柄在线测试平台
热门文章
- 高级bash脚本编程(1)
- valgrind 的使用简介
- linux cpu %us,Linux top里面%CPU和us%的解释
- 博易大师服务器文件,博易大师自选和页面设置文件如何保存?
- c语言实现补码加减,C语言实现用位移运算符进行加减乘…
- python列表删除指定字典_Python:从列表中删除字典
- 数据备份_天津数据备份工具多少钱
- h2 迁移到 mysql_[saiku] 将saiku自带的H2嵌入式数据库迁移到本地mysql数据库
- java编程器答疑z湖南岚鸿,吐血整理
- 【原理+实战+视频+源码】手撸SpringBoot缓存系统