MySQL频繁超时原因调查

1.排查原因

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

增加net_read_timeout的值。

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

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

复制代码

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

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

超时问题没有改善

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

可以增加connect_timeout的值改善。

永久改变 connect_timeout 的值,使其在 MySQL 重启后仍然生效,需要修改 MySQL 的配置文件(通常是 my.cnfmy.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.cnfmy.ini)中,设置 max_allowed_packet

复制代码

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

超时问题没有改善

1.4.、排查网络带宽问题

  1. 数据传输速度 :如果数据库服务器和客户端之间的网络带宽有限,大数据的传输速度可能会变慢。这可能导致客户端在尝试读取或写入大量数据时超过了 net_read_timeoutnet_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.cnfmy.ini)中,设置 wait_timeout,interactive_timeout:

复制代码

[mysqld] wait_timeout = 31536000 interactive_timeout = 31536000

超时问题没有改善

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

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

相关推荐
奋斗的蛋黄14 小时前
网络卡顿运维排查方案:从客户端到服务器的全链路处理
运维·服务器·网络
容器( ु⁎ᴗ_ᴗ⁎)ु.。oO14 小时前
Magentic-ui 学习
学习
_李小白14 小时前
【OPENGL ES 3.0 学习笔记】延伸阅读:VAO与VBO
笔记·学习·elasticsearch
编程爱好者熊浪14 小时前
两次连接池泄露的BUG
java·数据库
wanhengidc15 小时前
云手机搬砖 尤弥尔传奇自动化操作
运维·服务器·arm开发·安全·智能手机·自动化
图图图图爱睡觉15 小时前
主机跟虚拟机ip一直Ping不通,并且虚拟机使用ifconfig命令时,ens33没有ipv4地址,只有ipv6地址
服务器·网络·tcp/ip
deephub15 小时前
FastMCP 入门:用 Python 快速搭建 MCP 服务器接入 LLM
服务器·人工智能·python·大语言模型·mcp
南宫乘风15 小时前
基于 Flask + APScheduler + MySQL 的自动报表系统设计
python·mysql·flask
微露清风15 小时前
系统性学习C++-第九讲-list类
c++·学习·list
lhxcc_fly15 小时前
Linux网络--8、NAT,代理,网络穿透
linux·服务器·网络·nat