MySQL压测神器HammerDB的部署及使用详解
IT行业相对于一般传统行业,发展更新速度更快,一旦停止了学习,很快就会被行业所淘汰。所以我们需要踏踏实实的不断学习,精进自己的技术,尤其是初学者。今天golang学习网给大家整理了《MySQL压测神器HammerDB的部署及使用详解》,聊聊mysql压测、HammerDB,我们一起来看看吧!
⛳️ 1. HammerDB简介
HammerDB 是一个开源的数据库负载测试和基准测试工具,同时支持 Windows 和 Linux 平台,可以针对 Oracle 、SQL Server、DB2、TimesTen、 MySQL、MariaDB、
PostgreSQL、Postgres Plus Advanced Server、Greenplum、Redis、Amazon Aurora、Redshift 等进行压力测试。
它主要模拟两种不同的测试模型:TPC-C 测试模型和 TPC-H 测试模型。相比于标准的 TPC-C 和 TPC-H,HammerDB 运行成本低,操作简单, 是服务器数据库压力测试
的很好选择。
• HammerDB 通过模拟 批发商的货物管理环境,实现了 TPC-C 测试模型,即在线事务处理(OLTP)的基准测试模型。测试结果由 TPC-C 吞吐率衡量,标准测试模型中
的单位是 tpmC(在 在 B HammerDB 是 中,测试结果的单位是 tpm,不是 tpmC。m tpm 表示每分钟的事务交易数量,tpmC 是 TPC-C 的事务交易单位)。
• HammerDB 通过模拟供应商和采购商之间的交易行为,实现了 TPC-H 测试模型,即在线分析处理(OLAP)的基准测试模型。测试结果由 TPCH Power 来衡量,该值
与数据量和交易平均时间有关,表示一小时内能够完成的复杂交易的数量。
关于 TPC-C 和 TPC-H 的详细介绍请参考 TPC 官方网站(http://www.tpc.org/)
⛳️ 2. 容器部署
✨ 2.1 镜像下载
docker pull techerwang/oracle:centos76
✨ 2.2 创建容器
docker rm -f jemhammerdb docker run -d --name jemhammerdb -h jemhammerdb \ -p 34389:3389 -p 42222:22 \ techerwang/oracle:centos76 init docker exec -it jemhammerdb bash
✨ 2.3 Linux 下安装
wget https://github.com/TPC-Council/HammerDB/releases/download/v4.0/HammerDB-4.0-Linux.tar.gz [root@jeames ~]# tar -zxvf HammerDB-4.0-Linux.tar.gz -C /usr/local/ [root@jeames ~]# cd /usr/local/HammerDB-4.0 [root@jeames HammerDB-4.0]# ./hammerdbcli HammerDB CLI v4.0 Copyright (C) 2003-2020 Steve Shaw Type "help" for a list of commands The xml is well-formed, applying configuration hammerdb> hammerdb>help HammerDB v4.0 CLI Help Index Type "help command" for more details on specific commands below buildschema clearscript customscript datagenrun dbset dgset diset distributescript librarycheck loadscript print quit runtimer switchmode vucomplete vucreate vudestroy vurun vuset vustatus waittocomplete
✨ 2.4 相关校验
hammerdb>librarycheck Checking database library for Oracle Error: failed to load Oratcl - can't read "env(ORACLE_HOME)": no such variable Ensure that Oracle client libraries are installed and the location in the LD_LIBRARY_PATH environment variable Checking database library for MSSQLServer Error: failed to load tdbc::odbc - couldn't load file "libiodbc.so": libiodbc.so: cannot open shared object file: No such file or directory Ensure that MSSQLServer client libraries are installed and the location in the LD_LIBRARY_PATH environment variable Checking database library for Db2 Error: failed to load db2tcl - couldn't load file "/usr/local/HammerDB-4.0/lib/db2tcl2.0.0/libdb2tcl.so.0.0.1": libdb2.so.1: cannot open shared object file: No such file or directory Ensure that Db2 client libraries are installed and the location in the LD_LIBRARY_PATH environment variable Checking database library for MySQL Success ... loaded library mysqltcl for MySQL Checking database library for PostgreSQL Error: failed to load Pgtcl - couldn't load file "/usr/local/HammerDB-4.0/lib/pgtcl2.1.1/libpgtcl2.1.1.so": libpq.so.5: cannot open shared object file: No such file or directory Ensure that PostgreSQL client libraries are installed and the location in the LD_LIBRARY_PATH environment variable
⛳️3 . HammerDB压测MySQL
1.如果是Windows直接点击hammerdb.bat,如果是Linux需要调用图形化界面 2.windows平台压测,非常耗CPU ## 调用图形化界面 export DISPLAY=192.168.1.1:0.0 echo $DISPLAY [root@jeames ~]# cd /usr/local/HammerDB-4.0 [root@jemhammerdb HammerDB-4.0]# ./hammerdb
注:生产环境压测,建议仓库数不少于100
mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mes_db | | mysql | | performance_schema | | sbtest | | sys | | tpcc | +--------------------+ 7 rows in set (0.00 sec) mysql> use tpcc Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed mysql> show tables; +----------------+ | Tables_in_tpcc | +----------------+ | customer | | district | | history | | item | | new_order | | order_line | | orders | | stock | | warehouse | +----------------+ 9 rows in set (0.00 sec)
select a.SCHEMA_NAME, a.DEFAULT_CHARACTER_SET_NAME,a.DEFAULT_COLLATION_NAME, sum(table_rows) as '记录数', sum(truncate(data_length/1024/1024, 2)) as '数据容量(MB)', sum(truncate(index_length/1024/1024, 2)) as '索引容量(MB)', sum(truncate((data_length+index_length)/1024/1024, 2)) as '总大小(MB)', sum(truncate(max_data_length/1024/1024, 2)) as '最大值(MB)', sum(truncate(data_free/1024/1024, 2)) as '空闲空间(MB)' from INFORMATION_SCHEMA.SCHEMATA a left outer join information_schema.tables b on a.SCHEMA_NAME=b.TABLE_SCHEMA group by a.SCHEMA_NAME, a.DEFAULT_CHARACTER_SET_NAME,a.DEFAULT_COLLATION_NAME order by sum(data_length) desc, sum(index_length) desc;
mysql> show processlist;
以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持golang学习网!更多关于数据库的相关知识,也可关注golang学习网公众号。

- 上一篇
- MySQL校对规则(COLLATION)的具体使用

- 下一篇
- MYSQL复杂查询练习题以及答案大全(难度适中)
-
- 个性的发箍
- 好细啊,收藏了,感谢老哥的这篇技术贴,我会继续支持!
- 2023-05-13 02:25:24
-
- 柔弱的含羞草
- 这篇博文真是及时雨啊,up主加油!
- 2023-03-26 07:12:43
-
- 欢呼的台灯
- 太给力了,一直没懂这个问题,但其实工作中常常有遇到...不过今天到这,看完之后很有帮助,总算是懂了,感谢大佬分享博文!
- 2023-02-01 17:06:37
-
- 舒服的水杯
- 这篇文章出现的刚刚好,太详细了,很有用,mark,关注博主了!希望博主能多写数据库相关的文章。
- 2023-01-26 13:52:38
-
- 粗暴的帆布鞋
- 这篇博文真是及时雨啊,太详细了,很好,码住,关注老哥了!希望老哥能多写数据库相关的文章。
- 2023-01-23 05:42:47
-
- 舒心的哑铃
- 这篇文章太及时了,太详细了,很棒,已加入收藏夹了,关注up主了!希望up主能多写数据库相关的文章。
- 2023-01-16 10:53:56
-
- 疯狂的百褶裙
- 赞 👍👍,一直没懂这个问题,但其实工作中常常有遇到...不过今天到这,帮助很大,总算是懂了,感谢师傅分享技术文章!
- 2023-01-12 13:07:57
-
- 明理的犀牛
- 这篇技术贴出现的刚刚好,细节满满,写的不错,已收藏,关注楼主了!希望楼主能多写数据库相关的文章。
- 2023-01-12 08:35:19
-
- 俊逸的枕头
- 这篇技术文章真是及时雨啊,老哥加油!
- 2023-01-11 13:27:16
-
- 激动的硬币
- 太详细了,已收藏,感谢楼主的这篇技术文章,我会继续支持!
- 2023-01-03 01:45:42
-
- 数据库 · MySQL | 18分钟前 |
- 解析MySQL数据库特性与优势,深入浅出
- 228浏览 收藏
-
- 数据库 · MySQL | 41分钟前 | 表结构 索引优化 降序排序 DESC SHOWCREATETABLE
- MySQL中desc用法:降序排序及表结构查看
- 268浏览 收藏
-
- 数据库 · MySQL | 1小时前 |
- MySQL数据库深度解析:特性与优势详解
- 200浏览 收藏
-
- 数据库 · MySQL | 2小时前 | 备份 DROPTABLE TRUNCATETABLE IFEXISTS 外键检查
- MySQL详解droptable命令及表结构删除
- 207浏览 收藏
-
- 数据库 · MySQL | 2小时前 | Python脚本 mysql--version sudosystemctlstatusmysql
- MySQL安装验证三种快速方法
- 143浏览 收藏
-
- 数据库 · MySQL | 2小时前 |
- MySQL建表示例:全约束详解
- 262浏览 收藏
-
- 数据库 · MySQL | 19小时前 | Python 环境变量 systemd mysql--version sudosystemctlstatusmysql
- MySQL快速检测方法:三种技巧
- 454浏览 收藏
-
- 数据库 · MySQL | 1天前 | mysql 数据库管理 性能优化 use CREATEDATABASE
- MySQL创建数据库后如何进入?用use命令切换
- 388浏览 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 542次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 508次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 497次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 484次学习
-
- 魔匠AI
- SEO摘要魔匠AI专注于高质量AI学术写作,已稳定运行6年。提供无限改稿、选题优化、大纲生成、多语言支持、真实参考文献、数据图表生成、查重降重等全流程服务,确保论文质量与隐私安全。适用于专科、本科、硕士学生及研究者,满足多语言学术需求。
- 10次使用
-
- PPTFake答辩PPT生成器
- PPTFake答辩PPT生成器,专为答辩准备设计,极致高效生成PPT与自述稿。智能解析内容,提供多样模板,数据可视化,贴心配套服务,灵活自主编辑,降低制作门槛,适用于各类答辩场景。
- 26次使用
-
- Lovart
- SEO摘要探索Lovart AI,这款专注于设计领域的AI智能体,通过多模态模型集成和智能任务拆解,实现全链路设计自动化。无论是品牌全案设计、广告与视频制作,还是文创内容创作,Lovart AI都能满足您的需求,提升设计效率,降低成本。
- 25次使用
-
- 美图AI抠图
- 美图AI抠图,依托CVPR 2024竞赛亚军技术,提供顶尖的图像处理解决方案。适用于证件照、商品、毛发等多场景,支持批量处理,3秒出图,零PS基础也能轻松操作,满足个人与商业需求。
- 34次使用
-
- PetGPT
- SEO摘要PetGPT 是一款基于 Python 和 PyQt 开发的智能桌面宠物程序,集成了 OpenAI 的 GPT 模型,提供上下文感知对话和主动聊天功能。用户可高度自定义宠物的外观和行为,支持插件热更新和二次开发。适用于需要陪伴和效率辅助的办公族、学生及 AI 技术爱好者。
- 36次使用
-
- MySQL主从切换的超详细步骤
- 2023-01-01 501浏览
-
- Mysql-普通索引的 change buffer
- 2023-01-25 501浏览
-
- MySQL高级进阶sql语句总结大全
- 2022-12-31 501浏览
-
- Mysql报错:message from server: * is blocked because of many
- 2023-02-24 501浏览
-
- 腾讯云大佬亲码“redis深度笔记”,不讲一句废话,全是精华
- 2023-02-22 501浏览