Submitted by yejr on 周一, 2012/08/20 - 17:25
之前做过的兼容性测试结果:
Submitted by yejr on 周六, 2012/08/18 - 17:35
目前infobright应用越来越多了,有些场景下需要和台管理系统共用,因此需要同时存在brighthouse和myisam两种引擎。
这时候,如果需要brighthouse引擎支持utf8字符集,需要:
1. 数据库对象创建时务必使用utf8字符集,这点尤为关键,否则不可支持utf8;
2. 数据表对象创建时也使用utf8字符集;
3. 导入文件提前转换成utf8字符集;
4. 连接infobright时,执行set names utf8;
5. 导入文件,查看字符集是否正确;
另一种场景下,可能myisam表也需要支持utf8,这个相对比较麻烦:
1. 数据库对象创建时无所谓,不强制必须是utf8;
2. 数据表对象创建时务必使用utf8字符集;
3. 将导入文件全部转换成utf8字符集的INSERT语法,直接写入数据,infobright不支持LOAD DATA INFILE方式导入utf8字符集的文件;
4. 也可以将其他非字符型字段导入后,再用update进行更新;
Submitted by yejr on 周六, 2012/08/04 - 11:23
一、 下载工具包
Tpcc-mysql是percona基于tpcc衍生出来的产品,专用于mysql基准测试,其源码放在bazaar(Bazaar是一个分布式的版本控制系统,采用 GPL 许可协议,可运行于 Windows、GNU/Linux、UNIX 以及 Mac OS 系统之上。Bazaar 由 Canonical 公司(Ubuntu母公司)赞助)上,因此还需要先安装bazaar客户端。
使用root安装rpm包
rpm -Uvh http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm
然后就可以开始安装bzr客户端了:
yum install bzr
之后,就可以开始用bzr客户端下载tpcc-mysql源码了。
cd tmp
bzr branch lp:~percona-dev/perconatools/tpcc-mysql
二、编译安装
编译非常简单
cd /tmp/tpcc-mysql/src
make
然后就会在 /tmp/tpcc-mysql 下生成 tpcc 命令行工具 tpcc_load 、 tpcc_start
Submitted by yejr on 周五, 2012/07/20 - 21:01
按照惯例,如果前端应用程序采用长连接的话,那么innodb buffer pool最高可设置为物理内存大小的80%。
不过部分在线DB由于并发连接数较高,每个线程分配的内存较多,或由于业务上升,并发事务数突然较大幅度提升,加上innodb buffer pool较大,导致了严重的内存交换(swap)发生。
鉴于此,我们建议在这些活跃度较高/并发连接数较高的在线DB服务器上,适当调低innodb buffer pool的大小(例如先调低为60%),
同时也适当调低各线程级别的内存参数,例如:tmp_table_size, sort_buffer_size等,避免因为内存交换而影响服务器性能。尤其是 tmp_table_size,不少人以为是全局变量,设置的非常大,甚至见过一个设置为 1GB 的,太吓人了。
如果绝大多数引擎是InnoDB的话,建议调低key_buffer_size到很小的值,同时可以关闭query cache,现在它基本是个鸡肋了,有些时候甚至还会导致性能受到影响。
Submitted by yejr on 周二, 2012/07/03 - 14:06
一般频繁出现的话,才需要关注,一天出现几次属于正常情况。
频繁出现的原因一般有:
1. 网络,包括网络质量,服务器网卡驱动,程序连接数据库方式:ODBC/API,都是有区别的;这里的网络问题,可能出现在客户端,也可能出现在服务端
2. 如果使用ODBC的话,还需要注意部分ODBC版本可能存在bug,导致有问题
3. 服务端自身问题,例如mysqld不稳定,连接数超限,或者连接超时,或者由于dns反解析的问题导致连接异常
4. 其他问题,自己发挥吧 O(∩_∩)O哈哈~
Submitted by yejr on 周三, 2012/06/20 - 16:36
有一次和朋友讨论到 net-buffer-length 可能对mysqldump导出及恢复有影响,对此测试了一下,发现影响很小,基本可以忽略不计,下面是对比测试结果。
说明:执行mysqldump时,net buffer length的最大上限是16Mb,默认值是1Mb,下面是测试结果贴图:
从上面的对比结果可以看出来,该选项的调整对导出所需时间影响不大,仅对导出文件有一定影响,但也很小;同样地,对数据恢复的影响也很小。
Submitted by yejr on 周五, 2009/04/24 - 10:17
mysqlslap是官方提供的压力测试工具之一,官方介绍如下:
mysqlslap is a diagnostic program designed to emulate client load for a MySQL server and to report
the timing of each stage. It works as if multiple clients are accessing the server. mysqlslap is
available as of MySQL 5.1.4.
Submitted by yejr on 周四, 2009/04/09 - 15:54
原文参考:http://www.davidodwyer.com/category/tags/tcpdump-mysql
#!/bin/bash
tcpdump -i eth0 -s 0 -l -w - dst port 3306 | strings | perl -e '
while(<>) { chomp; next if /^[^ ]+[ ]*$/;
if(/^(SELECT|UPDATE|DELETE|INSERT|SET|COMMIT|ROLLBACK|CREATE|DROP|ALTER|CALL)/i) {
if (defined $q) { print "$q\n"; }
$q=$_;
} else {
$_ =~ s/^[ \t]+//; $q.=" $_";
}
}'
可以根据自己的需要稍微改改,我在这里只增加了对 CALL 关键字。
Submitted by yejr on 周四, 2009/04/09 - 10:05
其实很简单,就是利用linux下的 watch 工具来做监控,方法如下:
[yejr@localhost imysql]# watch -d -n 10 "egrep 'MySQL thread|Log|Modified db pages' innodb_status.3249 "
Every 10.0s: egrep 'MySQL thread|Log|Modified db pages' innodb_status.3249 Thu Apr 9 10:01:12 2009
Submitted by yejr on 周四, 2009/03/26 - 10:11
原文参考:http://www.xaprb.com/blog/2009/03/25/mysql-command-line-tip-compare-resu...
利用mysql客户端的pager功能即可:
mysql> pager md5sum -
PAGER set to 'md5sum -'
mysql> select * from user;
b20bd3864962507e2e05cd8706440ffd -
3 rows in set (0.00 sec)
mysql> select * from user;
b20bd3864962507e2e05cd8706440ffd -
3 rows in set (0.00 sec)
mysql> select * from user;
b20bd3864962507e2e05cd8706440ffd -
3 rows in set (0.00 sec)
还不错吧,哈哈
页面
最近评论