mysql writing to net_MySQL5.6 大量SQL语句处于Writing to net状态的案例分析

【问题现象】开发同事反馈有应用在21:00-22:00之间出现大量超时报错。【问题分析】1、 从DB服务器慢查询指标来看,18:00后有大量的慢查询,累计产生了约9000条慢查询2、 测试直接执行慢查询SQL语句,并没有发现性能问题3、当时DBA同事在排障现场看到了线程执行时等待Writing to net。之前我们碰到过大量Writing to net等待的情况,通常是DB服务器网卡流量打满导致...
摘要由CSDN通过智能技术生成

【问题现象】

开发同事反馈有应用在21:00-22:00之间出现大量超时报错。

【问题分析】

1、 从DB服务器慢查询指标来看,18:00后有大量的慢查询,累计产生了约9000条慢查询

2、 测试直接执行慢查询SQL语句,并没有发现性能问题

3、当时DBA同事在排障现场看到了线程执行时等待Writing to net。

之前我们碰到过大量Writing to net等待的情况,通常是DB服务器网卡流量打满导致。但这次从DB服务器网卡流量上看,并没有打满,而且比较平稳。

从QPS和threads_running指标来看,并发不是很高,相对平稳。

4、 Writing to net状态究竟代表了什么

Writing to net

The server is writing a packet to the network.

这里先简单描述下SQL语句查询的流程:

<1>扫描一行,写到net_buffer,这里net buffer 是按照net_buffer_length 初始化, 但可以动态增长到max_allowed_packet配置值

<2>继续获取满足条件的行,直到写满net_buffer,然后调用网络接口发送出去

<3>客户端接收网络包完成,清空net_buffer

<4>重复上面1到3的步骤

<5>如果发送未完成,表示socket send buffer写满,这时会进入等待状态,显示Writing to net,直到socket send buffer重新可写,再继续发送

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值