当前位置: 首页 > 编程日记 > 正文

mysql为什么要压测_mysql集群压测的详细介绍

本篇文章给大家带来的内容是关于mysql集群压测的详细介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

mysql压测

mysql自带就有一个叫mysqlslap的压力测试工具,通过模拟多个并发客户端访问MySQL来执行压力测试,并且能很好的对比多个存储引擎在相同环境下的并发压力性能差别。通过mysqlslap –help可以获得可用的选项,这里列一些主要的参数,更详细的说明参考官方手册。如果是系统自带或者使用rpm包安装的mysql,安装了MySQL-client端的包就有mysqlslap这个工具。(推荐课程:MySQL教程)

测试环境介绍:

虚拟机2台2Gmysql读写分离

使用语法如下:

# mysqlslap [options]

常用参数 [options] 详细说明:

--auto-generate-sql, -a 自动生成测试表和数据,表示用mysqlslap工具自己生成的SQL脚本来测试并发压力。

--auto-generate-sql-load-type=type 测试语句的类型。代表要测试的环境是读操作还是写操作还是两者混合的。取值包括:read,key,write,update和mixed(默认)。

--auto-generate-sql-add-auto-increment 代表对生成的表自动添加auto_increment列,从5.1.18版本开始支持。

--number-char-cols=N, -x N 自动生成的测试表中包含多少个字符类型的列,默认1

--number-int-cols=N, -y N 自动生成的测试表中包含多少个数字类型的列,默认1

--number-of-queries=N 总的测试查询次数(并发客户数×每客户查询次数)

--query=name,-q 使用自定义脚本执行测试,例如可以调用自定义的一个存储过程或者sql语句来执行测试。

--create-schema 代表自定义的测试库名称,测试的schema,MySQL中schema也就是database。

--commint=N 多少条DML后提交一次。

--compress, -C 如果服务器和客户端支持都压缩,则压缩信息传递。

--concurrency=N, -c N 表示并发量,也就是模拟多少个客户端同时执行select。可指定多个值,以逗号或者--delimiter参数指定的值做为分隔符。例如:--concurrency=100,200,500。

--engine=engine_name, -e engine_name 代表要测试的引擎,可以有多个,用分隔符隔开。例如:--engines=myisam,innodb。

--iterations=N, -i N 测试执行的迭代次数,代表要在不同并发环境下,各自运行测试多少次。

--only-print 只打印测试语句而不实际执行。

--detach=N 执行N条语句后断开重连。

--debug-info, -T 打印内存和CPU的相关信息。

说明:

测试的过程需要生成测试表,插入测试数据,这个mysqlslap可以自动生成,默认生成一个mysqlslap的schema,如果已经存在则先删除。可以用--only-print来打印实际的测试过程,整个测试完成后不会在数据库中留下痕迹。

mysqlslap -a -c 150 -i 10 -uroot -proot1234测试mysql连接数150时

93caa6d611a60d2132167b31fb366f2a.png

压测并发数到200连接崩了

e85ccd2a58ccd28cc513457db62c03b8.png

测试实例:

单线程测试。

# mysqlslap -a -uroot -proot1234

261c3091240c1f67810f013e6ca20371.png

多线程测试,测试并发。

# mysqlslap -a -c 100 -uroot -proot1234

bada809dcd0308bdae2cb735e520743e.png

并发数达到100时,搜索查询时间在1s多

迭代测试。用于需要多次执行测试得到平均值。

# mysqlslap -a -i 10 -uroot -proot1234

c91433c470550f7c5d9d4571c0c165b0.png

测试同时不同的存储引擎的性能进行对比:

# mysqlslap -a --concurrency=50,100 --number-of-queries 1000 --iterations=5 --engine=myisam,innodb -uroot -proot1234

执行一次测试,分别50和100个并发,执行1000次总查询:

3fed278f6c90e72a48373f52e2b3ce79.png

明显发现innodb性能查询较优

# mysqlslap -a --concurrency=50,100 --number-of-queries 1000 -uroot -proot1234

b7e72b0e36ffb2c0a025752f77b62e00.png

50和100个并发分别得到一次测试结果(Benchmark),并发数越多,执行完所有查询的时间越长。为了准确起见,可以多迭代测试几次:

# mysqlslap -a --concurrency=50,100 --number-of-queries 1000 --iterations=5 -uroot -proot1234

75921888acb5b1bec8dc00221e956ce8.png

相关文章:

迭代法移动盘子java,算法学习--日记(牛顿迭代法)

牛顿迭代法概念理解牛顿迭代法可以使用函数极限角度无限迭代趋近于某一点理解。迭代算法解决问题,需要做好3个方面的工作:确定迭代变量 在可以用迭代算法解决的问题中,至少存在一个可直接或间接地不断由旧值递推出新值的变量,这个…

linux 瞬间文件数没了,关于linux:如何快速汇总文件中的所有数字?

我有一个包含几千个数字的文件,每个数字都在自己的行中:3442116299...我正在写一个脚本,它将打印文件中所有数字的总和。我有解决办法,但效率不高。(运行需要几分钟)我正在寻找更有效的解决方案。有什么建议吗?你的缓慢…

js短路运算符

在JS函数中我们经常会使用到短路运算符,主要是逻辑与(&&) 和 逻辑或(||) 1、逻辑与 && 的运算方式 var a 5 && 6; console.log(a); //返回的结果为 6 如果逻辑与运算符左边的值布尔转换后为t…

python终止线程报错_退出整个程序时出现python线程异常错误

嗨,伙计们我正在用python2.4.3和wxpython开发一个GUI。除了退出主程序(关闭GUI的主窗口)之外,一切正常。最重要的是,有时会有这样的错误,有时根本就没有错误。尽管我从python邮件列表中找到了相同的错误报告(链接是http://bugs.py…

php 依赖注入框架,通过实现依赖注入和路由,构建一个自己的现代化PHP框架

如何提高自己编写代码的能力呢?我们首先想到的是阅读学习优秀的开源项目,然后写一个自己的web框架或类库组件。作为web开发者,我们通常都是基于面向对象OOP来开发的,所以面向对象的设计能力或者说设计模式的运用能力尤为重要&…

针对七牛含有特殊字符的文件名,对特殊字符编码处理

源字符串: a a 1 ~!#$%^&()_-{}[];,.- 编码后: a%20a%201%20~%60%21%23$%25%5E&%28%29_-%7B%7D%5B%5D;%27,.-%20 源字符串: 变 ~!#¥%…………&()——-{}:“;‘、《》?&…

linux sftp权限设置,Linux设置SFTP服务用户目录权限

我们有时会遇到这样的需求,限制一个Linux用户,让他只能在指定的目录下进行添加、修改、删除操作,并且只能使用sftp登录服务器,不能用ssh操作。这些可以通过配置sftp服务实现。提供sftp服务的有vsftpd和internal-sftp,这…

mybatis动态sql中的trim标签的使用

trim标记是一个格式化的标记&#xff0c;可以完成set或者是where标记的功能&#xff0c;如下代码&#xff1a; 1、 select * from user <trim prefix"WHERE" prefixoverride"AND |OR"> <if test"name ! null and name.length()>0"&…

smarty mysql demo_PHP Smarty模版简单使用方法

本文实例讲述了PHP Smarty模版简单使用方法。分享给大家供大家参考&#xff0c;具体如下&#xff1a;Index.php&#xff1a;require(../libs/Smarty.class.php);$smarty new Smarty;// 添加自定义调节器$smarty->registerPlugin("modifier", "e", &quo…

php webuploader大文件,web uploader 上传大文件总结

由于业务需要&#xff0c;需要上传大文件&#xff0c;已有的版本无法处理IE版本&#xff0c;经过调研&#xff0c;百度的 webuploader 支持 IE 浏览器&#xff0c;而且支持计算MD5值&#xff0c;进而可以实现秒传的功能。大文件上传主要分为三部分&#xff0c;预上传&#xff0…

cfl3d linux 编译,CMake build system for cfl3d

-0,0 1,379 ---title: cfl3dopenmpigfortran编译和安装---#简介cfl3d用intel的编译器和mpi会比较容易编译&#xff0c;不再详述。本文主要讲述用gfortran的情况cfl3d依赖于cgns, fortran编译器和mpi- mpi&#xff1a;只要是符合mpi1.1的标准的MPI应该都可以的,mpich, openmpi, …

Request.getInputStrema只能读取一次的分析过程

1. 我们先来看一下继承关系HttpServletRequest 接口继承ServletRequest接口 public abstract interface ServletRequest{ public abstract ServletInputStream getInputStream() throws IOException; &#xff5d; 从上面可知request.getInputStream()返回的是ServletInputSt…

windows nodejs mysql_windows server 安装 mysql + nondejs连接mysql

下载安装下载完后&#xff0c;将 zip 包解压到相应的目录&#xff0c;这里我将解压后的文件夹放在 C:\mysql 下。接下来需要配置下 MySQL 的配置文件打开刚刚解压的文件夹 C:\mysql &#xff0c;在该文件夹下创建 my.ini 配置文件&#xff0c;编辑 my.ini 配置以下基本信息&…

多线程并行和并发的区别

并行就是两个任务同时运行&#xff0c;就是甲任务进行的同时&#xff0c;乙任务也在进行。(需要多核CPU) 并发是指两个任务都请求运行&#xff0c;而处理器只能按受一个任务&#xff0c;就把这两个任务安排轮流进行&#xff0c;由于时间间隔较短&#xff0c;使人感觉两个任务都…

php dropdownlist,为何activitieDropdownlist的值始终无法获取到

为什么activitieDropdownlist的值始终无法获取到&#xff1f;视图层view控制器层public function actionDbdplist(){$m_subjectlist new SubjectList();$m_gradelist new Grade;$this->subject_list SubjectList::model()->findAll();$this->grade_list Grade::mo…

python之内置函数

一、 内置函数 什么是内置函数&#xff1f;就是python给你提供的可以直接使用的函数。到目前为止在python中一共有68个内置函数 经过我两个多小时的制作终于弄出了个能看的东西↓↓↓↓↓↓ 思维导图链接:https://www.processon.com/view/link/5b72a285e4b053a09c33e534 转载于…

远程桌面linux服务器配置,linux平台下远程桌面服务器的安装和设置

一、xdm 方式前提&#xff1a;安装linux时一定要选上xwindow&#xff0c;这是最基本的前提&#xff0c;不安装它&#xff0c;是绝对没有图形界面的。**********************************************************基本概念和相关命令说明&#xff1a;XDMCP(X Display Manager Co…

关于字符串的分割问题

1、如何快速的将一个字符串分割成一个个字符&#xff1f; Scanner scnew Scanner(System.in);System.out.println("请输入一个字符串&#xff1a;");String strsc.next();System.out.println("输入的字符串的长度为&#xff1a;"str.length());char [] ast…

java创建对象_java 创建对象的五种方式

通过 Class 对象的 getConstructor 可以获取 java.lang.reflect.Constructor 对象Constructor 对象用来描述类的构造方法&#xff0c;通过给 getConstructor 方法传入不同的 Class 对象&#xff0c;可以获取到对应的无参或有参数的构造方法通过 Constructor 的 newInstance 方法…

php拍照从手机相册中选择,微信js-sdk预览图片接口及从拍照或手机相册中选图接口用法示例...

本文实例讲述了微信js-sdk预览图片接口及从拍照或手机相册中选图接口用法。分享给大家供大家参考&#xff0c;具体如下&#xff1a;目前中js-sdk 1.0版本中&#xff0c;预览图片提供了2个接口&#xff0c;接口的定义参考官方文档1.预览网络图片http链接的2.预览本地图片wenxin:…

BZOJ 1124: [POI2008]枪战Maf(构造 + 贪心)

题意 有 \(n\) 个人&#xff0c;每个人手里有一把手枪。一开始所有人都选定一个人瞄准&#xff08;有可能瞄准自己&#xff09;。然后他们按某个顺序开枪&#xff0c;且任意时刻只有一个人开枪。 因此&#xff0c;对于不同的开枪顺序&#xff0c;最后死的人也不同。 问最后死的…

Maven跳过测试

Maven跳过测试用例 在properties中声明<properties><maven.test.skip>true</maven.test.skip> </properties> 或者 <properties><skipTests>true</skipTests> </properties> 在执行命令中声明mvn test -Dmaven.test.skiptrue …

Linux内核 题目,《Linux内核完全注释》部分习题答案

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼第3章 内核引导和启动过程2.为什么不直接将system模块搬到0x00000处而是先搬到0x10000处&#xff0c;再搬到0x00000处呢&#xff1f;在机器开机上电时&#xff0c;ROM BIOS将bootsect代码加载到内存的固定位置0x7c00处&#xff0c;…

java jdk 1.8 安装_下载、安装、配置 java jdk1.8

近期配置react native的开发环境&#xff0c;所以就从配置环境开始。rn的环境配置有那么几项&#xff0c;其中重要的一个就是java jdk(Java Development Kit 的缩写)&#xff0c;那么以下就是下载、安装还有配置的流程1.下载java jdk 1.8在地址栏输入 java jdk,如下图所示&…

liunx php redis扩展,CentOS 7下安装php-redis扩展及简单使用

前言&#xff1a;在本篇文章中&#xff0c;我将给大家介绍如何在CentOS7上安装PHP-Redis扩展以及一些简单的实用&#xff0c;关于如何在Centos上安装redis的&#xff0c;可以参考想要在php中操作redis&#xff0c;那就必须安装php-redis扩展&#xff0c;就比如MySQL一样&#x…

Luogu 2470 [SCOI2007]压缩

和Luogu 4302 [SCOI2003]字符串折叠 差不多的想法&#xff0c;区间dp 为了计算方便&#xff0c;我们可以假设区间[l, r]的前面放了一个M&#xff0c;设$f_{i, j, 0/1}$表示区间$[i, j]$中是否存在M 因为这题只能是二的幂次倍压缩&#xff0c;所以转移的时候枚举中点chk是否合法…

做图形处理Linux小型主机,8个优秀的linux图形图像工具

对艺术家、摄影师、动画师和设计师而言&#xff0c;Linux是一个有潜力的平台。廉价的硬件&#xff0c;优秀的免费软件&#xff0c;任何有才华的人都能在上面创作专业水平的计算机图形。开源社区提供了丰富的开源图形工具&#xff0c;但要慧眼识珠并非易事。这里介绍的优秀图形工…

使用laravel框架的eloquent\DB模型连接多个数据库

1、配置.env文件 DB_HOST_TRAILER127.0.0.1DB_PORT_TRAILER3306DB_DATABASE_TRAILERhtms_trailerDB_USERNAME_TRAILERrootDB_PASSWORD_TRAILER DB_HOST_FREIGHT127.0.0.1DB_PORT_FREIGHT3306DB_DATABASE_FREIGHThangli_saasDB_USERNAME_FREIGHTrootDB_PASSWORD_FREIGHT 2、配置…

java openfile busy_android java.io.IOException: open failed: EBUSY (Device or resource busy)

今天遇到一个奇怪的问题&#xff0c;测试在程序的下载界面&#xff0c;下载一个文件第一次下载成功&#xff0c;删除后再下载结果下载报错&#xff0c;程序&#xff1a;file.createNewFile();报错&#xff1a;java.io.IOException: open failed: EBUSY (Device or resource bus…

java service注入失败,使用spring向service里面注入dao不成功。

使用spring向service里面注入dao不成功。求救啊&#xff01;本帖最后由 PaperStar 于 2013-12-26 19:29:20 编辑页面调用action&#xff0c;action调用service&#xff0c;service调用dao用Debug查看action调用service方法时service有值&#xff0c;但是service调用dao时&#…