MongoDB压测工具

eshujiushiwo 2015-01-21 06:20:41
各位好,
我是E叔,这里是E叔的《Mongodb 分享第八期》

本期分享的是E叔为了方便自己写的一个MongoDB benchmark工具。
PS:刚开始写。不断完善中

点这里,GitHub地址

mongo-mload 工具使用介绍
功能

MongoDB 压力测试工具

2015.01.21更新:

暂时日志功未完善,请用mongostat来观察pqs等
增加了查询压测(两种模式)
增加了清理功能
增加了参数operation,queryall,clean
参数

--host 压测目标(如127.0.0.1)
--port 压测端口(default 27017)
--userName 用户名(如果有)
--passWord 密码(如果有)
--cpunum 多核设定(默认1)
--procnum 压测并发个数(默认4)
--datanum 每个线程插入数据条数(默认10000)
--logpath 日志路径(默认./log.log)
--jsonfile 希望插入document路径(不选用该参数则使用默认的插入格式)
--operation 压测模式(insert,prepare,query)prepare模式会在插入完成后为查询会用的项添加索引
--queryall 压测模式为query的时候,是否返回所有查询到的结果(默认false,即db.xx.findOne())
--clean 是否清理数据(默认false,如果为true将drop数据库mongobench)
测试实例

插入测试

首先清理数据库:
go run mload.go --host xxx.xxx.xxx.xxx --clean true

再来进行插入测试:
使用8核cpu,8个并发,每个并发插入100000条数据,日志输入为/tmp/log.log,插入的每条数据为./test_data.json中的内容

go run mload.go --host xxx.xxx.xxx.xxx --datanum 100000 --procnum 8 --cpunum 8 --logpath /tmp/log.log --jsonfile ./test_data.json --operation insert
查询测试

首先清理数据库:
go run mload.go --host xxx.xxx.xxx.xxx --clean true

再来为查询准备数据(比如准备1000000条):
go run mload.go --host xxx.xxx.xxx.xxx --datanum 1000000 --procnum 1 --logpath /tmp/log.log --operation prepare

接下来进行测试(limit one的):
使用8核cpu,8个并发
go run mload.go --host xxx.xxx.xxx.xxx --datanum 1000000 --procnum 8 --cpunum 8 --operation query --logpath /tmp/log.log

在进行非limit one的:
使用8核cpu,8个并发
go run mload.go --host xxx.xxx.xxx.xxx --datanum 1000000 --procnum 8 --cpunum 8 --operation query --logpath /tmp/log.log --queryall true
待完成

1.日志完善
3.update压测
4.单实例、多数据库 的压测
...全文
2912 7 打赏 收藏 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
harry520 2015-12-11
  • 打赏
  • 举报
回复
问题已处理好,打扰了。。 环境变量设置: /etc/profile 内如如下 GOROOT=/usr/local/go GOPATH=$GOROOT/src export PATH=$GOROOT/bin:$PATH export GOPATH GOROOT 安装mongodb驱动 go get gopkg.in/mgo.v2/bson
harry520 2015-12-11
  • 打赏
  • 举报
回复
帮忙看看,谢谢哈
harry520 2015-12-11
  • 打赏
  • 举报
回复
[root@VM_118_53 src]# vi test.go [root@VM_118_53 src]# go run test.go Hello, World! [root@VM_118_53 src]# go run mload.go --host 172.16.118.69 --datanum 100000 --procnum 8 --cpunum 8 --logpath /tmp/log.log --jsonfile ./test_data.json --operation insert mload.go:6:2: cannot find package "gopkg.in/mgo.v2" in any of: /usr/local/go/src/gopkg.in/mgo.v2 (from $GOROOT) ($GOPATH not set) mload.go:7:2: cannot find package "gopkg.in/mgo.v2/bson" in any of: /usr/local/go/src/gopkg.in/mgo.v2/bson (from $GOROOT) ($GOPATH not set)
eshujiushiwo 2015-04-23
  • 打赏
  • 举报
回复
引用 3 楼 yezilove1990 的回复:
[root@mongotest1 src]# go run mload.go --host 172.16.0.115 --datanum 100000 --procnum 8 --cpunum 8 --logpath /tmp/log.log --jsonfile ./test_data.json --operation insert bash: go: command not found 在centos里不好用,麻烦帮忙看下,
HI 这是go语言的源文件。需要安装go语言才能用。 我还没有编译成可执行文件。你可以装个go,然后 go build 下。
yezilove1990 2015-04-20
  • 打赏
  • 举报
回复
[root@mongotest1 src]# go run mload.go --host 172.16.0.115 --datanum 100000 --procnum 8 --cpunum 8 --logpath /tmp/log.log --jsonfile ./test_data.json --operation insert bash: go: command not found 在centos里不好用,麻烦帮忙看下,
WelcomeToTheFuture 2015-01-27
  • 打赏
  • 举报
回复
rucypli 2015-01-23
  • 打赏
  • 举报
回复
内容概要:本文围绕基于电感电容电流环PI与前馈补偿矩阵构造的跟网型储能变流器,开展dq坐标系下的阻抗理论建模与Simulink仿真对比研究。通过建立储能变流器在dq域的数学模型,设计包含电感电流内环、电容电流中间环和电压外环的多环控制结构,并引入前馈补偿矩阵以提升系统的动态响应能力和稳定性。在此基础上,采用小信号分析法推导系统的输出阻抗模型,构建完整的dq域阻抗理论框架,并利用Simulink平台搭建高保真仿真模型进行频域扫频验证,实现理论建模与仿真结果的精确对比,深入分析控制参数对系统阻抗特性的影响规律,揭示其在抑制并网系统振荡、提升稳定性方面的关键作用,为新能源并网系统的稳定性分析与优化设计提供坚实的理论支撑和技术路径。; 适合人群:具备电力电子、自动控制理论基础,从事新能源发电、储能系统、微电网或电力系统稳定性研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①掌握跟网型储能变流器在dq域的阻抗建模方法;②理解多环控制与前馈补偿对系统阻抗特性的影响机制;③实现理论阻抗模型与Simulink仿真扫频结果的对比验证,支撑并网稳定性分析。; 阅读建议:学习者应结合控制理论与电力电子变换器知识,重点关注数学推导与仿真建模的一致性,建议动手复现Simulink仿真模型并进行参数敏感性分析,以深化对阻抗重塑机理的理解。
内容概要:本文介绍了基于Matlab实现的基本雷达与干扰机仿真系统,旨在通过代码实践帮助读者深入理解雷达系统的工作原理及其在复杂电磁环境中与干扰机的相互作用机制。内容涵盖雷达信号的发射、传播、目标回波接收、微多普勒效应建模、干扰信号的生成与影响分析等关键环节,结合具体的Matlab代码实现了完整的仿真流程,并提供了详尽的结果可视化与性能评估,重点展示了目标探测、时频特征提取、干扰抑制策略等关键技术的实现方法,有助于掌握雷达系统动态特性与抗干扰能力的分析手段。; 适合人群:具备一定Matlab编程基础,对雷达系统、信号处理、电子对抗或通信工程等领域感兴趣的高校学生、科研人员及工程技术人员。; 使用场景及目标:①学习雷达系统的基本构成与工作流程;②掌握雷达回波信号与典型干扰信号(如噪声干扰、欺骗干扰)的数学建模方法;③通过Matlab仿真深入理解微多普勒特征、时频分析技术(如STFT、小波变换)及干扰抑制算法;④为开展雷达目标识别、抗干扰算法设计或电子战系统仿真等前沿研究奠定实践基础。; 阅读建议:建议读者结合提供的Matlab代码逐段运行并调试,重点关注雷达信号模型、目标运动建模、干扰生成模块及信号处理流程,配合文中仿真结果进行对比分析;同时可延伸学习现代信号处理技术如压缩感知、机器学习在雷达中的应用,以提升综合科研与工程实践能力。

1,797

社区成员

发帖
与我相关
我的任务
社区描述
MongoDB相关内容讨论区
社区管理员
  • MongoDB社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧