开发者社区 问答 正文

如何监控mysqld服务的内存使用情况,并在其超过系统内存70%时通过gdb调用

如何监控mysqld服务的内存使用情况,并在其超过系统内存70%时通过gdb调用jemalloc的malloc_stats_print函数?

展开
收起
不吃核桃 2024-08-13 21:57:37 49 分享 版权
1 条回答
写回答
取消 提交回答
  • 你可以使用以下脚本来监控mysqld服务的内存使用情况。当mysqld进程使用的内存超过系统内存的70%时,脚本会通过gdb调用jemalloc的malloc_stats_print函数来分析可能的内存泄漏。

    bash
        largest=70 
        while :; do 
        mem=$(ps -p `pidof mysqld` -o %mem | tail -1) 
        imem=$(printf %.0f $mem) 
        if [ $imem -gt $largest ]; then 
        echo 'p malloc_stats_print(0,0,0)' | gdb --quiet -nx -p `pidof mysqld` 
        fi 
        sleep 10 
        done
    
    2024-08-14 08:02:08
    赞同 展开评论