开发者社区> 问答> 正文

检查TCMalloc是否生效的方法的问题

TCMalloc (google-perftools) 是用于优化C++写的多线程应用,比glibc 2.3的malloc快。这个模块可以用来让MySQL在高并发下内存占用更加稳定。
一般装完这个后,可以通过下面的方法来检测是否生效
/usr/sbin/lsof -n | grep tcmalloc
如果安装生效,那么会显示如下信息
mysqld 25580 mysql mem REG 3,1 1477689 1655725 /usr/local/lib/libtcmalloc.so.0.0.0
但是
这个方法在 32 位系统下没问题,但在 64 位系统下就看不到任何输出,但事实上已经生效了,不知道何故。

展开
收起
落地花开啦 2016-02-08 15:08:26 6919 0
1 条回答
写回答
取消 提交回答
  • 喜欢技术,喜欢努力的人

    首先,X64 位系统必须安装 libunwind ,而版本推荐是 0.99
    然后,需要创建软连接 ln -s /usr/local/lib/libunwind.so.7 /usr/lib64/
    跟着,编辑 mysqld_safe ,确认在最上一行添加有
    export LD_PRELOAD=/usr/local/lib/libtcmalloc.so
    最后,重新启动 mysql 并再次用 /usr/sbin/lsof -n | grep tcmalloc 命令检测。
    得出结果:
    mysqld 27683 mysql mem REG 8,1 1675447 9830428 /usr/local/lib/libtcmalloc.so.0.0.0

    2019-07-17 18:39:40
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载