在GreenPlum中使用valgrind进行内存泄漏检测

0    53    1

Tags:

👉 本文共约721个字,系统预计阅读时间或需3分钟。

GPDB中基于PostgreSQL的MPP的分布式数据库,我们在使用时会遇到内存泄漏的问题。通常我们会使用工具valgrind进行内存泄漏检测。但是,GPDB是分布式数据库,并且是多进程架构,Valgrind只能跟踪一个进程,它不能attach一个进程。那么如何在GPDB中使用valgrind进行内存检测呢?

GPDB的GitHub上有个话题进行了讨论,感兴趣的同学可以查看:

https://github.com/greenplum-db/gpdb/issues/5375

总结来说,GPDB中能使用valgrind工具吗?答案是能

使用方法如下:

也就是通过--wrapper选项来指定valgrind工具,--wrapper-args来指定valgrind工具的参数。在GitHub讨论中,我们看到GPDB6中有个patch:

https://github.com/greenplum-db/gpdb/pull/10672

让pg_ctl重新使用wrapper功能,其实PG是支持的,只是在GPDB5中merge PG时将其去掉了,限制该patch又重新将这个功能合入了进来:也就是说PG也是可以使用valgrind工具进行内存泄漏检测的

本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信db_bao,谢谢!

https://github.com/greenplum-db/gpdb/pull/10672/commits/6273ea7976e55b67c9f2956ced10c6ed8c482701

如果想使用valgrind的massif工具,那么可以使用下面命令:

这里抛砖引玉,引出GPDB使用valgrind进行内存泄漏检测的方法,详细使用方法需要同学们亲手实践。

参考

https://mp.weixin.qq.com/s/66Z3FL5AGoW8qLGBhTfxNQ

标签:

头像

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

您可能还喜欢...

发表回复

嘿,我是小麦,需要帮助随时找我哦
  • 18509239930
  • 个人微信

  • 麦老师QQ聊天
  • 个人邮箱
  • 点击加入QQ群
  • 个人微店

  • 回到顶部
返回顶部