返回顶部
首页 > 资讯 > 服务器 >服务器中TIME_WAIT状态过多时的排查分析
  • 209
分享到

服务器中TIME_WAIT状态过多时的排查分析

2024-04-02 19:04:59 209人浏览 八月长安
摘要

目录一、概述(一)现象(二)相关知识二、问题推测(一)网络(二)应用三、排查(一)tcp连接上的IP1.下图是容器的IP2.下图是连接中本地的IP3.下图是连接本地api项目的主动I

一、概述

(一)现象

服务器有两个现象,第一是tcp连接数不多,不超过10个,但是time_wait状态的2000。第二个按照以往的性质,在很少用户访问的情况下,服务器的资源几乎没有使用,比如CPU,不超过5%。现在没有什么用户的的情况下,CPU损耗坚持在40%左右,夜间也不停歇。里面运行着好几个WEB项目,都用Docker启动的容器分开。

(二)相关知识

tcp连接有3次握手,断开有四次挥手。

三次握手中第一次,是主动端发出SYN信号给正在listen的被动端,然后自己变成了SYN-SENT状态;第二次是被动端发送ACK确认收到信号和SYN信号;第三次是主动端发出ACK信号确认已经收到了被动端的SYN。然后双双进入了enblished状态,便是已经连接成功。

四次挥手中的第一次就是主动端断开,发送FIN信号,变成FIN-WAIT-1状态;第二次是被动方收到FIN信号,就变成CLOSE-WAIT状态,然后赶紧发送ACK信号给主动方确认,这是时候主动方变为FIN-WAIT-2状态;第三次还是被动方等自己的应用断开连接的时候,发送FIN信号给主动方,被动方的状态变成LAST-ACK;第四次是主动方收到被动方的FIN信号,然后发送的ACK信号,瞬间自己变成TIME-WAIT状态,然后等待回收。

就是说,谁有TIME-WAIT,谁就是主动方。这点可以排除用户频繁关闭网页的可能。意思就是说这都是服务器主动请求断开连接的,而TIME-WAIT状态的链接也没有回收。

二、问题推测

(一)网络

网络上面的就是网络不好,或者被攻击。

(二)应用

中间件的参数不对,导致有中间件断开的连接,或者应用程序错误造成的主动断开连接。或者也是应用方面导致消耗资源太多。

三、排查

这个服务器有三个项目,每个项目的架构都是lanmp。问题复杂在于服务器里面好几个项目,每个项目用都一个反向代理。好的一点是后端是docker容器,分开的。

(一)TCP连接上的IP

1.下图是容器的IP

命令:

for i in $(docker ps|awk 'NR!=1 {print $NF}');do echo -e $i "\c";docker inspect --fORMat '{{ .networkSettings.IPAddress }}' $i;done

2.下图是连接中本地的IP

命令:

netstat -tn|grep TIME_WAIT|awk '{print $4}'|sort|uniq -c|sort -nr|head

排名第一这个是我们本地IP,6601是api项目的监听端口,从这里可以看出在所欲的TIME_WAIT状态的TCP里面,API项目的后端是被请求最多的那个。估计反向代理服务器也被请求了很多。

3.下图是连接本地API项目的主动IP

命令:

netstat -ant|grep 10.25.20.251:6601

途中可以看出,请求连接API后端的全部都是nginx的IP,这也很容易理解,nginx反向代理是入口嘛。下面就看看到底是谁对nginx发出请求。

4.下图是连接中外地的IP

命令:netstat -tn|awk '{print $5}'|sort|uniq -c|sort -nr|head

对API的请求是600,对nginx的请求是300,说明所有的TIME-WAIT,一部分是请求nginx的,一部分是nginx请求API的。

5.下图是展示到底是对请求了API的web前端nginx

命令:netstat -ant|grep 192.168.42.32:443

原来是192.168.42.1这个IP的请求。其实192.168.42.1这个IP是docker的虚拟网卡的IP,作为全部容器的网关,也就是说反正这就是这些容器发出的请求,但是不能确定是哪一个。

综上所述,可以排除网络问题,中间件apache的参数没有改,但是对web前端nginx的请求那么多,可以说明问题不是出现在apache的请求上面。那就往代码错误方面考虑。

(二)宿主机上的容器

1.应用和网络的关系

可能TIME-WAIT的问题就是后端程序乱发请求,apache是主项目的后端容器,apache-api就是api的后端程序。webserver占用的CPU上升,刚好就说明容器使用的系统资源就是由这种请求引起的。下面用tail看看api的access日志

实时监测,发现API一秒钟被请求12次左右,根据业务性质和docker的状态显示,可以断定是主项目的循环请求造成的系统资源内耗。而每次请求API项目就返回了access_token,API返回数据之后就发出断开信号,逻辑和现象很符合,也可以断定TIME_WAIT的状态也是这请求引起。而TIME_WAIT不是不回收,而是回收了,但不断的生成。

以上就是服务器中TIME_WAIT状态过多时的排查分析的详细内容,更多关于服务器TIME_WAIT状态过多排查的资料请关注编程网其它相关文章!

--结束END--

本文标题: 服务器中TIME_WAIT状态过多时的排查分析

本文链接: https://lsjlt.com/news/144789.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 服务器中TIME_WAIT状态过多时的排查分析
    目录一、概述(一)现象(二)相关知识二、问题推测(一)网络(二)应用三、排查(一)TCP连接上的IP1.下图是容器的IP2.下图是连接中本地的IP3.下图是连接本地API项目的主动I...
    99+
    2024-04-02
  • 服务器中TIME_WAIT状态过多时怎么排查
    这篇文章主要介绍了服务器中TIME_WAIT状态过多时怎么排查的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇服务器中TIME_WAIT状态过多时怎么排查文章都会有所收获,下面我们一起来看看吧。一、概述(一)现象...
    99+
    2023-06-29
  • 阿里云服务器端口状态信息的查看与分析
    在使用阿里云服务器的过程中,可能会遇到各种问题,如服务器端口状态异常等。了解阿里云服务器端口状态信息的查看方法和分析方法,可以有效地帮助我们解决这些问题。 一、阿里云服务器端口状态信息的查看方法阿里云服务器的端口状态信息可以通过阿里云的控制...
    99+
    2023-11-22
    阿里 端口 状态
  • MySQL查询事务状态字段的示例分析
    这篇文章主要介绍了MySQL查询事务状态字段的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、information_schema...
    99+
    2024-04-02
  • 服务器返回中常见HTTP状态码的示例分析
    这篇文章将为大家详细讲解有关服务器返回中常见HTTP状态码的示例分析,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。HTTP状态码状态码是由3位数字和原因短语组成的(比如最常见的:200 OK...
    99+
    2023-06-08
  • linux服务器CPU飙高排查分析
    目录前言一、第一步 top二、根据pid查找具体线程总结前言 系统cpu飙高,尤其对于后端人员来说,其实应该学会排查,这样也算是综合能力的体现;那么当出现了cpu严重飙高的时候怎么排...
    99+
    2023-01-13
    linux服务器CPU高 linux服务器CPU高排查 linux服务器CPU排查 linux服务器CPU
  • 云服务器发展现状调查分析
    在调查中,我们发现用户对云服务器的需求主要包括以下几个方面: 一、云计算服务安全性要求越来越高。随着互联网技术的不断发展,数据泄露、病毒入侵等安全问题成为了用户最为担忧的问题之一。因此,云服务器需要提供更加安全的计算环境,保证用户的数据和...
    99+
    2023-10-28
    现状调查 服务器
  • 如何查看MySQL服务器的状态?
    借助“mysqladmin”和“status”选项程序,我们可以检查 MySQL 服务器的状态。它可以在命令行上按如下方式使用 -C:\mysql\bin>mysqladmin -u root status Uptime: 3865 ...
    99+
    2023-10-22
  • linux如何查看nginx服务器的状态
    linux中查看nginx服务器状态的方法:1、打开linux终端;2、在终端命令行中输入“sudo systemctl status nginx”命令查看nginx服务器的状态即可。具体操作步骤:在linux系统桌面中使用快捷键【Ctrl...
    99+
    2024-04-02
  • 怎么通过其他主机查看Apahce服务器的运行状态
    小编给大家分享一下怎么通过其他主机查看Apahce服务器的运行状态,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!要查看Apache服务器的运行状态,可通过命令来实现。具体步骤如下:在Apache的主配置文件/etc/htt...
    99+
    2023-06-05
  • 服务器状态查询的方法是什么
    有多种方法可以查询服务器状态,以下是其中几种:1. 通过命令行工具查询:使用命令行工具(如ping、telnet、tracert等)...
    99+
    2023-06-10
    服务器状态 服务器
  • 如何分析网站开发中关键字排名处于瓶颈状态时的解决办法
    这篇文章将为大家详细讲解有关如何分析网站开发中关键字排名处于瓶颈状态时的解决办法,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。  首先先来分析下这些网站的共同特点。这些网站的拥有很多共同的特...
    99+
    2023-06-12
  • VUE中状态控制与延时加载刷新的示例分析
    这篇文章主要介绍VUE中状态控制与延时加载刷新的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!在实际项目中,我们经常会遇到这种状况,某些数据我们希望等到需要的时候再去获取,或...
    99+
    2024-04-02
  • 云服务器重启需要多长时间恢复正常状态
    云服务器重启通常会涉及服务器重启到一个新的可用状态,这个过程可能会持续数分钟,甚至数小时。具体重启时间取决于操作系统、软件更新、配置文件等多个因素,需要根据具体情况而定。 如果云服务器重启失败,可能需要重新启动计算机。这可能需要耗费几分钟...
    99+
    2023-10-27
    重启 恢复正常 状态
  • 分析和修复服务器内部错误:HTTP状态码500
    HTTP状态码500:分析服务器内部错误及其修复方案摘要:HTTP状态码500表示服务器内部错误,是客户端向服务器发送请求时,服务器遇到了无法处理的错误而无法完成请求。本文将分析导致服务器内部错误的可能原因,并提出相应的修复方案。一、引言H...
    99+
    2023-12-26
    服务器 错误 修复 状态码
  • 小程序中用户登录状态检查与更新的示例分析
    这篇文章主要介绍小程序中用户登录状态检查与更新的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!将这个部分单独作为一篇文章有两个原因:① wx.getUserInfo...
    99+
    2024-04-02
  • Linux 查看远程服务器文件状态的方法
    如下所示: test 命令判断文件是否存在: ssh usrname@remotehost "test -e remote_file_path" stat 命令获取文件最后一次修改的时间戳: ssh usrna...
    99+
    2022-06-04
    Linux 远程 服务器 文件状态
  • 详解Nginx 被动检查服务器的存活状态
    介绍 通过发送定期健康检查来监控上游组中 HTTP 服务器的健康状况。Nginx 可以持续测试您的上游服务器,避免出现故障的服务器,并将恢复的服务器优雅地添加到负载均衡组中。 被动...
    99+
    2024-04-02
  • 网站服务器状态查询的方法是什么
    网站服务器状态可以通过以下方法进行查询:1. Ping命令:使用ping命令可以测试服务器是否能够响应。在命令提示符下输入ping加...
    99+
    2023-06-06
    服务器状态查询 服务器
  • 阿里云如何查看自己的服务器状态
    随着云计算技术的不断发展,越来越多的企业和个人开始使用阿里云来托管自己的服务器和应用程序。然而,由于服务器状态的复杂性,用户可能需要了解如何查看自己的服务器状态。本篇文章将详细介绍如何在阿里云上查看自己的服务器状态。 阿里云:如何查看自己的...
    99+
    2023-11-16
    自己的 阿里 状态
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作