MySQL频繁超时原因调查

1.排查原因

1.1.查询中大量数据被发送,由于数据传输时间不够导致

增加net_read_timeout的值。

修改 MySQL 的配置文件(通常是 my.cnf 或 my.ini 文件)。

在配置文件中,找到 [mysqld] 部分,并添加或修改以下行:

复制代码

iniCopy Code [mysqld]net_read_timeout = 60 #这里是60 我们修改成了600

保存文件后,重新启动 MySQL 服务

超时问题没有改善

1.2.初次连接时,连接时间设定太少

可以增加connect_timeout的值改善。

永久改变 connect_timeout 的值,使其在 MySQL 重启后仍然生效,需要修改 MySQL 的配置文件(通常是 my.cnf 或 my.ini 文件)。

在配置文件中,找到 [mysqld] 部分,并添加或修改以下行:

复制代码

iniCopy Code [mysqld]connect_timeout = 20 # 这里是20 我们设置成120

保存文件后,重新启动 MySQL 服务

超时问题没有改善

1.3.、BLOB值太大的问题

调整配置文件max_allowed_packet。

就更新大量的数据来说,可以进行两个方面的设置:将系统变量net_read_timeout设置得大一点,再将配置文件中的max_allowed_packet设置大一点。

max_allowed_packet 是 MySQL 服务器允许的最大数据包大小。默认情况下,这个值为 4MB。如果你的更新操作涉及到更大的数据量,例如大型 BLOB 数据的插入或更新,你可能需要增加这个参数的设置。

在 MySQL 的配置文件(如 my.cnf 或 my.ini)中,设置 max_allowed_packet:

复制代码

[mysqld] max_allowed_packet = 100M # 设置 max_allowed_packet 为 100MB

超时问题没有改善

1.4.、排查网络带宽问题

  1. 数据传输速度 :如果数据库服务器和客户端之间的网络带宽有限,大数据的传输速度可能会变慢。这可能导致客户端在尝试读取或写入大量数据时超过了 net_read_timeout 或 net_write_timeout 的设置,从而导致连接超时。

  2. 响应时间:网络带宽限制可能导致数据包的延迟增加,尤其是在数据量大或者连接数多的情况下。这可能使得客户端请求的响应时间变长,进而可能触发超时设置

解决方案: 增加网络带宽从原有的50MB,增加到100M

超时问题没有改善

1.5.索引,连接池问题

询问金磊 数据库创建的时候有设置索引和连接池

排查应该不是索引,连接池造成的影响

超时问题没有改善

1.6.交互与非交互超时时间过短导致

  1. wait_timeout:

    1. 作用:控制非交互式连接的超时时间。这类连接通常是由应用程序或脚本通过连接池管理的,比如 Web 应用与数据库之间的连接。

    2. 影响 :如果一个连接在设定的 wait_timeout 秒内没有任何活动(例如查询、更新等),MySQL 会自动关闭这个连接。这可以避免长时间空闲的连接占用数据库资源。

  2. interactive_timeout:

    1. 作用:控制交互式连接的超时时间。这类连接通常是用户直接通过命令行或 GUI 工具与数据库交互的连接。

    2. 影响 :与 wait_timeout 类似,但 interactive_timeout 更适用于用户交互时的连接。如果一个用户连接在设定的 interactive_timeout 秒内没有任何活动,MySQL 会自动关闭这个连接。

在 MySQL 的配置文件(如 my.cnf 或 my.ini)中,设置 wait_timeout,interactive_timeout:

复制代码

[mysqld] wait_timeout = 31536000 interactive_timeout = 31536000

超时问题没有改善

1.7.底层设备有个会话3600s老化的机制

底层设备有个会话3600s老化的机制,两端没有交互的话会话是会断开的,所以需要配置keepalived或者改成无状态安全组

相关推荐
脚踏实地,坚持不懈!1 分钟前
Android 电池健康度检测全流程(驱动 → 内核 → HAL → Framework)
android·linux
IT技术分享社区4 分钟前
在 Windows 上跑未改动的 Linux 程序:微软 LiteBox v0.1 把这件事变简单了
linux·运维·windows·microsoft·开源
全栈道5 分钟前
AI 时代,软件开发应该如何学习
人工智能·学习
Saniffer_SH6 分钟前
【高清视频】一块 SSD,两条 PCIe 链路:Dual-Port NVMe SSD测试环境怎么搭?(一)
服务器·ssd测试·dual-port ssd·企业级ssd测试·dualport·ssd测试环境·dualport ssd测试
一只旭宝15 分钟前
【网络精讲1】TCP 三次握手:为什么是三次,第三次丢了怎么办
服务器·网络·tcp/ip
java资料站15 分钟前
四、Spring AIAlibaba · Tools(工具调用)
数据库·sql·spring
存在morning20 分钟前
【OLAP 学习笔记】Doris:数据湖之上的分析查询引擎
笔记·学习
代码山河21 分钟前
Java语言特点:跨平台、面向对象、安全性详解
java·学习·架构·教程·面向对象·项目
龙腾-虎跃24 分钟前
Docker 一键启动服务合集:Redis、MySQL、Kafka、MinIO、Prometheus 等(网盘转存防失效)
redis·mysql·docker·kafka·prometheus·小龙虾·miniio
步行cgn27 分钟前
Spring 事务传播行为详解
java·数据库·spring