MySQL数据库基准压力测试工具之MySQLSlap使用实例

2013-7-21 杜世伟 Mysql

一、Mysqlslap介绍

mysqlslap是MySQL5.1之后自带的benchmark基准测试工具,类似Apache Bench负载产生工具,生成schema,装载数据,执行benckmark和查询数据,语法简单,灵活,容易使用。该工具可以模拟多个客户端同时并发的向服务器发出查询更新,给出了性能测试数据而且提供了多种引擎的性能比较。mysqlslap为mysql性能优化前后提供了直观的验证依据,笔者建议系统运维人员应该掌握一些常见的压力测试工具,这样才能较为准确的掌握线上系统能够支撑的用户流量上限及其抗压性等问题。 

二、使用方法介绍

可以使用mysqlslap --help来显示使用方法:

1) --concurrency代表并发数量,多个可以用逗号隔开,例如:concurrency=10,50,100, 并发连接线程数分别是10、50、100个并发。

2) --engines代表要测试的引擎,可以有多个,用分隔符隔开。

3) --iterations代表要运行这些测试多少次。

4) --auto-generate-sql 代表用系统自己生成的SQL脚本来测试。

5)--auto-generate-sql-load-type 代表要测试的是读还是写还是两者混合的(read,write,update,mixed)

6) --number-of-queries 代表总共要运行多少次查询。每个客户端运行的查询数量可以用查询总数/并发数来计算。

阅读全文>>

标签: mysql mysqlslap

评论(0) 浏览(1496)

Linux下tempfs简介及/dev/shm原理与应用

2013-7-19 杜世伟 Linux

什么是tmpfs?
tmpfs是linux/Unix系统上的一种基于内存的文件系统。tmpfs可以使用您的内存或swap分区来存储文件。由此可见,temfs主要存储暂存的文件。

linux内核中的VM子系统负责在后台管理虚拟内存资源Virtual Memory,即RAM和swap资源,透明地将RAM页移动到交换分区或从交换分区到RAM页,tmpfs文件系统需要VM子系统的页面来存储文件。tmpfs自己并不知道这些页面是在交换分区还是在RAM中;做这种决定是VM子系统的工作。tmpfs文件系统所知道的就是它正在使用某种形式的虚拟内存。

tmpfs基于内存,因而速度是相当的,另外tmpfs使用的VM资源是动态的,当删除tmpfs中文件,tmpfs 文件系统驱动程序会动态地减小文件系统并释放 VM 资源,当然在其中创建文件时也会动态的分配VM资源。另外,tmpfs不具备持久性,重启后数据不保留,原因很明显,它是基于内存的。

阅读全文>>

标签: linux tmpfs /dev/shm

评论(0) 浏览(15158)

查看mysql表结构信息

2013-7-18 杜世伟 Mysql

一、简单描述表结构,字段类型
desc tabl_name; describe columns
显示表结构,字段类型,主键,是否为空等属性,但不显示外键和字段的注释。
二,查看表生成的DDL
show create table 表名;
这个命令虽然显示起来不是太容易看, 这个不是问题可以用\G来结尾,使得结果容易阅读;该命令把创建表的DDL显示出来,于是表结构、类型,外键,备注全部显示出来了。我比较喜欢这个命令:输入简单,显示结果全面。
三,查询表中列的注释信息
use  information_schema
select * from columns where  table_name = '表名' ;
四、查看表的注释
select table_name,table_comment frominformation_schema.tables  where table_schema = 'db' and table_name='表名'
五,只查询列名和注释
select  column_name, column_comment from information_schema.columnswhere table_schema ='db'  and table_name = '表名' ;

标签: linux mysql select desc use show

评论(0) 浏览(5174)

如何在linux中将mysql添加到加到命令行里

2013-7-18 杜世伟 Linux

今天在虚拟机里面玩mysql,登录mysql的时候提示:
[root@localhost web]# mysql -uroot -p
-bash: mysql: command not found
是由于mysql的路径没有添加到系统的PATH变量中

要将mysql加到命令行中,需要修改/root/.bash_profile中的PATH变量。
此处,root是你的用户名,.bash_profile是一个系统隐藏文件。

阅读全文>>

标签: linux mysql source

评论(0) 浏览(4037)

linux 关于cat >file,cat <file <<EOF详解

2013-6-17 杜世伟 Linux

linux 关于cat >file,cat <file <<EOF

1、
cat >file记录的是键盘输入,相当于从键盘创建文件,并且只能创建新文件,不能编辑已有文件.>是数据重导向,会将你输入的文本内容输出到file中。

2、cat <<EOF

cat命令是linux下的一个文本输出命令,通常是用于观看某个文件的内容的;
EOF是"end of file",表示文本结束符。
结合这两个标识,即可避免使用多行echo命令的方式,并实现多行输出的结果。

阅读全文>>

标签: linux cat

评论(0) 浏览(3106)

linux awk 改变文件的内容的分隔符并添加行号

2013-6-9 杜世伟 awk

linux awk 改变文件的内容的分隔符并添加行号以下是范例内容,使用‘,’分隔符
$ cat testfile.out
3232,32332,54545,34
3233,45645,23233,23
1211,1212,4343,434
3434,121121,121,33
替换文件内容中,为|并且为每行添加新的行号,输出结果为:
1|3232|32332|54545|34
2|3233|45645|23233|23
3|1211|1212|4343|434
4|3434|121121|121|33

阅读全文>>

标签: linux tr awk

评论(0) 浏览(8019)

linux 合并多个连续的行

2013-6-8 杜世伟 awk

linux 合并多个连续的行
文件内容为:
$ cat infile.txt 
aid=33
pw=3
nn=90
aid=32
pw=30
nn=70
aid=56
pw=3
nn=93

组合或合并上述文件的每三个连续行,使输出变为:
aid=33,pw=3,nn=90
aid=32,pw=30,nn=70
aid=56,pw=3,nn=93

阅读全文>>

标签: linux awk bash read

评论(0) 浏览(14385)

linux 将0附加到单位数字日期

2013-6-8 杜世伟 awk

linux 将0附加到单位数字日期
日期的文件格式为:month/day/year format. 
$ cat date.txt 
3/4/2013
3/10/2013
10/4/2013
12/10/2012
要求将0附加到单位数字日期,输入格式为
03/04/2013
03/10/2013
10/04/2013
12/10/2012

阅读全文>>

标签: linux awk

评论(0) 浏览(3988)

linux 删除换行符的方法小结

2013-5-16 杜世伟 Linux

linux 删除换行符的方法小结

工作中时而不时会遇到,替换文件中换行符把内容转换为一行,以下是笔者总结的一些常见的实现方式,仅供参考!转载请注明出处

方法一:

通过awk
awk BEGIN{RS=EOF}'{gsub(/\n/," ");print}' file.txt
说明:awk默认将记录分隔符(record separator即RS)设置为\n,此行代码将RS设置为EOF(文件结束),也就是把文件视为一个记录,然后通过gsub函数将\n替换成空格,最后输出
方法二:
通过vim打开文件,然后输入命令:%s/\n//g替换所以的换行符
方法三:
通过使用td命令,cat file.txt | tr '\n' ' '
注意tr最后那个参数是空格,否则会报错

阅读全文>>

标签: linux sed shell awk cat

评论(0) 浏览(8224)

5种强制修改mysql的root密码的方法

2013-4-26 杜世伟 Mysql

 在安装mysql的时候如果没有设置新的密码,默认值为空或者12456,这样安装是没有问题的也可以使用命令行mysql -uroot -p进行登录。但是在正式使用的时候你不想密码为空,或者为123456这样简单,以下是强制修改mysql的root密码的四种方法:
      第一种方法:使用update语句进行修改
            [root@localhost ~]# mysql -uroot -p
            mysql->user mysql;
             mysql> update user set Password=password('newpassword') where User='root' and Host='localhost';
                        Query OK, 1 row affected (0.00 sec)
                        Rows matched: 1  Changed: 1  Warnings: 0
             mysql> flush privileges;
                        Query OK, 0 rows affected (0.00 sec)

阅读全文>>

标签: grant update mysql set

评论(0) 浏览(6042)

Powered by emlog 沪ICP备2023034538号-1