首页 > 其他分享 >服务器产生大量的close_wait状态为例

服务器产生大量的close_wait状态为例

时间:2023-03-03 18:00:10浏览次数:28  
标签:为例 关闭 服务器 close 客户端 连接 wait

1.close_wait状态介绍

客户端主动关闭连接,服务器接收到客户端的FIN,但是还没有发送自己的FIN,此时的状态为close_wait状态,大量的close_wait状态拖累服务器性能

2.close_wait产生的原因

某种情况下客户端关闭了连接,但是我方忙于读写,没有关闭连接

3.解决方法

思想:检查出客户端已经关闭的连接,关闭他

之所以会出现这种问题,肯定是服务器端的连接释放的代码存在问题

1.当服务器读写失败时,可以选择关闭连接

2.定期向连接发送询问数据,检查收到的回复数据包(Heart-Beat线程发送指定格式的心跳数据包)

3.修改keep-live参数(超时时间,tcp检查间隔时间:keeplive探测包发送的间隔,tcp检查次数:如果对方不予应答,探测包发送的次数)

 

ps:服务器出现大量的close_wait状态,这个锅肯定是服务器端的coder背!

标签:为例,关闭,服务器,close,客户端,连接,wait
From: https://www.cnblogs.com/guxuanqing/p/17176551.html

相关文章

  • 浅析sleep()方法与wait()方法
    为什么wait()方法不定义在Thread中?  wait()是让获得对象锁的线程实现等待,会自动释放当前线程占有的对象锁。每个对象(Object)都拥有对象锁,既然要释放当前线程占有的......
  • Android&gradle配置(以小米便签为例)
    写在最前以下所涉及到的某些部分需要翻越中国长城防火墙,请确保你有此能力,本文作者不提供相关技术支持。且本文所有涉及境外网站的图片均来自网络,本人只负责讲解。Android......
  • sonar代码扫描bug:Use try-with-resources or close this "FileInputStream" in a "fi
      下面代码/***读取文件到byte数组**@paramtradeFile*@return*/publicstaticbyte[]file2byte(FiletradeFile){try{FileInputSt......
  • jmeter跨线程组调用变量-以token为例
    跨线程组调用变量的解决方法:在beanshell取样器中使用setProperty函数设置全局变量,其他线程组用P函数调用全局变量 跨线程组调用变量的步骤:以token为例跨线程组调用有两......
  • Waiting for Hack
    无向图最小环(边权为1)现在给一张\(n\)个点\(m\)条边的无向图,求图中最小环的长度。很久以前就想过类似的问题,但是一直犯懒没打。无复杂度保证,只是本彩笔卡不掉而已只......
  • Redis Cluster部署一直卡在Waiting for the cluster to join ......
    1、问题现象 线上部署一个40分片的RedisCluster集群,初始化的时候日志输出一直是Waitingfortheclustertojoin......(大集群初始化的时候会出现时间长)2、问题分析......
  • 研究c#异步操作async await状态机的总结
    研究c#异步操作asyncawait状态机的总结 前言#    前一段时间得闲的时候优化了一下我之前的轮子[DotNetCoreRpc]小框架,其中主要的优化点主要是关于RPC异步契约调......
  • 第二节:代码片段的制作(以VSCode、HbuilderX为例)
    一. VSCode片段       二.HbuilderX片段       三.其它        !作       者:Yaopengfei(姚鹏飞)博......
  • top的wa,mpstat的%iowait以及pidstat的%wait
    top的wa,mpstat的%iowait以及pidstat的%wait pidstat中,%wait表示进程等待CPU的时间百分比。等待CPU的进程已经在CPU的就绪队列中,处于运行状态。可能是cpu很忙导......
  • 我终于搞懂了async/await、promise和setTimeout的执行顺序
    从一道题目出发今天看到一道面试题,是关于async/await、promise和setTimeout的执行顺序,题目如下:asyncfunctionasync1(){console.log('async1start');awaitasync2(......