Linux- 系统随你玩之--微服务应用出现极少概率会时断时续,它抽风了吗?

这篇具有很好参考价值的文章主要介绍了Linux- 系统随你玩之--微服务应用出现极少概率会时断时续,它抽风了吗?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

应用端口时断时续,linux新,linux,微服务,网络

1、背景

时下各种分布式架构服务应用大行其道,微服务部署成为大多数WEB服务的标配。
所谓的分布式架构就是把服务做拆分,在我们的传统单体架构中,我们把所有的服务都写在一起,随着业务的扩大我们的代码耦合度会变得越来越高,后期维护起来也很不方便。微服务就是把模块拆分,把我们整个项目拆解分成许多独立的子项目,每个子项目之间独立开发和部署,子项目也有自己独立的功能,这些独立的子项目就形成了微服务,不同的子项目就进而形成一个服务集群。
一次工作中遇到有人反馈说我们线上的某应用出现服务不稳定的情况,绝大部分时候都正常,只有
极少数情况下会出现连接时断时续的情况。

2、问题及解决方法

2.1、问题排查

后面经过服务监控与日志分析发现了其中一台节点存在问题。检查发现是该节点网络存在断开或掉包的情况。经过一系列各种排查发现问题在于网线。表面看网线、水晶头做的很好,没问题。
问题其实是网卡的传输速度和双工模式,双工模式不表,主要是速率,我们强制关闭掉网卡的AUTO自动侦测速度,给网卡强制降速在一个固定速度运行。

2.2、可能有人就会问为什么要关闭AUTO固定速度降速运行呢

事实上,是我们发现网线的质量不是很高,没有屏蔽层,铜线较细,铜线线材可能含有杂质,造成信号传递时抗干扰能力弱,而且信号质量较差,而这种情况下出现的网络卡慢、及频繁断开问题,并非是网络完全不通,而是网络在传输过程中频繁的自动切换速率,如果千兆降为百兆的速度运行吧,信号质量又不够,速度极慢还容易断开,然后又自动降速,造成了在使用中的各种频繁断开,或者极为缓慢的情况。

2.3、解决方法

我们的网线较长有20多米,还是那种没有屏蔽层 传递时抗干扰能力就很弱容易出现异常。虽然我们临时改为强制降速固定速度运行,但最好尽快换成带有屏蔽层的.优质线材保证信号质量!
 排查过程中我们使用到了今天的主角也是针对网络和系统管理员的必备利器,它就是netstat

3、netstat介绍

netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Memberships) 等等。
一般用于检验本机各端口的网络连接情况。netstat是在内核中访问网络及相关信息的程序,它能提供TCP连接,TCP和UDP监听,进程内存管理的相关报告。

3.1、 常用功能选项

netstat命令的一般格式:

netstat [1][-a][-e][-n][-o][-p Protocol][-r][-s][Interval]

netstat [参数选项]

-a或–all:显示所有连线中的Socket,默认不显示LISTEN相关;
-A<网络类型>或–<网络类型>:列出该网络类型连线中的相关地址;
-c或–continuous:每隔一个固定时间,执行该netstat命令。
-C或–cache:显示路由器配置的快取信息;
-e或–extend:显示网络其他相关信息;
-F或–fib:显示FIB;
-g或–groups:显示多重广播功能群组组员名单;
-h或–help:在线帮助;
-i或–interfaces:显示网络界面信息表单;
-l或–listening:显示监控中的服务器的Socket;
-M或–masquerade:显示伪装的网络连线;
-n或–numeric:直接使用ip地址,而不通过域名服务器;
-N或–netlink或–symbolic:显示网络硬件外围设备的符号连接名称;
-o或–timers:显示计时器;
-p或–programs:显示正在使用Socket的程序识别码和程序名称;
-r或–route:显示Routing Table;
-s或–statistice:显示网络工作信息统计表;
-t或–tcp:显示TCP传输协议的连线状况;
-u或–udp:显示UDP传输协议的连线状况;
-v或–verbose:显示指令执行过程;
-V或–version:显示版本信息;
-w或–raw:显示RAW传输协议的连线状况;
-x或–unix:此参数的效果和指定”-A unix”参数相同; –ip或–inet:此参数的效果和指定”-A inet”参数相同。

3.2、输出内容

应用端口时断时续,linux新,linux,微服务,网络
从输出的整体上看,netstat的输出结果可以分为两个部分:

  1. Active Internet connections,称为有源TCP连接,其中"Recv-Q"和"Send-Q"指%0A的是接收队列和发送队列。这些数字一般都应该是0。如果不是则表示软件包正在队列中堆积。这种情况只能在非常少的情况见到。
  2. Active UNIX domain sockets,称为有源Unix域套接口(和网络套接字一样,但是只能用于本机通信,性能可以提高一倍)。
    Proto显示连接使用的协议,RefCnt表示连接到本套接口上的进程号,Types显示套接口的类型,State显示套接口当前的状态,Path表示连接到套接口的其它进程使用的路径名。

3.3、常见状态

就是我们常说的连接状态。
在原模式中没有状态,在用户数据报协议中也经常没有状态,于是状态列可以空出来。
若有状态,通常取值为:

LISTEN: 侦听来自远方的TCP端口的连接请求
SYN-SENT: 在发送连接请求后等待匹配的连接请求
SYN-RECEIVED : 在收到和发送一个连接请求后等待对方对连接请求的确认
ESTABLISHED: 代表一个打开的连接
FIN-WAIT-1: 等待远程TCP连接中断请求,或先前的连接中断请求的确认
FIN-WAIT-2: 从远程TCP等待连接中断请求
CLOSE-WAIT:等待从本地用户发来的连接中断请求
CLOSING: 等待远程TCP对连接中断的确认
LAST-ACK: 等待原来的发向远程TCP的连接中断请求的确认
TIME-WAIT: 等待足够的时间以确保远程TCP接收到连接中断请求的确认
CLOSED:没有任何连接状态

4、netstat实操

4.1、常用显示输出操作

4.1.1、列出所有端口 (包括监听和未监听的)

列出所有当前的连接。使用 -a 选项即可
应用端口时断时续,linux新,linux,微服务,网络

  • 列出所有端口 netstat -a
  • 显示 tcp 端口 netstat -at
  • 显示 udp 端口 netstat -au
    应用端口时断时续,linux新,linux,微服务,网络

4.1.2、列出所有处于监听状态的 Sockets

应用端口时断时续,linux新,linux,微服务,网络

  • 只显示监听端口 netstat -l
  • 显示监听 tcp 端口 netstat -lt
  • 显示监听 udp 端口 netstat -lu
  • 显示监听 UNIX 端口 netstat -lx

应用端口时断时续,linux新,linux,微服务,网络

4.1.3、显示每个协议的统计信息

应用端口时断时续,linux新,linux,微服务,网络

  • 显示所有端口的统计信息 netstat -s
  • 显示 TCP 或 UDP 端口的统计信息 netstat -st 或 -su
  • netstat -st 或 netstat -su

应用端口时断时续,linux新,linux,微服务,网络

4.1.4、显示每个协议的统计信息

在 netstat 输出中显示 PID 和进程名称 netstat -p
netstat -p 与其它参数一起使用就可以添加 “PID/进程名称” 到 netstat 输出中,这样 debugging 的时候可以很方便的发现特定端口运行的程序。

netstat -pt

4.1.5、不显示主机,端口和用户名(host, port or user)

当你不想让主机,端口和用户名显示,使用 netstat -n。将会使用数字代替那些名称。

netstat -an

4.1.6、持续输出netstat信息

netstat -c将每隔一秒输出网络信息。
netstat -interval 隔interval秒显示一次,ctrl+c结束。

4.1.7、显示核心路由信息 netstat -r

使用netstat -rn显示数字格式,不查询主机名称。

应用端口时断时续,linux新,linux,微服务,网络

4.1.8、显示网络接口列表

netstat -i

4.2、常用查找输出操作

4.2.1、找出程序运行的端口

并不是所有的进程都能找到,没有权限的会不显示,使用 root 权限查看所有的信息。

netstat -tunlp | grep ssh
应用端口时断时续,linux新,linux,微服务,网络

4.2.2、找出运行在指定端口的进程

netstat -an | grep ‘:80’

4.2.3、通过端口找进程ID

netstat -tunlp | grep 80 | awk ‘{print $7}’ | cut -d/ -f1

4.2.4、显示每个连接相关的进程

netstat -o 可以与-a -n -p联合使用

4.2.5、IP和TCP分析

查看连接某服务端口最多的的IP地址

netstat -nat | grep "27.158.127.108:8327" |awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -nr|head -25

4.2.6、统计TCP各种状态列表

netstat -nat |awk '{print $6}'netstat -n | awk '/^tcp/{++S[$NF]}END{for(i in S) print i,S[i]}' 
  1. 先把状态全都取出来,然后使用uniq -c统计,之后再进行排序。

netstat -nat |awk ‘{print $6}’|sort|uniq -c

最后的命令如下:

netstat -nat |awk ‘{print $6}’|sort|uniq -c|sort -rn

4.2.7、分析access.log获得访问前5位的ip

awk ‘{print $1}’ access.log |sort|uniq -c|sort -nr|head -5
应用端口时断时续,linux新,linux,微服务,网络

6、结语

如果你的计算机有时候接收到的数据包导致出错数据或故障,你不必感到奇怪,TCP/IP可以容许这些类型的错误,并能够自动重发数据包。但如果累计的出错情况数目占到所接收的IP数据报相当大的百分比,或者它的数目正迅速增加,那么你就应该使用netstat查一查为什么会出现这些情况了。文章来源地址https://www.toymoban.com/news/detail-781499.html

到了这里,关于Linux- 系统随你玩之--微服务应用出现极少概率会时断时续,它抽风了吗?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • win11 使用 WSL2 安装 linux 子系统 ubuntu 出现错误:无法解析服务器的名称或地址

    解决方法: 记事本打开 C:WindowsSystem32driversetchosts 文件, 添加如下解析地址 #raw.githubusercontent.com 185.199.108.133 raw.githubusercontent.com 185.199.109.133 raw.githubusercontent.com 185.199.110.133 raw.githubusercontent.com 185.199.111.133 raw.githubusercontent.com ifconfig /flushdns 查看可安装的 WSL wsl --list --onlin

    2024年04月27日
    浏览(69)
  • Linux系统服务:Apache安装及配置应用

    目录 一、Apache安装 1、Apache简介 2、Yum安装 3、编译安装 4、服务管理 5、编译安装实现systemctl服务管理 二、Apache配置应用 1、基础应用 2、隐藏版本号  3、更改监听端口 4、httpd服务3种工作模式 5、httpd服务处理过程  1、Apache简介   Apache即阿帕奇是一款开源的、世界使用排名

    2024年02月04日
    浏览(38)
  • 第一章 Linux系统服务:Apache安装及配置应用

    1.1http与html 1.2浏览器访问网站的过程 1.3HTTP工作机制 1.4版本 1.5HTTP方法 1.6.http状态码 1.7请求报文 1.8 响应报文 1.Apache基础知识 2.Apache配置文件位置 1.LAMP平台概述 2.LAMP各组件主要作用 3.构建LAMP平台顺序 1. prefork模式(默认模式) 2. worker模式 3. event模式 1.1http与html HTTP:为解决

    2024年02月02日
    浏览(45)
  • 【Linux】32条指令带你玩转 Linux !

    目录 1,whoami 2,who 3,pwd 4,ls 1,ls  2,ls -l 3,ls -a 4,ls -al 5,ls -d  6,ls -ld 5,clear 6,cd 1,cd  2,cd . 3,cd .. 4,cd /home/litao/linux/  绝对路径 5,cd ../day02/   相对路径 6,cd ~ 7,cd - 7,tree 8,touch 9,mkdir 1,mkdir 2,mkdir -p 10,rmdir rm 1,rmdir 2,rm 3,rm -f 4,rm -r 5,rm -rf 6,

    2024年02月08日
    浏览(57)
  • linux系统(centos、ubuntu、银河麒麟服务、uos、deepin)判断程序是否已安装,通用判断方法:使用所有应用和命令的判断

    项目中需要判断linux服务器中是否已经安装了某个服务 方法有很多种,但是很多都不通用, 脚本代码就不容易做成统一的 用下面的脚本代码去进行判断 脚本意思如下: 输入java -version命令,将返回的字符串输出第一行 如果里面包含java version这个字符串则说明jdk已经安装  下

    2024年02月11日
    浏览(60)
  • Linux中ping出现未知名称或服务的解决办法

    ** ** ** **首先要确保自己是超级管理员#,而不是普通用户 。如果为普通用户 。如果为普通用户 。如果为普通用户 ,输入命令su,再按电脑Enter键,然后输入密码,即可切换为超级用户#。 ** **在虚拟机中查看VMnet-8的子网地址 编辑–虚拟网络编辑器–查看如下图( 比如说我的子

    2024年02月05日
    浏览(50)
  • Linux服务器出现异常和卡顿排查思路和步骤

    Linux 服务器出现异常和卡顿的原因有很多,以下是一些常见的原因: 1、CPU 占用率过高:当 CPU 占用率过高时,系统的响应速度会变慢,甚至出现卡顿现象。常见的原因包括进程的死循环、CPU 密集型的任务等。 2、内存使用过高:当内存使用过高时,系统会使用交换分区(s

    2024年02月04日
    浏览(38)
  • linux 服务器出现 Input/output error 处理

    今天突然出现 ls、ss 、 lsof 等命令报错 -bash: /bin/ss: Input/output error 其中有一个服务器上出现提示 *** System restart required *** Last login: Thu Sep 15 12:02:09 2022 from 192.168.0.135 .ssh/rc: 12: .ssh/rc: cannot create /var/log/zabbix-agent/ssh.log: Read-only file system reboot 之后,OK 另一个服务器上更严重 $ sudo

    2024年02月06日
    浏览(58)
  • QT 应用程序在 Windows 系统上出现中文乱码

    Windows 早期采用多字节编码,的确容易出现乱码问题。随着 Windows 全面转向 Unicode 编码,多语言的支持得到完美解决,出现中文乱码的问题就很少出现。出现乱码问题一般是 GBK 编码的文件当做 utf8 编码打开,或者 utf8编码的文件当做 GBK 编码打开。这种情况也多出现在 Linux 和

    2024年01月16日
    浏览(46)
  • 一文教你玩转Linux的ping命令,从此成为Linux网络高手

    Ping是一种基于Internet控制消息协议(ICMP)的工具,用于测试主机之间的连接。Ping命令向目标主机发送一个ICMP回显请求,目标主机收到请求后会发送回一个ICMP回显应答,从而告诉发起请求的主机连接是通畅的。Ping命令可以用于测试主机是否在线,以及网络是否通畅。 当Pin

    2024年02月11日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包