gpt4 book ai didi

solaris - UNIX 域套接字上出现 ECONNREFUSED 的原因是什么?

转载 作者:行者123 更新时间:2023-12-02 09:31:17 24 4
gpt4 key购买 nike

在 TCP 服务器中,我知道连接被拒绝可能是因为

  1. 进程通过在服务器套接字上调用 close 来停止监听(现有连接保持打开状态,新连接被拒绝),或者
  2. 流程结束,或者
  3. 该进程接受连接的频率不够高,因此积压已满/积压太小。

尝试连接到 UNIX 域套接字时出现 ECONNREFUSED 的可能原因是什么。

这个问题是为了帮助我缩小范围a MySQL connection mystery on a Solaris 10 configuration .

最佳答案

连接被拒绝并不意味着服务器关闭了套接字(在连接到它之后),它意味着没有服务器在监听该套接字。因此,首先,您的服务器崩溃,然后,客户端连接被拒绝。 (除非积压已满,如果您传递给listen()的积压大小太小,或者您的服务器接受()连接的速度不够快,但我在现实生活中从未见过这种情况)。 p>

通常情况下,我会把它归咎于某些防火墙,但是,因为在你的另一篇文章中,你说它只是间歇性地发生,我猜发生的情况是:你的 mysql 服务器崩溃,safe_mysqld 重新启动它,这需要几秒钟,在启动阶段,您会收到连接被拒绝的错误,因为那里没有服务器可以监听您的声音。尝试设置一个每分钟执行一次“ps -ef | grep mysqld”的 cron 作业,检查进程 ID 是否不时更改,并尝试将这些更改与连接拒绝错误消息相匹配。

如果 mysqld 没有重新启动,即进程 ID 保持不变,请尝试“truss -v Listen,accept -p ”之类的操作。每次客户端连接时,这都会给你一些输出 - 也许你可以将“桁架中发生的很多事情”与“我现在连接被拒绝”相匹配。但是,不要在负载很重的生产系统上执行此操作,否则 truss 会 a) 让您淹没在输出中 b) 显着降低服务器速度。

关于solaris - UNIX 域套接字上出现 ECONNREFUSED 的原因是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20428483/

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