zoukankan      html  css  js  c++  java
  • HPUX中CLOSE_WAIT问题解决

    作者一直被某个项目的HP-UX折磨,系统运行一段时间后就会出现大量的CLOSE_WAIT连接,然后Apusic应用服务器就一直处于非常繁忙的状态,但是Dump JVM发现Apusic的许多线程处在空闲状态,此时将Apusic重新启动将连接全部释放系统就恢复正常了。
    分析认为因为系统在公网上受到攻击有关,攻击会建立大量的空闲连接,然后使连接处于CLOSE_WAIT状态,从而系统需要消耗大量的资源去维护这些连接直到断开,从而影响系统运行的效果。
    为此,作者调整了相关的网络参数,效果比较明显,CPU压力大幅下降。
    ndd -set /dev/tcp tcp_keepalive_interval 120000

    但是,对于生产系统许多时候是不希望宕机的,有没有直接断开CLOSE_WAIT连接呢?可以,先用
    ndd -get /dev/tcp tcp_status |grep CLOSE_WAIT
    把已经CLOSE_WAIT的连接找出来,然后使用
    ndd -set /dev/tcp tcp_discon 0x<TCP地址>
    例如:输入 ndd -get /dev/tcp tcp_status |grep 133
    结果
    000000005843e168 010.010.010.133                         48a68cfa 48a68cf8 00008000 00008072 b64b7c33 b64b7c33 00008000 00500 01460 [17,c539] TCP_ESTABLISHED
    再输入 ndd -set /dev/tcp tcp_discon 0x000000005843e168
    连接就会被主动断开了。
    如果有人可以写个脚本定期执行,至少能够解决临时性问题,如果要真正解决可能还需要想其他办法,欢迎大家一起来讨论。

  • 相关阅读:
    C# 动态创建SQL数据库(一)
    在Winform中菜单动态添加“最近使用文件”
    转(C# 类似右键菜单弹出窗体)
    为什么不能用Abort退出线程
    C# GDI绘制波形图
    转(C# 实现生产者消费者队列)
    为字段设置初始值
    闲话资源管理
    正确使用 new 修饰符
    减少装箱与拆箱
  • 原文地址:https://www.cnblogs.com/zhuyx/p/10401968.html
Copyright © 2011-2022 走看看