美文网首页技术分享
Mysql连接泄漏排查

Mysql连接泄漏排查

作者: centychen | 来源:发表于2020-10-17 15:01 被阅读0次

    背景

    记录一次Mysql连接池泄漏问题排查,问题表现如下:

    • Mysql数据库连接持续增加,直至达到最大连接数;
    • 业务系统部署在不同的服务器,且存在不同业务系统服务连接相同的Mysql;
    • 同一个服务器部署多个业务系统程序,不能根据主机直接确定存在问题的程序。

    Sever端排查主机连接数量

    在数据库查询各个客户端主机的连接数,找出有问题的主机。

    SELECT substring_index(HOST, ':', 1)  AS 主机名,
           state AS 状态,
           count(*) AS 连接数
    FROM information_schema. PROCESSLIST
     GROUP BY 状态,
             主机名;
    

    Client端排查连接

    首先,查询数据库端口连接情况

    • 在有问题的客户端主机,通过netstat命令查询3306端口,获取异常连接的PID。
    netstat -anp | grep 3306
    
    • 输出结果参照如下:


      image.png
    • 连接数统计命令
    # 统计3306端口总连接数
    netstat -anp | grep 3306 | wc -l
    
    # 统计java进程3306端口连接数
    netstat -anp | grep 3306 | grep java | wc -l
    
    # 统计某个进程(比如pid为1234)的3306端口连接数
    netstat -anp | grep 3306 | grep 1234 | wc -l
    

    根据PID查看进程信息

    • 使用ps命令查询进程信息,获得具体出现问题的客户端程序
    image.png

    最后,就是排查客户端程序的问题了。

    相关文章

      网友评论

        本文标题:Mysql连接泄漏排查

        本文链接:https://www.haomeiwen.com/subject/ootfmktx.html