美文网首页
MySQL系列~Proxysql最佳实践三

MySQL系列~Proxysql最佳实践三

作者: 开心的蛋黄派 | 来源:发表于2023-12-28 15:54 被阅读0次

    监控模块内部线程概述:

    目前监控模块共有5个主线程,每个线程在监控模块中担任不同的职责。以下是线程的概述:

    Monitor线程:作为主线程,负责启动和协调其他线程的工作。它是监控模块的核心,确保所有线程能够协同工作。

    monitor_connect_thread线程:负责连接检查和调度程序。它监控数据库连接的健康状况,并确保与数据库的稳定连接。

    monitor_ping_thread线程:主要负责ping检查和调度程序。通过定期发送ping命令来检测后端服务的可用性,以及网络连接的稳定性。

    monitor_read_only_thread线程:专注于只读检查和调度程序。它确保数据库处于只读模式,并监控只读操作的执行情况。

    monitor_replication_lag_thread线程:负责复制延迟检查和调度程序。它监控数据库复制的延迟情况,确保数据同步的及时性。

    问题及分析:

    问题:Received an unknown command -31, please report a bug.

    分析:此问题表明proxysql收到了一个不支持的指令。这种问题比较罕见,目前仅在一个python利用oracle官方连接池回收链接时发生过,发出的指令是COM_RESET_CONNECTION,该指令不被proxysql支持。

    问题:Unexpected COM_QUIT from client.

    分析:这通常意味着客户端发送了一个终止连接的命令给MySQL服务器。根据MYSQL级别的分析,这类似于COM_RESET_CONNECTION的指令,意指服务端中止连接的指令。

    问题:唯一键冲突和未知列。

    分析:proxysql.log可以视为mysqlcli的日志,大部分通过proxysql出现的问题都会记录在日志中。例如,第一个“p”表示插入主键冲突,第二个则是访问了不存在的列。

    问题:monitor_ping_thread()和monitor_read_only_thread()出现timeout during ping错误。

    分析:这通常由后端检测服务挂掉或跨云跨机房网络不稳定造成。可以查看monitor.mysql_server_ping_log中的具体延时进行进一步分析。

    问题:proxysql内存占用缓慢升高,一个月内增长了一倍。

    分析:目前没有很好的解决方案,多个集群中仅出现单个集群的proxysql内存增长,只能通过轮流重启proxysql实例来释放内存。可以使用查询语句select Variable_Name,Variable_Value/1024/1024 as Mem_usage_in_MB from stats_memory_metrics;来查看内存使用情况。

    问题:proxysql用户报错,提示“User 'aa_rw' has exceeded the 'max_user_connections' resource”。

    分析:解决此问题的方法是增大mysql_servers表的max_user_connections值。在proxysql+mysql架构中,可以通过proxysql端来指定用户的访问并发数

    相关文章

      网友评论

          本文标题:MySQL系列~Proxysql最佳实践三

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