#!/bin/bash
count=1
while [ $count -le 100 ]
do
sysbench --test=oltp --mysql-table-engine=innodb --oltp-table-size=1000000 --max-requests=10000 --num-threads=100 --mysql-host
=192.168.1.111 --mysql-port=3308 --mysql-user=admin --mysql-password=admin123 --mysql-db=test --mysql-socket=/tmp/mysql.s
ock run
let count++
done
场景一,innodb和系统自带的malloc,版本mysql5.1.43
场景二,innodb_plugin 1.0.6和Tcmalloc,版本mysql5.1.43
可以通过参数innodb_use_sys_malloc来控制InnoDB_Plugin是否使用系统的内存分配器。innodb_use_sys_malloc设置成0,InnoDB将使用自己实现的内存管理功能;设置为ON时(默认设置),则使用系统的内存分配器。这时如果系统中安装了新的内存分配器(如TCMalloc),只需在启动MySQL时,设定环境变量LD_PRELOAD和LD_LIBRARY_PATH指向新分配的动态连接库就可以了。
查看附件里的截图
可以明显看到用了Tcmalloc后内存降低了1倍左右。
Tcmalloc安装文档:
http://blog.s135.com/post/349/