硬件性能 - 网络瓶颈分析

news2024/9/22 9:45:06

简介

本文章主要通过Linux命令查看网络信息、判断是否出现网络瓶颈等简单分析方法。

 

目录

1. 监控命令 sar

2. 带宽利用率

3. 网络延迟

4. 网络连接数

5. 模拟网络故障


 

1. 监控命令 sar

sar 命令实时查看网络情况(详细命令:Linux性能监控命令_sar & 自动保存30天历史信息)

# 监控网卡信息
sar -n DEV 间隔时间 监控次数

# 监控网卡异常信息
sar -n EDEV 间隔时间 监控次数

# 查看历史信息(06表示本月6号,只保存1个月信息)
sar -f /var/log/sa/sa06 -n DEV

 

每1秒输出一次网卡信息

IFACE   :网卡名
rxpck/s :每秒接收的包
txpck/s :每秒发送的包
rxkB/s  :每秒接收的大小(单位 KB)
txkB/s  :每秒发送的大小(单位 KB)
rxcmp/s :每秒接收的压缩包
txcmp/s :每秒发送的压缩包
rxmcst/s:每秒接收的多播包

 

每1秒输出一次网卡异常信息

IFACE   :网卡名
rxerr/s :每秒接收错误的数量
txerr/s :每秒发送错误的数量
coll/s  :每秒发生冲突的数量
rxdrop/s:每秒接收丢弃的数据包数量
txdrop/s:每秒发送丢弃的数据包数量
txcarr/s:每秒发送信号载波的数量
rxfram/s:每秒接收帧错误的数量
rxfifo/s:每秒接收的FIFO错误数量
txfifo/s:每秒发送的FIFO错误数量
txcomp/s:每秒传输完成的数量

 

 

2. 带宽利用率

        监测带宽利用率可以清晰知道系统当前网络传输的整体效率。如果带宽利用率接近100%,可能意味着已经达到带宽瓶颈。

由于没有命令可以直接查看带宽利用率,我们可以用 sar 的监控结果计算,公式如下:

(接收大小 + 发送大小) / 最大传输 * 100

 

接收大小 (rxkB/s) 和发送大小 (txkB/s) 如 sar 监控结果:

sar -n DEV 1

 

传输大小查看方法

1. 先根据自己的 IP 找到网卡名

ip a

2. 在查看网卡的带宽(传输大小)

ethtool 网卡名

 

根据我们刚才的结果来计算

每秒接收大小:563.63 KB
每秒发送大小:1014.05 KB
最大传输大小:1000Mb/s 换算成KB:(1000/8)*1024=128000 KB
  • 单位换算:1MB = 8Mb,1MB = 1024KB

按公式计算(乘以100是为了代入百分号)

( 563.63 + 1014.05 ) / 128000 * 100 = 1.23%

从结果来看,利用率非常低,无性能瓶颈

        当然了,如果觉得计算不方便,可以直接看发送和接收的大小是否接近最大传输。以千兆网络为例:(1000/8)*1024=128000 KB,只需要看发送和接收大小相加是不是接近 128000 即可。如果接近这个值,说明可能存在网络瓶颈;如果相差较远,则没有网络瓶颈。

 

 

3. 网络延迟

        除了带宽利用率,网络延迟也是衡量传输性能的指标之一。您可以使用工具如ping、traceroute 或者 mtr 来评估网络延迟和响应时间。如果网络延迟较高或响应时间不稳定,可能表示网络传输达到了瓶颈。

使用 ping 命令,查看另一个网络是否通畅

icmp_seq:发出ICMP回显请求
ttl     :数据包的生存时间
time    :从发送 ICMP 请求到接收到回应所花费的往返时间
# 最后一行
发送3包,接收3包,0%丢包,时间2060ms

从ping命令分析网络

  1. 较高的往返时间:当 ping 命令输出中的往返时间较高时,表示从发送请求到接收响应所需的时间较长。一般来说,正常的往返时间应该在几毫秒或几十毫秒内。当往返时间超过100毫秒或更高时,可以认为存在网络延迟问题。

  2. 延迟波动较大:ping 命令的输出中,每次往返时间的变化应保持相对稳定。如果出现明显的波动,例如从几毫秒突然跳到几百毫秒,或者时间间隔内的方差较大,那么这可能是网络连接存在延迟问题的迹象。

  3. 丢包率较高:在 ping 命令输出中,丢失的 ICMP 请求百分比(packet loss)较高,即未收到响应的请求占总请求数的比例较大时,可能是由于网络延迟导致请求无法到达目标主机或无法返回响应。

 

结合 watch 命令实时查看是否丢包(Ctrl + C 退出)

# 每3秒发送1个包
watch -n 3 ping -c 1 IP地址

  

 

4. 网络连接数

        如果网络传输达到瓶颈,可能会导致网络连接的延迟增加或连接失败。当连接请求到达系统时,如果队列已满,新的连接请求将被拒绝。将会导致网络延迟增加、带宽利用率降低等问题。

         连接数仅仅只能初步估计网络瓶颈,还需要考虑系统负载、带宽利用率、网络设备的能力等都可能对网络性能产生影响。更深入的网络性能分析和故障排除通常需要结合其他工具和指标来进行。

查看系统套接字最大连接数(默认128)

sysctl net.core.somaxconn

查看当前系统连接数

netstat -ant | grep ESTABLISHED | wc -l

  

 

5. 模拟网络故障

tc 命令模拟网络故障

# 模拟延迟100ms
sudo tc qdisc add dev 网卡名 root netem delay 100ms

# 模拟丢包率10%
sudo tc qdisc change dev 网卡名 root netem loss 10%

# 模拟网络延迟100ms,带宽限制为1Mbps
sudo tc qdisc add dev 网卡名 root handle 1:0 netem delay 100ms rate 1mbit

# 模拟网络抖动,延迟100ms ± 50
sudo tc qdisc add dev 网卡名 root handle 1:0 netem delay 100ms 50ms distribution normal

# 还原网络设置
sudo tc qdisc del dev 网卡名 root

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

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

相关文章

靠着这份 Java 面试题跟答案,我从 14K 变成了 28K!

LZ 认为,对于 Java 面试以及进阶的最佳学习方法莫过于刷题博客书籍总结,前三者 LZ 将淋漓尽致地挥毫于这篇文章中,至于总结在于个人,实际上越到后面你会发现面试并不难,其次就是在刷题的过程中有没有去思考&#xff0c…

【QT】——事件处理系统

目录 1.事件介绍 2.QT事件的产生 3.事件处理函数 3.1鼠标事件 3.2键盘事件 3.3窗口重绘事件 3.4窗口关闭事件 3.5窗口大小变化事件 4. 重写事件处理函数 1.事件介绍 QT 程序是事件驱动的, 程序的每个动作都是由内部某个事件所触发。QT 事件的发生和处理 成为程序运行的…

数据质量管理之ETL中的挑战与解决方案

摘要:在数据驱动的时代,数据质量管理是企业成功的关键因素之一。在ETL(Extract, Transform, Load)过程中,数据质量问题可能会导致数据失真、决策错误和业务损失。本文将探讨ETL中常见的数据质量挑战,并提供…

CSS入门.

目录 基础入门基础语法 1.基础入门 什么是 CSS CSS 指层叠样式表(Cascading Style Sheets)样式通常存储在样式表中 为什么要使用 CSS 样式定义如何显示 HTML 元素为了解决内容与表现分离的问题主要目的:可以让相同的一个页面在不同的浏…

linux服务配置ssh免密

一、常用场景 1、我们经常使用scp命令在两台不同服务器之间进行文件传输,但每执行一次scp命令时,都需要输入一次密码;使用ssh命令远程连接另一台服务器时,也需要输入密码。频繁输入密码比较麻烦,ssh可帮助我们在两台服…

【python】array数组添加一行或一列数据

目录 0.环境 1.背景 2.具体实现 2.1思路 2.2具体实现 2.2.1 增加一列 2.2.2增加一行 3. 完整代码 0.环境 windows jupyter notebook跑代码 1.背景 在实现数据可视化的时候,用了numpy的array类型的数组,需要手动在最后增加一列数据,所以…

[oeasy]python0071_字符串类型_str_string_下标运算符_中括号

帮助手册 回忆上次内容 上次 分辨了 静态类型 语言动态类型 语言 python 属于 对类型要求 没有那么严格的 动态类型 语言 对 初学者很友好不过很多时候 也容易 弄不清变量类型 直接 修改代码 增强 程序的可读性把变量的类型 明确标记在 变量名上 就像 把缩进 作为程序块的分…

VisualSVN Server安装步骤

一.下载 官网:VisualSVN - Subversion-based version control for Windows 二.安装 双击安装 先创建好文件夹路径,建议放在同一个根目录下 三.安装成功,运行打开界面如图 四.创建项目 右键Repositories 选择Customize pemissions&#xff0…

浅拷贝、深拷贝、引用拷贝

目录 1.浅拷贝 2.深拷贝 3.引用拷贝 4.代码示例 5.总结 浅拷贝、深拷贝和引用拷贝是在编程中用来 复制对象或数据 的三种不同方式。 1.浅拷贝 浅拷贝(Shallow Copy):浅拷贝创建一个新对象,其中包含原始对象的引用。这意…

Oracle数据类型与表管理

Oracle数据类型与表管理 前言 1、Oracle数据类型 2、 建表 3、表删除 4、表的修改 1、Oracle数据类型 2、 建表 Create table 表名( 字段 1 数据类型 [default 默认值], 字段 2 数据类型 [default 默认值], … 字段 n 数据类型 [default 默认值] ) -…

d3dx9_30.dll丢失怎么解决

在解决d3dx9_30.dll丢失问题之前,我们首先需要了解d3dx9_30.dll的作用。d3dx9_30.dll是DirectX的一个核心文件,它提供了许多与图形和多媒体相关的函数和特性。它在许多游戏和图形应用程序中被广泛使用。 d3dx9_30.dll丢失的解决方法 打开计算机电脑浏览…

selenium自动化测试之八种定位元素方法

目录 八大定位方法 id定位 name定位 tag定位 class定位 link_text定位 partial_link定位 xpath定位 Css_selector定位 总结: 自动化最基础的就属于定位元素了,元素不会定位,基本上已经团灭了,就不用再去考虑什么自动化了…

9.12UEC++日志输出

1. 调用:GEngine; 2.TEXT宏: 3. Vs使用: 演示: 日志文件夹: 自定义日志: 声明: 定义:

力扣 51. N 皇后

题目来源&#xff1a;https://leetcode.cn/problems/n-queens/description/ C题解1&#xff1a;回溯法。用一个vector<vector<int>> qmap(n, vector<int>(n, 0))标记后面行不能使用的位置&#xff0c;每次递归下一层为下一行的位置&#xff0c;直到达到n行&a…

html案例2

效果 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevice-width, initia…

【mysql实践】如何查看阿里云RDS的MySQL库中的binlog日志

背景&#xff1a; 工作中我们为了查看MySQL中数据修改的历史记录时&#xff0c;会通过查看binlog日志。但由于binlog日志是二进制文件&#xff0c;需要解析之后&#xff0c;才能用文本查看工具打开。这次笔者使用flink进行实时统计时就多次遇到了这个问题。经常看笔者最近博客…

redis的分布式事务-redisson

一 redisson 1.1 redisson分布式事务 Redisson分布式锁是一种基于redis实现的分布式锁&#xff0c;它利用redis的setnx命令实现分布式锁的互斥访问。同时还支持锁的自动续期功能&#xff0c;可以避免因为某个进程崩溃或者网络故障导致锁无法释放的情况。 只要线程一加锁成功…

常见面试题之类加载器

1. 什么是类加载器&#xff0c;类加载器有哪些&#xff1f; 要想理解类加载器的话&#xff0c;务必要先清楚对于一个Java文件&#xff0c;它从编译到执行的整个过程。 类加载器&#xff1a;用于装载字节码文件(.class文件)运行时数据区&#xff1a;用于分配存储空间执行引擎&a…

八 、HTML表单

1、表单 三层架构 数据访问层 响应业务逻辑层的请求 与物理数据库交互 业务逻辑层 响应表示层的请求 与数据访问层交互 完成特定的业务逻辑约束 表示层 显示信息 收集信息&#xff08;与业务逻辑层交互&#xff09; HTML显示信息 基本标签&#xff1a;行内元素、块级元素 HT…

Java 设计模式——策略模式

目录 1.概述2.结构3.案例实现4.优缺点5.使用场景6.JDK 源码解析——Comparator 1.概述 &#xff08;1&#xff09;先看下面的图片&#xff0c;我们去旅游选择出行模式有很多种&#xff0c;可以骑自行车、可以坐汽车、可以坐火车、可以坐飞机。 &#xff08;2&#xff09;策略…