你好,我的问题是这样的,我使用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
canal:https://github.com/alibaba/canal/issues/139 估计是这一个问题,请升级使用1.0.22 canal版本
原回答者GitHub用户agapple
你好,根据你提供的信息,这些 CLOSE_WAIT 状态的句柄可能是因为客户端没有正确关闭连接而导致的。这种情况下,操作系统会保留连接状态一段时间,以等待客户端关闭连接,这段时间称为 TIME_WAIT 状态。但是,如果客户端没有关闭连接,或者关闭连接时出现错误,连接就会一直保持在 CLOSE_WAIT 状态,直到操作系统关闭它为止。
解决这个问题的方法有很多,以下是一些可能有用的建议:
1.检查程序代码,确保正确关闭数据库连接。如果程序没有正确关闭连接,可以在代码中添加关闭连接的代码,以确保连接被正确关闭。
2.检查数据库是否有性能问题,如 CPU 占用率过高、内存不足等。如果数据库性能不足,可能会导致连接无法正确关闭。可以通过增加内存、优化查询等方法来提高数据库性能。
3.尝试增加操作系统的最大文件句柄数。如果操作系统的最大文件句柄数太低,可能会导致连接无法正确关闭。可以通过修改 /etc/security/limits.conf 文件来增加最大文件句柄数。
4.尝试增加 TCP 连接超时时间。如果 TCP 连接超时时间太短,可能会导致连接无法正确关闭。可以通过修改 /etc/sysctl.conf 文件来增加 TCP 连接超时时间。
5.检查网络是否存在问题。如果网络不稳定,可能会导致连接无法正确关闭。可以通过检查网络连接质量、增加带宽等方法来解决网络问题。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。