gpt4 book ai didi

MySQL 客户端/服务器 : TCP response packet with ACK flag but without PSH

转载 作者:太空宇宙 更新时间:2023-11-04 11:18:23 26 4
gpt4 key购买 nike

我有这个 Linux 二进制应用程序,它与本地 MySQL 服务器建立了 2 个持久连接(使用 127.0.0.1 作为主机名)。

此类应用程序每 15 分钟必须执行 2000 次单行 insert(请不要质疑数据库设计),但实际情况是在某一时刻连接 B“挂起”了将近向 MySQL 发送第 n 个 insert 语句后 20 秒;使用 wireshark 查看 tcp 转储,事实证明,在这种情况下,MySQL 以简单的 ACK 数据包响应,没有任何 MySQL 协议(protocol)特定部分,但确实没有 PSH 标志,因此它不被识别为正确的 MySQL“响应 OK”消息.

谁能指出 MySQL 服务器使用不带 PSH 标志的简单 ACK TCP 数据包响应请求查询数据包的原因?

最佳答案

TCP ack 是在 TCP 级别,而不是应用程序(mysql 协议(protocol))级别。

TCP 堆栈确认您发送的数据。这意味着它已成功接收数据,并可能将数据传递给用户(在您的例子中是 mysql 服务器)。

因此 MySQL 服务器正忙于执行您的查询,并且在执行完查询(在您的情况下出于某种原因或另一个需要 20 秒)- 也许存在 I/O 争用,也许其他一些长时间运行的查询持有锁,或者由于您的查询而需要完成其他一些繁重的工作。

关于MySQL 客户端/服务器 : TCP response packet with ACK flag but without PSH,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19768653/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com