Linux系统运行时参数命令(性能监控、测试)(3)网络IO性能监控

news2024/11/16 9:37:55

目录

  • 5. 网络IO性能监控
    • 5.1 性能指标
    • 5.2 网络信息
      • 5.2.1 网络配置
      • 5.2.2 套接字信息
      • 5.2.3 网络吞吐-sar命令
      • 5.2.4 连通性和延时
    • 5.3 其他常用的网络相关命令
      • 5.3.1 telnet
      • 5.3.2 nc
      • 5.3.3 tcpdump
      • 5.3.4 lsof
      • 5.3.5 nmap
  • 6.其他工具
    • 6.1 nmon性能监控
    • 6.2 glances系统监控

5. 网络IO性能监控

5.1 性能指标

通常用带宽、吞吐量、延时、PPS(Packet Per Second)等指标衡量网络性能

  1. 带宽,表示链路的最大传输速率,单位通常为b/s(比特/秒)
  2. 吞吐量,表示单位时间内成功传输的数据量,单位通常为b/s(比特/秒)或者B/s(字节/秒)。吞吐量受带宽限制,而吞吐量/带宽,也就是网络的使用率
  3. 延时,表示从网络请求发出后,一直到收到远端响应,所需要的时间。在不同场景中,这一指标可能会有不同含义。比如,它可以表示,建立连接所需要的时间(比如TCP握手时),或一个数据包往返所需的时间(比如RTT)
  4. PPS,是Packet Per Second(包/秒)的缩写,表示以网络包为单位的传输速率。PPS通常用来评估网络的转发能力,比如硬件交换机,通常可以达到线性转发(即PPS可以达到或接近理论最大值)。而基于Linux的服务器转发,则容易受网络包大小的影响

除了这些指标,网络的可用性(网络能否正常通信)、并发连接数(TCP连接数量)、丢包率(丢包百分比)、重传率(重新传输的网络包比率)等也是常用的指标

5.2 网络信息

5.2.1 网络配置

使用ifconfig、或者ip命令,来查看网络配置。

ip -s addr show dev ens33

在这里插入图片描述

  1. 网络接口的状态标志。ifconfig输出中的RUNNING,或ip输出中的LOWER_UP,都表示物理网络是联通的,即网卡已经连接到了交换机或路由中。如果你看不到它们,通常表示网线被拔掉了
  2. MTU的大小。MTU的默认大小是1500,根据网络架构不同(比如是否使用了VXLEN等叠加网络),你可能需要调大或调小MTU的数值
  3. 网络接口的IP地址、子网以及MAC地址。这些都是保障网络正常工作所必需的,你需要确保配置正确。
  4. 网络收发的字节数、包数、错误数以及丢包情况,特别是TX和RX部分的errors、dropped、overruns、carrier以及collisions等指标不为0时,通常表示出现了网络I/O问题。其中:
    1)errors:表示发生错误的数据包数,比如校验错误,帧同步错误等
    2)dropped:表示丢弃的数据包数,即数据包已经收到了Ring Buffer,但因为内存不足等原因而丢包
    3)overruns:表示超限数据包数,即网络I/O速度过快,导致Ring Buffer中的数据包来不及处理(队列满)而导致丢包
    4)carrier:表示发生carrier错误的数据包数,比如双工模式不匹配、物理电缆出现问题等
    5)collisions:表示碰撞数据包数

5.2.2 套接字信息

使用netstat或者ss,来查看套接字、网络栈、网络接口以及路由表的信息。
PS:查询网络的连接信息ss比netstat查询速度更快

  1. netstat
head -n 3 #表示只显示前面3行

-a(all):显示所有选项,默认不显示LISTEN相关
-t(tcp):仅显示tcp相关选项
-u(udp):仅显示udp相关选项
-n:表示显示数字地址和端口(而不是名字)
-l:仅列出有在LISTEN(监听)的服务状态
-p:显示建立相关连接的程序名
-r:显示路由信息,路由表
-e:显示拓展信息,例如uid等
-s:按各个协议进行统计
-c:每隔一个固定时间,执行该netstat命令

netstat -nlp | head -n 3

在这里插入图片描述

  1. ss

-l:表示只显示监听套接字
-t:表示只显示TCP套接字
-n:表示显示数字地址和端口(而不是名字)
-p:表示显示进程信息

ss -ltnp

在这里插入图片描述
netstat和ss的输出是类似的,都展示了套接字状态、接收队列、发送队列、本地ip和端口、远端ip和端口、进程PID和进程名称等。
其中接收队列(Recv-Q)和发送队列(Send-Q)需要特别关注,它们通常应该是0。当发现不为0时,说明有网络包的堆积产生。当然还需要注意,在不同套接字状态下,它们的含义不同

当套接字处于连接状态(Established)时:

  • Recv-Q表示套接字缓冲还没有被应用程序取走的字节数(即接收队列长度)
  • Send-Q表示还没有被远端主机确认的字节数(即发送队列长度)

当套接字处于监听状态(Listening)时:

  • Recv-Q表示全连接队列的长度
  • Send-Q表示全连接队列的最大长度

当服务端调用listen函数监听端口的时候,内核会为每个监听的socket创建两个队列:

半连接队列(syn queue):客户端发送SYN包,服务端收到后回复SYN+ACK后,服务端进入SYN_RCVD状态,这个时候的socket会放到半连接队列。
全连接队列(accept queue):当服务端收到客户端的ACK后,完成了TCP三次握手,socket会从半连接队列移出到全连接队列。当调用accpet函数的时候,会从全连接队列的头部返回可用socket给用户进程。

5.2.3 网络吞吐-sar命令

给sar增加-n参数就可以查看网络的统计信息,比如网络接口(DEV)、网络接口错误(EDEV)、TCP、UDP、ICMP等等。

sar -n DEV 1

在这里插入图片描述
输出指标的含义:

  • rxpck/s和txpck/s:分别是接收和发送的PPS,单位为包/秒
  • rxkB/s和txkB/s:分别是接收和发送的吞吐量,单位是kB/秒
  • rxcmp/s和txcmp/s:分别是接收和发送的压缩包数,单位是包/秒
  • %ifutil:网络接口的使用率,半双工模式下为 (rxkB/s + txkB/s) / BandWidth,而全双工模式下为max(rxkB/s, txkB/s) / BandWidth

此命令除了可以用于查看网卡的信息,还可以用来搜集如下服务的状态信息:
-A:所有报告的总和
-u:CPU使用率
-v:进程、I节点、文件和锁表状态
-d:硬盘的使用报告
-r:没有使用的内存页面和硬盘块
-g:串口I/O的情况
-b:缓冲区的使用情况
-a:文件的读写情况
-c:系统的调用情况
-R:进程的活动情况
-y:终端设备的活动情况
-w:系统的交换活动

5.2.4 连通性和延时

ping命令是用于检测网络故障的常用命令,可以测试一台主机到另外一台主机的网络是否是连通的

ping [选项,如-i 2] [主机名称或IP地址]

5.3 其他常用的网络相关命令

5.3.1 telnet

telnet是TCP/IP协议族的一员,是网络远程登陆服务的标准协议,帮助用户在本地计算机上连接远程主机。
使用方式:

telnet IP PORT

和ssh的区别:端口区别,telnet是23,ssh是22;本质区别,telnet是明码传输,ssh是加密传输

5.3.2 nc

验证服务器端口有没有开放
nc是NetCat的简称,在网络调试工具中享有“瑞士军刀”的美誉,此命令功能丰富、短小精悍、简单实用,被设计为一款易用的网络工具,可通过TCP/LJDP传输数据
参数:
-I:用于指定nc将处于侦听模式。指定该参数,则意味着nc被当作server,侦听并接受连接,而非向其他地址发起连接
-s:指定发送数据的源IP地址,适用于多网卡机
-u:指定nc使用UDP协议,默认为TCP
-v:输出交互或出错信息,新手调试尤为有用
-w:超时秒数

5.3.3 tcpdump

抓包,然后用wireshark分析
tcpdump是网络状况分析和跟踪工具,是可以用来抓包的实用命令,使用前需要对TCP/IP有所了解,因为过滤使用的信息都是TCP/IP格式

  1. 捕获及停止条件
    -D:列举所有网卡设备
    -i:选择网卡设备
    -c:抓取多少条报文
    –time-stamp-precision:指定捕获时的时间精度,默认是微秒micro,可选纳秒nano
    -s:指定每条报文的最大字节数,默认为262144字节

示例,抓取ens33的报文,抓取5条后退出

tcpdump -i ens33 -c 5

在这里插入图片描述
2. 文件操作
-w:输出结果到文件
-C:限制输入文件的大小,超出以后缀1等数字的方式递减。注意:单位是1000000字节
-W:指定输出文件的最大数量
-G:指定每N秒就重新输出到新文件,注意-w参数应基于strftime参数指定文件名
-r:读取一个抓包文件
-V:将待读取的多个文件名写入一个文件夹中,通过读取该文件同时读取多个文件

5.3.4 lsof

lsof是系统管理/安全的尤伯工具。将这个工具称之为lsof真实名副其实,因为它是指“列出打开文件(lists openfiles)”。而有一点要切记,在Unix中一切(包括网络套接字)都是文件。
查看帮助文档:lsof -h

lsof默认没有选项, 列出活跃进程的所有打开文件

-a : 结果进行“与”运算(而不是“或”)
-l : 在输出显示用户ID而不是用户名
-h : 获得帮助
-t : 仅获取进程ID
-U : 获取UNIX套接口地址
-F : 格式化输出结果,用于其它命令。可以通过多种方式格式化,如-F pcfn(用于进程id、命令名、文件描述符、文件名,并以空终止)

5.3.5 nmap

扫描一台主机打开的端口及端口提供的服务信息,通常用于查看本机有哪些端口对外提供服务,或者服务器有哪些端口对外开放

nmap -v -A localhost

6.其他工具

6.1 nmon性能监控

6.2 glances系统监控

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/734894.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Js提升:如何实现图片懒加载

知其然,更要知其所有然,在不同场景下该用什么方法,如何做到最优。 为什么要出现图片懒加载,解决了什么问题?除了懒加载,还有预加载呢?什么是预加载,怎么实现,相比于懒加载…

软件设计模式与体系结构-软件体系-层次软件体系结构

目录 四、层次软件体系结构简介代码两种方式的区别双向分层分层风格 VS 主程序-子过程风格:二者的不同层次软件体系结构的优点层次软件体系结构的缺点 课程作业 四、层次软件体系结构 层次之间存在接口,通过接口形成call/return的关系,上层是…

【内存优化】内存优化以及oom排查整体思路

linux疑难问题排查实战专栏,分享了作为公司专家,在解决内存、性能、各类死机等疑难问题的排查经验,认真学习可以让你在日后工作中大放光彩。 本文总结介绍了项目开发过程中oom排查和内存优化的一些方法,主要是从内存问题查看到堆内…

阿里云轻量服务器和ecs区别(最新更新)

阿里云服务器ECS和轻量应用服务器有什么区别?云服务器ECS是明星级云服务器,轻量应用服务器可以理解为简化版的云服务器ECS,轻量适用于单机应用,云服务器ECS适用于集群类高可用高容灾应用,阿里云百科来详细说下阿里云轻…

组合模式:如何设计实现支持递归遍历的文件系统目录树结构?

组合模式跟我们之前讲的面向对象设计中的“组合关系(通过组合来组装两个类)”,完全是两码事。这里讲的“组合模式”,主要是用来处理树形结构数据。这里的“数据”,你可以简单理解为一组对象集合,待会我们会…

使用 geopandas 和 shapely(.shp) 进行地理空间数据处理和可视化

文章目录 前言1. 安装所需库2. 读取 Shapefile 文件3. 可视化地图4. 用户输入坐标和清除指定区域内的图形5. 可视化删除指定区域内的图形之后的地图6. 保存为新的 Shapefile (.shp)文件完整代码及解析分析说明 测试文件地址特别说明完结 前言 在地理信息系统(Geogra…

力扣竞赛勋章 | 排名分数计算脚本

文章目录 力扣竞赛勋章介绍竞赛评分算法脚本(本文的重点内容)运行结果 代码修改自:https://leetcode.cn/circle/discuss/6gnvEj/ 原帖子的代码无法正常运行。 力扣竞赛勋章介绍 https://leetcode.cn/circle/discuss/0fKGDu/ 如果你想知道自…

【Elasticsearch】初识elasticsearch

目录 初识elasticsearch 1.1.了解ES 1.1.1.elasticsearch的作用 1.1.2.ELK技术栈 1.1.3.elasticsearch和lucene 1.1.4.为什么不是其他搜索技术? 1.1.5.总结 1.2.倒排索引 1.2.1.正向索引 1.2.2.倒排索引 1.2.3.正向和倒排 1.3.es的一些概念 1.3.1.文档…

前端各种方法自我整理

Javascript方法 slice [slaɪs]切片 slice (-2)取出数组中倒数两个植变生成一个新数组 slice(0,3)取出数组下标0到下标3的值,生成新数组 includes [ɪnˈkluːdz]包含 查看数组或字符串内是否有该值,有返回true,无返回false 例子&#…

Vue--》Vue3打造可扩展的项目管理系统后台的完整指南(十二)完结篇

今天开始使用 vue3 + ts 搭建一个项目管理的后台,因为文章会将项目的每一个地方代码的书写都会讲解到,所以本项目会分成好几篇文章进行讲解,我会在最后一篇文章中会将项目代码开源到我的GithHub上,大家可以自行去进行下载运行,希望本文章对有帮助的朋友们能多多关注本专栏…

linux常用压缩/解压缩命令的使用

目录 gzipbzip2tar gzip gzip 的常用选项: -l(list) 列出压缩文件的内容。 -k(keep) 在压缩或解压时,保留输入文件。 -d(decompress) 将压缩文件进行解压缩。 如果 gzip 不加任何选项,此时为压缩。压缩完该文件会生成后缀为.gz 的压缩文…

java读取excel,指定列A列为空,将下方空行上移,并将指定列F列数据拼接

java读取excel,将空行上移 改造前: 效果图: 上代码: import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel.XSSFWorkbook;import java.io.FileInputStream; import java.io.FileOutputStream; import jav…

SqueezeNet算法解析—鸟类识别—Paddle实战

文章目录 一、理论基础1.前言2.设计理念2.1 CNN微架构(CNN MicroArchitecture)2.2 CNN宏架构(CNN MacroArchitecture)2.3 模型网络设计探索过程2.4 结构设计策略2.5 Fire模块 3.网络结构4.评估分析 二、实战1.数据预处理2.数据读取…

树莓派登录密码忘记了怎么办????

我们常常会不记得我们的密码,比如说我近期想玩一下我们树莓派开发版,登录的时候忘记了怎么办,第一想到的就是重刷系统,从头再来,今天我给大家带来了一个解决忘记了登录密码如何去修改它,从而进入系统里。 …

分享一款超级好用的下载软件,IDM--不限速,破解版,IDM破解版下载安装

本片文章分为四个部分: 第一部分,下载安装IDM 第二部分,IDM破解 第三部分,浏览器插件的安装 第四部分,百度网盘使用IDM下载 下载IDM 首先大家可以在浏览器搜索IDM 网址:https://www.internetdownloadma…

Zynq PS无法读取SD卡(TF卡)异常分析及如何读写SD卡

最近我正在进行一个Zynq项目,我使用了Xilinx SDK自带的系统库函数来读取SD卡中的配置信息。然而,一直读取异常。 我进行了一系列的调试和检查,包括确认PS部分的代码正确性以及Xilffs的配置是否正确,但是问题仍然没有解决。最后&am…

NYDIG最新报告:比特币今年上半年回报率达83.6%,远超其他资产类别

本文要点: 比特币的强劲势头延续到了二季度,本季度比特币上涨 6.8%,年初至今上涨 83.6%。 二季度末,一系列新的现货比特币 ETF 申请(尤其是 ETF 巨头贝莱德的申请)提振了比特币价格。 在多家机构提交现货 B…

POI下载excel通用方法

POI下载excel通用方法 最近遇到一个业务是需要下载excel&#xff0c;使用POI,这里记录一下实现过程 1、导包 <dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>3.9</version></dependency>…

本周大新闻|传微软曾考虑收购Niantic;腾讯引进Quest挑战重重

本周XR大新闻&#xff0c;AR方面&#xff0c;传微软曾考虑收购AR头部公司Niantic&#xff1b;Q-PIXEL公布5000PPI可调色Micro LED&#xff1b;三星智能眼镜商标曝光&#xff1b;Humane公布首款产品Ai Pin&#xff1b;空客推企业级AR解决方案。 VR方面&#xff0c;Vision Pro销…

边缘计算那些事儿-漫谈网络切片关键技术

0、背景 网络切片作为一种比较前沿的技术&#xff0c;当前并没有太多系统的资料可以学习&#xff0c;很多的技术资料都是比较分散地分布在论文和一些技术博客中&#xff0c;笔者当前是通过论文的解读获取相关的技术信息&#xff0c;在过程中笔者总结了相关的技术栈&#xff0c;…