基准测试和寻找性能瓶颈—high performance mysql读书笔记之一

OLTP, TCP测试,联机事务的处理性能。有DBT2(我没运行成功,它的手册中最后需要执行的文件我用find找了下也没有)

重视暖机过程和测试数据:这个是主要是为了一些缓存内容

单组件测试工具
mysqlslap
sysbench
dbt2
mysql benchmark suite(sql-bench)
super smack(支持多用户复杂测试,推荐使用)

time super-smack -d mysql select-update.smack 10 50000 (50 10000,100 5000,200 2500)
read sql : select SQL_NO_CACHE * from test where id = '随机';
write sql: update test set id=id+1 where id = '随机';

性能分析(profilng)

使用JDBC驱动或者PHP的类在程序中嵌入mysql查询执行时间的代码。
还有就是使用mysql的慢日志查询

log-slow-queries = /data/log/mysql/slow-log
long_query_time = 2 #单位为秒,默认为10秒
log-queries-not-using-indexes #没有使用索引的查询
log-slow-admin-statements #执行比较慢的管理命令

使用mysql-pathes 来将long_query_time时间粒度降低到毫秒。但是5.1版本之前需要自己手动进行编译进去。
将long_query_time = 0 可以记录所有的查询
手动编译这个补丁还能获得其它的慢查询的信息: 查询的连接ID,查询缓存,联接类型,临时表,排序,以及innodb的一些信息。

慢日志分析工具:
mysqldumpslow
mysql_slow_log_filer
mysql_slow_log_parser
mysqlsla

mysqldumpslow -s c -t 20 -g select ../temp/db100-slow.log

显示数量最多的前20条select
-v verbose
-d debug
-s ORDER what to sort by (t, at, l, al, r, ar etc), ‘at’ is default
-r reverse the sort order (largest last instead of first)
-t NUM just show the top n queries
-a don’t abstract all numbers to N and strings to ‘S’
-n NUM abstract numbers with at least n digits within names
-g PATTERN grep: only consider stmts that include this string
-h HOSTNAME hostname of db server for *-slow.log filename (can be wildcard),
default is ‘*’, i.e. match all
-i NAME name of server instance (if using mysql.server startup script)
-l don’t subtract lock time from total time

mysql_slow_log_parser的使用方法很简单

./mysql_slow_log_parser.pl ../temp/sv100-3-slow.log | less

mysql性能分析工具
mysqladmin extended -r -i 10 #每10秒刷新一次
| grep Com_* # 服务器正在执行的命令
| grep Created_* #在查询执行期间创建的临时表和文件
| Bytes_received 和 Bytes_sent #来往之间的流量
| grep Handler_* #在存储引擎操作
| grep Select_* # 不同类型的连接执行计划
| grep Sort_* #几种排序信息

show profile #只针对5.0.37有补丁支持
mysqlreport
tuning-primer.sh

2010-04-22

Best regards
Timo Seven
blog: http://www.timoseven.com
#####请翻墙浏览,或者指定hosts到74.200.243.252#######
twitter: https://twitter.com/zauc
######也请翻墙浏览####################
UNIX System Admin & MySQL DBA

关于 Timo
XNIX SA & MYSQL DBA

发表评论

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 更改 )

Twitter picture

You are commenting using your Twitter account. Log Out / 更改 )

Facebook photo

You are commenting using your Facebook account. Log Out / 更改 )

Google+ photo

You are commenting using your Google+ account. Log Out / 更改 )

Connecting to %s

%d 博主赞过: