在mysql-safe的脚本中可以使用–malloc-lib=[lib_name]来指定内存分配的库,而不是使用系统的malloc()方法,对于MySQL5.6.33这个选项的值必须是下面几个目录中的一个/usr/lib /usr/lib64 /usr/lib/i386-linux-gnu或/usr/lib/x86_64-linux-gnu,这个版本之前的可以指定路径,在5.6的二进制分发版有个快捷的方式可以使用tcmalloc库,但是在某些特定的情况下快捷方式是无法起作用的,所以你应该指定路径名。在5.6.31版本中,mysql分发版本中不在包含tcmalloc库。
配合方法
在mysqld_safe脚本文件中添加
export LD_PRELOAD=/usr/lib/libtcmalloc_minimal.so
在cnf文件中的mysqld_safe部分添加:
malloc-lib=/usr/lib/libtcmalloc_minimal.so
下面是57在设置的时候错误提示
mysqld_safe –malloc-lib must be located in one of the directories: /usr/lib /usr/lib64 /usr/lib/i386-linux-gnu /usr/lib/x86_64-linux-gnu
加载成功的提示
mysqld_safe Adding ‘/usr/lib/libtcmalloc_minimal.so’ to LD_PRELOAD for mysqld
lsof -n| grep tcmalloc
mysqld 2029 my8888 mem REG 253,1 754332 25285728 /usr/lib/libtcmalloc_minimal.so
mysqld 2029 2030 my8888 mem REG 253,1 754332 25285728 /usr/lib/libtcmalloc_mi