我是靠谱客的博主 精明网络,最近开发中收集的这篇文章主要介绍mysql压力写入测试_Mysql 压力测试记录,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一:环境与工具准备

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为'%',并刷新权限后,得以解决。

a6ccf4c928032e7e85570773e3687602.png

550e06e6ddb98d2dae077301453c1c4f.png

7dbd5516253548f0c1862f9b1c2daea2.png

三:执行压测命令

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

四:结果

9ae94c981a2c789a4e9354c4bc0f4adb.png

五:参考文章

(需要购买课程)https://apppukyptrl1086.pc.xiaoe-tech.com/detail/i_5e383c5357307_MjhluwMb/1?from=p_5e0c2a35dbbc9_MNDGDYba&type=6

最后

以上就是精明网络为你收集整理的mysql压力写入测试_Mysql 压力测试记录的全部内容,希望文章能够帮你解决mysql压力写入测试_Mysql 压力测试记录所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(38)

评论列表共有 0 条评论

立即
投稿
返回
顶部