开发者社区> 问答> 正文

主库出现大量的未关闭句柄,对应linux命令 : lsof -p 28314|grep CLOSE_

你好,我的问题是这样的,我使用otter同步A库(主)和B库数据(从),主库最近一周每天都会出现 大量的未关闭句柄,第二天早上只能重启数据库A, 后来我把B库改为主数据库,A库为从数据库,这时候A库好了,没有出现未关闭句柄,但是B库很快就出现大量未关闭的句柄,请帮忙分析一下 :

mysqld 28314 mysql 2640u IPv6 18315102 0t0 TCP linux:mysql->10.17.82.17:58290 (CLOSE_WAIT) mysqld 28314 mysql 2642u IPv6 18315130 0t0 TCP linux:mysql->10.17.82.17:58293 (CLOSE_WAIT) mysqld 28314 mysql 2644u IPv6 18315137 0t0 TCP linux:mysql->10.17.82.17:58296 (CLOSE_WAIT) mysqld 28314 mysql 2646u IPv6 18315143 0t0 TCP linux:mysql->10.17.82.17:58299 (CLOSE_WAIT) mysqld 28314 mysql 2648u IPv6 18315149 0t0 TCP linux:mysql->10.17.82.17:58302 (CLOSE_WAIT) mysqld 28314 mysql 2650u IPv6 18315155 0t0 TCP linux:mysql->10.17.82.17:58305 (CLOSE_WAIT) mysqld 28314 mysql 2652u IPv6 18315542 0t0 TCP linux:mysql->10.17.82.12:35888 (CLOSE_WAIT) mysqld 28314 mysql 2654u IPv6 18315567 0t0 TCP linux:mysql->10.17.82.12:35891 (CLOSE_WAIT) mysqld 28314 mysql 2656u IPv6 18315570 0t0 TCP linux:mysql->10.17.82.12:35894 (CLOSE_WAIT) mysqld 28314 mysql 2658u IPv6 18315576 0t0 TCP linux:mysql->10.17.82.12:35897 (CLOSE_WAIT) mysqld 28314 mysql 2660u IPv6 18315580 0t0 TCP linux:mysql->10.17.82.12:35900 (CLOSE_WAIT) mysqld 28314 mysql 2662u IPv6 18315594 0t0 TCP linux:mysql->10.17.82.12:35903 (CLOSE_WAIT) mysqld 28314 mysql 2664u IPv6 18315597 0t0 TCP linux:mysql->10.17.82.12:35906 (CLOSE_WAIT)

原提问者GitHub用户 Bruce2jiang

展开
收起
大圣东游 2023-06-21 17:18:33 91 0
2 条回答
写回答
取消 提交回答
  • canal:https://github.com/alibaba/canal/issues/139 估计是这一个问题,请升级使用1.0.22 canal版本

    原回答者GitHub用户agapple

    2023-06-21 18:16:06
    赞同 展开评论 打赏
  • 你好,根据你提供的信息,这些 CLOSE_WAIT 状态的句柄可能是因为客户端没有正确关闭连接而导致的。这种情况下,操作系统会保留连接状态一段时间,以等待客户端关闭连接,这段时间称为 TIME_WAIT 状态。但是,如果客户端没有关闭连接,或者关闭连接时出现错误,连接就会一直保持在 CLOSE_WAIT 状态,直到操作系统关闭它为止。

    解决这个问题的方法有很多,以下是一些可能有用的建议:

    1.检查程序代码,确保正确关闭数据库连接。如果程序没有正确关闭连接,可以在代码中添加关闭连接的代码,以确保连接被正确关闭。

    2.检查数据库是否有性能问题,如 CPU 占用率过高、内存不足等。如果数据库性能不足,可能会导致连接无法正确关闭。可以通过增加内存、优化查询等方法来提高数据库性能。

    3.尝试增加操作系统的最大文件句柄数。如果操作系统的最大文件句柄数太低,可能会导致连接无法正确关闭。可以通过修改 /etc/security/limits.conf 文件来增加最大文件句柄数。

    4.尝试增加 TCP 连接超时时间。如果 TCP 连接超时时间太短,可能会导致连接无法正确关闭。可以通过修改 /etc/sysctl.conf 文件来增加 TCP 连接超时时间。

    5.检查网络是否存在问题。如果网络不稳定,可能会导致连接无法正确关闭。可以通过检查网络连接质量、增加带宽等方法来解决网络问题。

    2023-06-21 17:21:58
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Alibaba Cloud Linux 3 发布 立即下载
ECS系统指南之Linux系统诊断 立即下载
ECS运维指南 之 Linux系统诊断 立即下载