邮件订阅
首页 > 软件

为MySQL数据库增加线程内存监控

我也说几句2012年05月01日 10:48分         作者:P.Linux      来源:TT中国

摘要:本文介绍了如何为MySQL数据库增加线程内存监控,使用MySQL中我经常发现mysqld的内存使用会涨的很快。

关键字函数  数据库  内存监控  

使用MySQL中我经常发现mysqld的内存使用会涨的很快(Buffer Pool是大页分配的),以至于使用SWAP,到底Server层用了多少内存,没有一个监控机制,所以第一步我编写了个patch(基于5.6.6)来监控每个线程用了多少内存,一旦mysqld进程使用太多内存,就去看哪些线程用的多,杀掉这些线程。

打上补丁后的效果像这样:

This is the effect after patched:

代码可以看patch

5.6_thread_mem_usage.patch

基本方法就是在my_malloc和my_free中增加回调函数,获取调用my_malloc和my_free函数的THD描述符,用THD中新加的malloc_size字段去记录申请和释放内存,其实my_realloc也应该去更新malloc_size,暂时还没加进去。

然后使用malloc_usable_size函数在free时判断指针申请了多少内存,在GCC 4.2以上可以使用malloc_size(pointor)去判断。

下一步我会分类监控,把每个线程sort_buffer/join_buffer/net_buffer等线程级内存都分类统计出来占用多少,方便更直观的监控。

我也说几句责任编辑:软件频道   联系邮箱:yu_xiang@cnw.com.cn
更多相关文章
更多相关专题
[专题]IBM软件:云时代的黄金盛宴
IBM连续发起了对Lotus、Tivoli、Informix、Rational等领先软件企业的重量级收购,组建起业内最为丰富的中间件产品家族,并成长为全球最大的企业级软件提供商。
年终巨献 2010软件业界大事记盘点
2010即将过去,在这一年中必然有几家欢喜几家愁,有成有败。软件行业也不例外。今年软件业界出现的新潮流主要有社交网站Facebook、Twitter等与软件进行整合,网络地图...
我也说几句
  • 频道周TOP10
  • 频道月TOP10
最新发布
更多重磅专题
Fortinet全方位安全产品与...
Fortinet公司是全球领先的网络安全设备供应商和统一威胁管理(UTM)市场领...
RSA安全大会2013全程直击
RSA大会是信息安全界最有影响力的业界盛会。21年来,RSA大会一直吸引着世界...
E5的盖头掀起来
北京时间3月7日下午,英特尔在中国正式发布英特尔至强处理器E5-2600/1600产...