当前位置: 首页 > news >正文

性能问题分析排查思路之机器(3)

本文是性能问题分析排查思路的展开内容之一,第2篇,主要分为日志1期,机器4期、环境2期共7篇系列文章,本期是第三篇,讲机器(硬件)的网络方面的排查方法和最佳实践。

主要内容如图所示:

本文内容主要涉及一个网络本命工具netstat、网络的延迟、抖动和丢包率查看、流量与网络带宽上限查询、链路分析、TCP连接数检测和与网络相关的常见异常,通过这些工具和方法可了解网络的主要指标表现。

本命工具netstat

Netstat是一个控制台命令,用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,它是一个强大的网络工具,可帮助用户监视网络活动、查找与网络相关的问题,并提供有关网络连接的详细信息。
Netstat命令提供了多种选项,以便用户根据需要定制输出信息,功能很多,本文不展开全部细节,只是介绍一下有这样的一个命令行工具,具体的语法随时搜索即可。

问题一:查看某个端口是否处于监听状态?
命令:netstat -nalp | grep 端口号

问题二:按连接状态分类并统计某个进程占了多少tcp连接?

命令是:netstat -anp | grep 12345 | awk '/^tcp/ {print $6}' | uniq -c
这个对于排查连接数过多,不释放或者半连接问题非常有效!

如图所示,这个进程建立了了3000多个网络连接,最后排查出该进程存在连接未释放的Bug,这就是一个直接证据!

问题三:按照PID进行分类统计,并取前10位。

命令是:

netstat -anp | awk '/^tcp/ {print $7}' | cut -d/ -f1 | sort | uniq -c | sort -nr | head

结果如图所示:

图中第一列是连接数,第二列是进程的PID,从这个统计可以直观看出一些异常进程(没错,就是排名第一那个)!

以上用法,抛砖引玉。

网络延迟与抖动

ping是一个大家所熟知的命令,虽然普通,但是它也足够强大。

图中首先可以看到网络是否联通。其次,可以直观看出现在的延迟,例如上图都是20多毫秒,这个延迟已经很高了。数据中心内部一般不到1毫秒,我这里是ping的一个外部网络。
再然后,通过最后一行的统计信息,可以看到网络抖动非常小,只有0.321毫秒,因此该网络虽然慢,但慢的很稳定很均匀。
最后,丢包率,这里直接看到是0% packet loss,你可以测试更长时间观察是否丢包。

丢包率

上面的ping命令可以查看实时的丢包情况。
ifconfig命令可以查看历史统计,它显示的是每个网卡的信息,关注每个信息块的最后两行:

分别表示接收和发送的网络包数目,其中包含了drop关键字,也就是丢包的数量,这里可看到是2010571,这种就需要确认下网络是否有拥塞或其他异常。

网络流量

一般网络流量要通过监控系统的页面进行查看,如果没有现成的页面监控可以看,使用以下的命令查看。

网络带宽上限

使用ethtool 网卡名获取,网卡名使用上面的命令可以得到!

上图中的Speed就是这个网卡的理论速度上限了,即千兆网卡,1000Mb/s。
这里需要提醒的是,千兆不是我们常说的1GB,b在这里是比特,不是Bytes!

实时网速

这里又要用到linux神器,sar命令。

sar的功能太多,关于看网速的具体命令是:sar -n DEV 1

第一列是时间戳。其他主要字段解释如下:

  • IFACE:这是网络接口的名称。在这个例子中,有两个接口。
  • rxpck/s:这是每秒接收的数据包数量(Received Packets per Second)
  • txpck/s:这是每秒发送的数据包数量(Transmitted Packets per Second)
  • rxkB/s:这是每秒接收的千字节数(Received Kilobytes per Second)
  • txkB/s:这是每秒发送的千字节数(Transmitted Kilobytes per Second)

通过收发的字节数与上面的带宽对比,可以看到是否达到网络瓶颈!

另一个实时网速

iptraf-ng还可以监控所有出入的流量,进行按照协议区分流量,并设置过滤器等。它可以用于实时监视网络流量、统计网络接口的使用情况、查看网络连接等。
这是一个略漂亮点的网速查看工具!如图所示:

链路

tracepath是一个网络诊断工具,用于追踪数据包从源主机到目标主机的路径。它通过发送一系列逐渐增加的TTL(Time To Live)值的ICMP回显请求报文来探测路径上的每个路由器,并记录每个路由器的IP地址和响应时间。
示例输出:

tracepath to www.example.com (93.184.216.34), 30 hops max, 60 byte packets 
1 192.168.1.1 (1.234 ms) 
2 10.0.0.1 (2.345 ms) 
3 * * * 
4 203.0.113.1 (123.456 ms) 
5 * * * 6 93.184.216.34 (123.456 ms)

其中星号表示在该跳点上没有收到回复。每行还包括该跳点的IP地址和从源主机到该跳点的往返时间(以毫秒为单位)。

如果发现某个跳点的响应时间特别长或没有收到回复,那么可能表示该路由器存在故障或网络拥塞等问题。这对于网络故障排查和优化非常有帮助。

TCP相关

可以继续使用sar命令来观察网络的重发数、强制关闭数。另外linux的网络半连接、全连接的队列大小可以适当扩大。

常见问题

  1. 网络连接问题

    • 报错信息:Network is unreachableConnection refusedNo route to host等。
    • 现象:无法ping通其他主机,无法上网,无法访问远程服务等。
    • 解决方法:检查本地网络设置、路由器配置、防火墙设置等。
  2. DNS解析问题

    • 错误信息:Name or service not known
    • 现象:无法通过域名访问网站,只能通过IP地址访问。
    • 解决方法:检查/etc/resolv.conf文件中的DNS设置,或者尝试更换DNS服务器。
  3. 服务端口监听问题

    • 错误信息:Connection refused
    • 现象:尝试连接某个服务端口时,被服务器拒绝。
    • 解决方法:检查服务是否正在运行,端口是否开放,以及防火墙规则是否允许该连接。
  4. 网络超时

    • 错误信息:Request timed out
    • 现象:网络请求长时间无响应。
    • 解决方法:检查网络延迟、带宽限制、服务器负载等因素。
  5. 路由配置问题

    • 错误信息:Destination Host Unreachable
    • 现象:尝试访问某个网络时,提示目标主机不可达。
    • 解决方法:使用route命令查看和修改路由表,确保默认路由设置正确。

结语

Linux网络系统的排查工具众多,每种工具都有其独特的功能和适用场景。通过结合使用这些工具和使用经验,我们能够更加高效地诊断和解决网络问题。然而,仅依赖工具是不够的,我们还需不断学习和积累网络知识,以便更好地理解和处理各种网络问题。希望本文所介绍的排查工具和使用经验能为读者在Linux网络系统维护排查中提供一些帮助。

相关文章:

性能问题分析排查思路之机器(3)

本文是性能问题分析排查思路的展开内容之一,第2篇,主要分为日志1期,机器4期、环境2期共7篇系列文章,本期是第三篇,讲机器(硬件)的网络方面的排查方法和最佳实践。 主要内容如图所示&#xff1a…...

PostgreSQL安装教程

系统环境 下载压缩包 下载压缩包 解压压缩包 查看解压文件 编译安装 编译 安装 用户权限和环境变量设置 创建用户 创建数据目录和日志目录 设置权限 设置环境变量 初始化数据库 数据库访问控制配置文件 postgresql.conf pg_hba.conf PostgreSQL启动与关闭 手…...

SLAM基础知识:前端和后端

在SLAM中前端和后端是被经常提到的一个概念。但是对于前端和后端的理解有着不同的看法,我的理解是: 前端:前端负责处理传感器数据,特征提取,进行状态估计和地图构建的初步步骤。 后端:后端接受不同时刻的里…...

一文彻底搞懂从输入URL到显示页面的全过程

简略版: 用户输入URL后,浏览器经过URL解析、DNS解析、建立TCP连接、发起HTTP请求、服务器处理请求、接收响应并渲染页面、关闭TCP连接等步骤,最终将页面显示给用户。 详细版: URL解析:浏览器根据用户输入的URL&#x…...

好书安利:《大模型应用开发极简入门:基于GPT-4和ChatGPT》这本书太好了!150页就能让你上手大模型应用开发

文章目录 前言一、ChatGPT 出现,一切都变得不一样了二、蛇尾书特色三、蛇尾书思维导图四、作译者简介五、业内专家书评总结 前言 ​如果问个问题:有哪些产品曾经创造了伟大的奇迹?ChatGPT 应该会当之无愧入选。仅仅发布 5 天,Chat…...

力扣题库第4题:移动零

题目内容: 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 请注意 ,必须在不复制数组的情况下原地对数组进行操作。 示例 : 输入: nums [0,1,0,3,12] 输出: [1,3,12,0,0] 答案&…...

Java解决IP地址无效化

Java解决IP地址无效化 01 题目 给你一个有效的 IPv4 地址 address,返回这个 IP 地址的无效化版本。 所谓无效化 IP 地址,其实就是用 "[.]" 代替了每个 "."。 示例 1: 输入:address "1.1.1.1" 输出…...

[数据结构初阶]队列

鼠鼠我呀,今天写一个基于C语言关于队列的博客,如果有兴趣的读者老爷可以抽空看看,很希望的到各位老爷观点和点评捏! 在此今日,也祝各位小姐姐女生节快乐啊,愿笑容依旧灿烂如初阳,勇气与童真永不…...

MySQL学习Day27——MySQL事务日志

事务的隔离性由锁机制实现,而事务的原子性、一致性和持久性由事务的redo日志和undo日志来保证。其中REDO LOG称为重做日志,提供再写入操作,恢复提交事务修改的页操作,用来保证事务的持久性,redo log是存储引擎层生成的日志,记录的是物理级别上的页修改操作,主要为了保证…...

ETAS工具链ISOLAR-AB重要概念,RTE配置,ECU抽取

RTE配置界面,包含ECU抽取关联 首次配置RTE,出现需要勾选的抽取EXTRACT 创建System System制作SWC到ECU的Mapping System制作System Data 的Mapping...

蓝桥杯倒计时 43天 - 前缀和

思路&#xff1a;如果用n^2复杂度暴力会超时。nlogn 可以&#xff0c;利用前缀和化简&#xff0c;提前存储某个位置前的每个石头搬运到该位置和每个石头后搬运到该位置的前缀和On最后直接输出 On。排序花 nlogn #include<bits/stdc.h> using namespace std; typedef pai…...

【Web - 框架 - Vue】随笔 - Vue的简单使用(01) - 快速上手

【Web - 框架 - Vue】随笔 - Vue的简单使用(01) - 快速上手 Vue模板代码 代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>模板</title> </head> <body> <div></di…...

【简说八股】Redisson的守护线程是怎么实现的

Redisson Redisson 是一个 Java 语言实现的 Redis SDK 客户端&#xff0c;在使用分布式锁时&#xff0c;它就采用了「自动续期」的方案来避免锁过期&#xff0c;这个守护线程我们一般也把它叫做「看门狗」线程。 Redission是一个在Java环境中使用的开源的分布式缓存和分布式锁实…...

WPS/Office 好用的Word插件-查找替换

例如&#xff1a;一片文档&#xff1a;…………泰山…………泰&#xff08;少打了山字&#xff09;………… 要是把“泰”查找替换为“泰山”&#xff0c;就会把前面的“泰山”变成“泰山山”&#xff0c;这种问题除了再把“泰山山”查找替换为“泰山”&#xff0c;有没有更简单…...

Go 简单设计和实现可扩展、高性能的泛型本地缓存

相信大家对于缓存这个词都不陌生&#xff0c;但凡追求高性能的业务场景&#xff0c;一般都会使用缓存&#xff0c;它可以提高数据的检索速度&#xff0c;减少数据库的压力。缓存大体分为两类&#xff1a;本地缓存和分布式缓存&#xff08;如 Redis&#xff09;。本地缓存适用于…...

Vue.js 深度解析:模板编译原理与过程

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…...

Java多线程——如何保证原子性

目录 引出原子性保障原子性CAS 创建线程有几种方式&#xff1f;方式1&#xff1a;继承Thread创建线程方式2&#xff1a;通过Runnable方式3&#xff1a;通过Callable创建线程方式4&#xff1a;通过线程池概述ThreadPoolExecutor API代码实现源码分析工作原理&#xff1a;线程池的…...

stm32消息和邮箱使用

邮箱管里介绍 邮箱是C/OS-II中另一种通讯机制,它可以使一个任务或者中断服务子程序向另一个任务发送一个指针型的变量。该指针指向一个包含了特定“消息”的数据结构。为了在C/OS-II中使用邮箱,必须将OS_CFG.H中的OS_MBOX_EN常数置为1。使用邮箱之前,必须先建立该邮箱。该操…...

银行数字化转型导师坚鹏:银行数字化转型案例研究

银行数字化转型案例研究 课程背景&#xff1a; 数字化背景下&#xff0c;很多银行存在以下问题&#xff1a; 不清楚银行科技金融数智化案例&#xff1f; 不清楚银行供应链金融数智化案例&#xff1f; 不清楚银行普惠金融数智化案例&#xff1f; 不清楚银行跨境金融数智…...

142.乐理基础-音程的构唱练习

内容参考于&#xff1a;三分钟音乐社 上一个内容&#xff1a;141.乐理基础-男声女声音域、模唱、记谱与实际音高等若干问题说明-CSDN博客 本次内容最好去看视频&#xff1a; https://apphq3npvwg1926.h5.xiaoeknow.com/p/course/column/p_5fdc7b16e4b0231ba88d94f4?l_progra…...

【GitHub 加速计划】:解决智能家居插件获取难题的网络适配方案

【GitHub 加速计划】&#xff1a;解决智能家居插件获取难题的网络适配方案 【免费下载链接】integration 项目地址: https://gitcode.com/gh_mirrors/int/integration 在智能家居系统搭建过程中&#xff0c;插件获取往往是用户面临的首要障碍。许多优质的智能家居插件托…...

防火墙旁挂模式实战:用华为模拟器ENSP搭建VRF+OSPF实验环境(保姆级)

华为eNSP防火墙旁挂模式全实战&#xff1a;从VRF设计到流量抓包分析 在企业网络架构中&#xff0c;防火墙的部署方式直接影响网络安全策略的实施效果。旁挂模式作为一种灵活部署方案&#xff0c;既能实现流量精细化管控&#xff0c;又避免了单点故障风险。本文将带您使用华为eN…...

XML Notepad:Windows平台XML文档编辑与转换的完整解决方案

XML Notepad&#xff1a;Windows平台XML文档编辑与转换的完整解决方案 【免费下载链接】XmlNotepad XML Notepad provides a simple intuitive User Interface for browsing and editing XML documents. 项目地址: https://gitcode.com/gh_mirrors/xm/XmlNotepad XML No…...

语义通信:从理论到6G落地的关键技术演进与挑战

1. 语义通信的理论基石 语义通信&#xff08;Semantic Communication, SemCom&#xff09;的核心思想与传统通信有着本质区别。传统通信追求的是"准确传输比特流"&#xff0c;而语义通信关注的是"有效传递信息的意义"。这就像两个人对话&#xff1a;传统通…...

OpenGL之标准化设备坐标(Normalized Device Coordinate =NDC)

NDC坐标本质是比例1. 设备无关性NDC 使图形渲染与屏幕分辨率无关。无论屏幕是 1280720 还是 19201080&#xff0c;同样的 NDC 坐标都会渲染出相同比例的图形&#xff08;图形会随着分辨率变化而自动拉伸&#xff09;&#xff0c;表现如下&#xff1a;┌────────────…...

Spring Boot 3.2项目实战:5分钟搞定Tomcat虚拟线程配置,让你的接口吞吐量翻倍

Spring Boot 3.2虚拟线程实战&#xff1a;Tomcat配置优化与性能飞跃指南 当你的电商大促接口突然面临每秒上万请求&#xff0c;或者文件上传服务在高并发下响应缓慢时&#xff0c;传统线程池往往成为性能瓶颈。Spring Boot 3.2与Java 21的虚拟线程组合&#xff0c;正在重新定义…...

2026年AI前20岗位薪酬出炉!搞AI大模型的远超同行?

AI相关&#xff0c;细分技术领域&#xff0c;薪资前20岗位&#xff0c;都有哪些。 今天这篇文章与铁铁们分享一下。 1 薪资榜单 如下图所示&#xff0c;排名第一&#xff1a;深度学习算法工程师&#xff0c;平均月薪达到3万1千&#xff1b; 排名第二的架构师&#xff0c;薪资与…...

E-Hentai Downloader 终极使用指南:从零开始掌握开源项目配置教程

E-Hentai Downloader 终极使用指南&#xff1a;从零开始掌握开源项目配置教程 【免费下载链接】E-Hentai-Downloader Download E-Hentai archive as zip file 项目地址: https://gitcode.com/gh_mirrors/eh/E-Hentai-Downloader 你是否经常在E-Hentai网站上遇到下载困难…...

ChatBI 开源产品实战解析:从语义层到Agent,如何选择你的AI数据助手?

1. 为什么企业需要AI数据助手&#xff1f; 想象一下这个场景&#xff1a;市场部的小王需要统计上季度各区域的销售数据&#xff0c;他对着Excel表格里密密麻麻的数字发愁&#xff0c;不得不找IT部门帮忙写SQL查询。三天后拿到数据时&#xff0c;业务窗口期已经错过——这是很多…...

大模型“预训练”是怎么回事

经常在想&#xff0c;大模型是怎么学会“理解和生成语言”的。仔细看&#xff0c;它的训练过程其实很有规律&#xff0c;简单讲可以拆解成几个步骤。数据准备 训练大模型之前&#xff0c;最重要的是数据。我看到的做法是从各种网络资源收集海量文本&#xff0c;比如网页、书籍、…...