首页 > 其他分享 >021xxljob大量close_wait

021xxljob大量close_wait

时间:2023-08-23 15:57:18浏览次数:42  
标签:CLOSE E6% 关闭 021xxljob close wait 连接 服务端 WAIT

一、

二、服务大量CLOSE_WAIT是如何造成的?如何解决?

(1)

CLOSE_WAIT是TCP连接的一种状态,表示收到对方发来的FIN包,己方还没有发FIN包。这通常是正常的TCP连接关闭过程中的中间状态。但是如果CLOSE_WAIT状态的连接过多,可能表示有错误或异常导致大量连接无法正常关闭。

造成大量CLOSE_WAIT的原因可能有:

  1. 客户端异常退出或崩溃,没有正常关闭连接,服务端还在等待客户端的FIN包。
  2. 服务端处理缓慢或线程资源耗尽,来不及发送FIN包确认关闭连接。
  3. 网络问题导致FIN/ACK丢包,连接无法正常关闭。
  4. keepalivetimeout 配置过长,长时间没有数据传输的连接不会自动关闭。
  5. 服务端资源限制太低,不能承载更多连接,但客户端仍在建立新连接。
  6. 服务端BUG,在某些情况下没有正确关闭连接。

解决方法:

  1. 检查客户端,确保其正常关闭连接,不要留下大量半开连接。
  2. 优化服务端线程模型,加快响应速度,避免线程阻塞。
  3. 检查网络质量,修复丢包问题。
  4. 适当减小keepalive 超时时间,让长时间空闲的连接自动关闭。
  5. 根据负载调整服务端资源限制和连接上限,不要让新连接积压。
  6. 检查服务端代码,找到没有关闭连接的地方,确保连接正确关闭。
  7. 可以通过设置net.ipv4.tcp_max_tw_buckets限制系统总的CLOSE_WAIT数量。
  8. 定期检查TIME_WAIT和CLOSE_WAIT状态连接,监控系统状况。

(2)Reference: https://www.xiaolincoding.com/network/3_tcp/tcp_interview.html#tcp-%E5%9B%9B%E6%AC%A1%E6%8C%A5%E6%89%8B%E8%BF%87%E7%A8%8B%E6%98%AF%E6%80%8E%E6%A0%B7%E7%9A%84

 

 

 

标签:CLOSE,E6%,关闭,021xxljob,close,wait,连接,服务端,WAIT
From: https://www.cnblogs.com/itcomputer/p/17651863.html

相关文章

  • 【未解决】就是await 无法真正阻塞成功的问题
    1、我这样await的话,会没有等到queryEnv执行完,就直接返回了responseexportletload=asyncfunction(data){letresponse=awaitqueryEnv(url,uidJson).data; returnresponse;}asyncfunctionqueryEnv(url,uid){ varresponse=await$.ajax({ type:......
  • a start job is running for udev wait for complete device initialization
    astartjobisrunningforudevwaitforcompletedeviceinitializationreference:https://github.com/AdnanHodzic/displaylink-debian/issues/331diff/etc/init.d/systemd-udevd+systemctlmasksystemd-udev-settleudevadmtrigger--action=addudevadmsett......
  • async/await
    async/await是同步语法,能以不使用回调函数的方式来实现异步。await被async包裹,await后面可以追加Promise对象,也可以追加async函数。执行async函数,返回的是一个Promise对象。如果直接返回一个值,那么会把这个值封装成一个Promise对象。await相当于Promise的then。 优点:1.方便......
  • chrony-wait测试
    20关机,21开机,chrony-wait设置开机启动,RemainAfterExit值为no测试准备开机时钟源机器20,一段时间后客户端出现报错信息客户端,时间没有同步。重启chrony-wait服务现在才同步正常,说明chrony-wait运行之后才会是这个样子......
  • python+playwright 学习-73 page.wait_for_selector()
    前言网页上的元素有不同状态,有些元素本来不在DOM里,点击某个按钮后才出现。有些元素是本来就已经在DOM里是隐藏的状态,点某个按钮后才变成显示状态。如果我们想让元素到达指定的状态再下一步操作,可以用page.wait_for_selector()方法。page.wait_for_selector()方法wait_for_s......
  • 无涯教程-Perl - waitpid函数
    描述该函数等待ID为PID的子进程终止,返回已故进程的进程ID。如果PID不存在,则返回-1。进程的退出状态包含在$?中。可以将标志设置为各种值,这些值等于waitpid()UNIX系统调用使用的值。FLAGS的值为0应该在支持进程的所有操作系统上工作。语法以下是此函数的简单语法-waitpi......
  • 无涯教程-Perl - wait函数
    描述该函数等待子进程终止,返回已故进程的进程ID。进程的退出状态包含在$?中。语法以下是此函数的简单语法-wait返回值如果没有子进程,则此函数返回-1,否则将显示已故进程的进程ID参考链接https://www.learnfk.com/perl/perl-wait.html......
  • await this.$nextTick()和this.$nextTick(callback)有什么区别?记一次bug调试
    背景需要实现一个需求,一个小区业务详情页面,在左侧菜单栏切换了小区后,详情页跟着切换。这个详情页面是根据url上的/:id来确定小区id的,所以切换了小区后,应该切换路由。于是这样实现:watch:{//监听小区号变化neighNo(newVal){if(newVal){//切换路......
  • 关于 SAP ABAP Enqueue Function Module 的输入参数 _wait
    我们查看ABAP系统根据LockObject自动生成的EnqueueFunctionModule,可以发现它有一个名叫_wait的输入参数,默认值为space:该参数决定了发生锁冲突时的锁行为。开发人员有以下选择:初始值:如果由于存在竞争锁而导致锁定尝试失败,则会触发异常FOREIGN_LOCK。X:如果由......
  • SDL 线程创建(SDL_LockMutex / SDL_UnlockMutex、SDL_CondWait / SDL_CondSignal)
     SDL_mutex*s_lock=NULL;SDL_cond*s_cond=NULL;intthread_work(void*arg){ SDL_LockMutex(s_lock); printf("[thread_work]in.\n"); Sleep(5000); printf("[thread_work]好了,知道了,我刚刚去玩了5秒,我直接SDL_CondWait把锁给你我自己睡觉去了。你拿到锁......