MySQL社区

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

搜索
查看: 2836|回复: 0
打印 上一主题 下一主题

[mydumper] mydumper性能测试及对比

[复制链接]
跳转到指定楼层
1#
发表于 2013-5-30 17:36:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
出处:http://www.dbunix.com/?p=2878,整理:mysqlpub.com

mydumper性能测试本想mk-parallel-dump和mydumper做个性能对比,mk-parallel-dump的作者认为存在潜在风险(http://www.dbunix.com/?p=2584),所以就放弃对mk-parallel-dump测试(个人认为不适合线上使用)。

Domas Mituzas对三个工具做了性能上对比(库大小为20G):
mysqldump: 75m18s
maatkit: 8m13s
mydumper: 6m44s


对mydumper及myloader做个测试,来回答以下问题:


1、mydumper开启多少线程,导出最快?
2、mydumper压缩率有多高?如果不压缩,导出多快?
3、myloader开启多少线程,恢复最快?

测试环境(实际环境不一样,可能结果也不一样):
机器: Dell PowerEdge  2950 、磁盘做了raid10
数据库大小:3.7G
数据库表总数:20张


mydumper压缩情况下对比:
mydumper开启2线程
[xxx@xxx ~]$time mydumper -u root -c -B lx_test -t 2 -o /usr/local/mysql/tmp real    1m32.872suser    2m20.259ssys     0m2.655s

mydumper开启4线程
[xxx@xxx ~]$time mydumper -u root -c -B lx_test -t 4 -o /usr/local/mysql/tmp  real    0m53.454suser    2m18.817ssys     0m2.155s

mydumper开启6线程
[xxx@xxx ~]$time mydumper -u root -c -B lx_test -t 6 -o /usr/local/mysql/tmp  real    0m41.588suser    2m18.920ssys     0m2.431s

mydumper开启8个线程
[xxx@xxx ~]$time mydumper -u root -c -B lx_test -t 8 -o /usr/local/mysql/tmp  real    0m43.196suser    2m19.397ssys     0m2.765s

小结:可以发现,不是线程开的越多越好,到开到8个线程时,导出反而慢了。mydumper用多线程导出,写到不同的文件中,一个表最终会生成两个文件,一个table meta、一个table data。


mydumper未开启压缩情况下对比:
mydumper开启2线程
[xxx@xxx ~]$time mydumper -u root -B lx_test -t 2 -o /usr/local/mysql/tmp real    0m52.264suser    0m34.607ssys     0m8.252s

mydumper开启4线程
[xxx@xxx ~]$time mydumper -u root -B lx_test -t 4 -o /usr/local/mysql/tmp  real    0m32.877suser    0m34.686ssys     0m8.417s

mydumper开启6线程
[xxx@xxx ~]$time mydumper -u root -B lx_test -t 6 -o /usr/local/mysql/tmp  real    0m32.245suser    0m34.045ssys     0m9.117s

mydumper开启8线程
[xxx@xxx ~]$time mydumper -u root -B lx_test -t 8 -o /usr/local/mysql/tmp  real    0m35.713suser    0m34.830ssys     0m9.027s

小结:也是开到8线程时,导出反而慢了


上面内容总结一下:在开启6线程时,导出最快,压缩和未压缩时间上相差9秒(未压缩快),压缩率在10%左右(10G的数据压缩后在1G左右)


myloader恢复数据对比:

[xxx@xxx ~]
$time myloader -u root -B lx_test -t 2 -d /usr/local/mysql/tmp/

real    6m12.358s
user    0m5.215s
sys     0m6.471s

[xxx@xxx ~]
$time myloader -u root -B lx_test -t 4 -d /usr/local/mysql/tmp/

real    4m17.518s
user    0m5.173s
sys     0m6.156s

[xxx@xxx ~]
$time myloader -u root -B lx_test -t 6 -d /usr/local/mysql/tmp/

real    3m38.339s
user    0m5.126s
sys     0m6.140s

[xxx@xxx ~]
$time myloader -u root -B lx_test -t 8 -d /usr/local/mysql/tmp/

real    3m54.703s
user    0m5.156s
sys     0m5.911s

小结:开到8线程时,导入反而慢了,6线程时CPU利用率在60%左右,磁盘写入在100M/s,8线程时CPU利用率在90%左右,磁盘写入在60M/s


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享淘帖 顶 踩
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|申请友链|小黑屋|Archiver|手机版|MySQL社区 ( 京ICP备07012489号   
联系人:周生; 联系电话:13911732319

GMT+8, 2024-4-27 08:44 , Processed in 0.083486 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表