mysql压力测试

时间:2023-12-15 10:01:08

1。采用 mysqlslap  压力测试

mysqlslap  --defaults-file=/etc/my.cnf --concurrency=200 --iterations=1 --number-int-cols=1 --auto-generate-sql --auto-generate-sql-load-type=write --engine=myisam,innodb --number-of-queries=200 -S/home/mysql/mysql.sock  --debug-info  -uroot -p123

以下我们就来看看一些比較重要的參数:



--defaults-file。配置文件存放位置

--create-schema。測试的schema,MySQL中schema也就是database

--concurrency。并发数

--engines,測试引擎,能够有多个,用分隔符隔开。

--iterations,迭代的实验次数

--socket,socket,文件位置

--debug-info,打印内存和CPU的信息

--only-print,仅仅打印測试语句而不实际运行



--auto-generate-sql,自己主动产生測试SQL

--auto-generate-sql-load-type,測试SQL的类型。类型有mixed。update,write,key,read。

--number-of-queries,运行的SQL总数量

--number-int-cols,表内int列的数量

--number-char-cols,表内char列的数量

--query=name。使用自己定义脚本运行測试,比如能够调用自己定义的一个存储过程或者sql语句来运行測试。

指定数据库的測试:

--create-schema,指定数据库名称

--query,     指定SQL语句,能够定位到某个包括SQL的文件

比如:

[root@localhost ~]# /usr/local/mysql/bin/mysqlslap --defaults-file=/etc/my.cnf --concurrency=50 --iterations=1 --create-schema=test --query=/root/test.sql -S/tmp/mysql.sock -uroot -p123

对MySQL进行并发測试过程中遇到的一个小问题。记录一下。

用mysqlslap进行并发訪问測试,在1024线程的时候报错:

bin/mysqlslap: Error when connecting to server: 1135 Can't create a new thread (errno 11); if you are not out of available memory, you can consult the manual for a possible OS-dependent bug

Linux系统的open files数已经改动。当然仍然报错。ulimit -a命令,可查看当前系统限制情况

max user processes = 1024

通过ulimit -u 10000命令改动当前session的限制值。然后重新启动MySQL。问题解决。假设你想使此值永久生效,可配置/etc/profile 于。

版权声明:本文博主原创文章,博客,未经同意不得转载。