概述
一:环境与工具准备
1. 安装mysql(此处略)
2. 安装sysbench
sudo brew install sysbench
注意:mac 现在已经不允许在root账号下使用brew了,如果执行过程中遇到权限问题,可能需要为安装的sysbench赋予新的权利。
二:数据库准备
1. 创建数据库
2. 创建压测用户
// 以下代码可以通过Navicat获得,不需要自己写
GRANT USAGE ON *.* TO 'db_press_test_user'@'192.168.226.162' IDENTIFIED BY '82046722'
WITH MAX_QUERIES_PER_HOUR 0
MAX_UPDATES_PER_HOUR 0
MAX_CONNECTIONS_PER_HOUR 0;
GRANT ALL ON `press_test_db`.* TO `db_press_test_user`@`192.168.226.162`;
// 权限刷新
Flush Privileges;
此处遇到一点问题:在我的Mac笔记本上执行的时候,抛出了以下异常:Error : Access denied for user 'root'@'%' (using password: YES)。
直接在服务器上登录数据库,执行的时候就没有抛出异常,可见我当前用来远程的用户的访问权限还是不完整。
3. 准备数据
下面的语句中的双引号实际操作中是不需要的。
sysbench --db-driver=mysql --time=300 --threads=10 --report-interval=1 --mysql-host=“我的数据库服务器IP” --mysql-port=3306 --mysql-user=press_test_user
--mysql-password=“我的密码” --mysql-db=press_test_db --tables=20 --table_size=500000 oltp_read_write --db-ps-mode=disable prepare
参数解析:
1. --db-driver,数据库驱动
2. --time, 连续访问时间,单位秒
3. --thread,并发访问线程数量(这个会受限于发出请求的服务器的CPU核心数量)
4. --report-interval=1,每隔1秒输出压测报告
5. mysql开头的都是与数据源相关的,这里先跳过
6. --tables,插入表的数量;--table_size,表的行数
7. oltp_read_write,测试类型,这类是读写测试
8. --db-ps-mode=disable prepare,关闭预处理模式
这里又遇到一个问题,因为我在创建用户的时候,host填写的是内网ip,所以我一开始sysbench没能成功登陆数据库,抛出如下异常:
FATAL: unable to connect to MySQL server on host '121.37.156.220', port 3306, aborting...
FATAL: error1045: Access denied for user 'press_test_user'@'183.156.138.5'(using password: YES)
FATAL: `sysbench.cmdline.call_command' function failed: ...al/Cellar/sysbench/1.0.20/share/sysbench/oltp_common.lua:83: connection creation failed
后来依次修改mysql.user表和mysql.db表,修改其中的Host为'%',并刷新权限后,得以解决。
三:执行压测命令
TPS 测试
sysbench --db-driver=mysql #基于mysql的驱动去连接mysql数据库
--time=300 #连续访问300秒
--threads=10 #用10个线程模拟并发访问
--report-interval=1 #每隔1秒输出一下压测情况
--mysql-host=121.37.156.220 #数据库连接参数
--mysql-port=3306
--mysql-user=db_press_test_user
--mysql-password=82046722
--mysql-db=press_test_db #在test_db这个库里
--tables=20 #构造20个测试表,测试表的名字会是类似于sbtest1,sbtest2这个样子的
--table_size=500000 #每个测试表里构造100万条测试数据
oltp_read_write #执行oltp数据库的读写测试
--db-ps-mode=disable run #禁止ps模式
其他模式:
只读测试:oltp_read_only
删除:oltp_delete
更新索引字段:oltp_update_index
更新非索引字段:oltp_update_non_index
插入:oltp_insert
写入:oltp_write_only
清理:oltp_clean
四:结果
五:参考文章
(需要购买课程)https://apppukyptrl1086.pc.xiaoe-tech.com/detail/i_5e383c5357307_MjhluwMb/1?from=p_5e0c2a35dbbc9_MNDGDYba&type=6
最后
以上就是精明网络为你收集整理的mysql压力写入测试_Mysql 压力测试记录的全部内容,希望文章能够帮你解决mysql压力写入测试_Mysql 压力测试记录所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复