zoukankan      html  css  js  c++  java
  • 网络连接

    网络连接状态:

    C:                              S:

    SYN_SEND
                SYN_RECV
    ESTABLISH
                ESTABLISH

    FIN_WAIT1
                CLOSE_WAIT
    FIN_WAIT2
                LAST_ACK
    TIME_WAIT 
                CLOSED

    http交互和上面的图形其实并不一样,TIME_WAIT 经常是服务端主动关闭的。
    TIME_WAITK可以通过调整内核参数解决。


    一直保持在CLOSE_WAIT状态,其实只有一种情况,就是在对方关闭连接之后服务器程序自己没有进一步发出ack信号。
    大量CLOSE_WAIT的解决办法总结为一句话那就是:查代码。

    查看网络连接:

    netstat -an| awk '/^tcp/ {++S[$NF]} END {for(i in S) print i ,S[i]}'

    案例一次线上服务器收到zabbix报警: 

    web01服务器cpu空闲值小于70%(该机器跑了多个tomcat)

    登录机器排查:

    首先是要top命令查看了一下,发现有个java进程占用了90%的cpu(这台服务器有多核cpu的)。

    找到进程pid通过top -H -p 命令查看了线程情况,发现该进程的所有线程占用cpu多高。

    如是通过ps命令找到该服务是一个运行后台的boss服务。

    打开运营后台发现几乎处于卡死状态。

    如是用了netstat 命令查看了网络连接状态,结果发现大量的CLOSE_WAIT状态。

    如是判断是开发的代码有问题,果然排除了代码后发现了问题,修改了代码,重启tomcat。

    用netstat再次查看发现大量的LAST_ACK 最后全部关闭,最终恢复正常。



  • 相关阅读:
    加密
    读取excel
    poj 1852 Ants
    关于运行时间
    poj 1001 Exponentiation
    Poj 3669 Meteor Shower
    一道简单题目的优化过程——抽签问题
    高精度四则运算
    Usaco_Contest_2013_Open_Bovine Problem 1. Bovine Ballet
    h5 音频 视频全屏设置
  • 原文地址:https://www.cnblogs.com/fanxuanhui-linux/p/5870171.html
Copyright © 2011-2022 走看看