Linux-常用监控工具

在这里插入图片描述

以下是对 Linux 系统中常用监控工具(netstatssdmesg)的系统性介绍,涵盖其核心功能、典型用法及实际应用场景,帮助您分析系统状态和内核参数调整后的效果:


1. netstat -s:网络协议栈统计监控

功能

netstat 用于显示网络连接、路由表、接口统计等信息,-s 参数专注于网络协议栈的详细统计(包括 TCP、UDP、ICMP 等)。
适用场景

  • 分析 TCP 连接错误、重传、丢包等网络问题。
  • 验证 sysctl 网络参数调整后的效果(如 tcp_tw_reusetcp_syncookies)。
关键输出解析
$ netstat -s
# TCP 统计部分
Tcp:12345 active connections openings   # 主动建立的连接数6789 passive connection openings    # 被动接受的连接数100 failed connection attempts      # 失败连接尝试(如 SYN 重试超限)500 segments retransmitted          # 数据包重传次数(高值可能预示网络不稳定)200 invalid SYN cookies received    # 无效 SYN Cookie(可能遭受 SYN Flood 攻击)300 resets sent                      # RST 包发送次数(异常关闭连接)# UDP 统计部分
Udp:50 packets received    # 接收的 UDP 包总数10 packet receive errors  # 接收错误(如缓冲区溢出)
常用参数
  • -s:显示所有协议统计。
  • -t:仅显示 TCP 统计。
  • -u:仅显示 UDP 统计。
  • -c:持续刷新输出(实时监控)。
实际应用
  • 检测网络丢包
    netstat -s | grep -E "segments retransmitted|packet receive errors"
    
  • 分析连接失败
    netstat -s | grep "failed connection attempts"
    

2. ss -s:套接字状态统计与监控

功能

ss(Socket Statistics)是 netstat 的现代替代工具,性能更高,支持更详细的套接字信息。ss -s 显示套接字状态的汇总统计。
适用场景

  • 快速查看系统当前连接数、不同状态(如 ESTABLISHEDTIME-WAIT)的分布。
  • 监控高并发场景下的连接队列溢出(结合 net.core.somaxconn 调优)。
关键输出解析
$ ss -s
Total: 456  
TCP:   320 (estab 200, closed 80, orphaned 0, timewait 40)  
UDP:   10  
RAW:   1  
FRAG:  0  # 连接状态详解:
# - estab:已建立的连接数
# - timewait:TIME-WAIT 状态连接数(过多可能需调整 tcp_max_tw_buckets)
# - orphaned:无主连接(可能应用未正确关闭)
常用参数
  • -s:显示汇总统计。
  • -t:仅显示 TCP 套接字。
  • -u:仅显示 UDP 套接字。
  • -n:禁用域名解析(加快输出)。
  • -o:显示计时器信息(如连接超时)。
实际应用
  • 查看 TIME-WAIT 连接数
    ss -s | grep "timewait"
    
  • 监控连接队列溢出
    ss -tnlp | grep "LISTEN"  # 查看监听队列的 Recv-Q(当前积压数)和 Send-Q(最大容量)
    

3. dmesg:内核日志与硬件事件监控

功能

dmesg 显示内核环形缓冲区中的日志,记录硬件事件、驱动状态、内核错误等信息。
适用场景

  • 检测内核参数调整后的错误或警告(如内存分配失败、网络丢包)。
  • 排查硬件故障或驱动兼容性问题。
关键输出解析
$ dmesg
[ 1234.567] IPv4: martian source 192.168.1.100 from 10.0.0.1  # 异常源 IP(路由问题)
[ 2345.678] TCP: time wait bucket table overflow              # TIME-WAIT 连接超过限制
[ 3456.789] Out of memory: Kill process 1234 (java)           # 内存耗尽触发 OOM Killer
[ 4567.890] eth0: link up                                     # 网卡链路状态变化
常用参数
  • -T:显示人类可读的时间戳。
  • -k:仅显示内核消息。
  • -l:按日志级别过滤(如 -l err 仅显示错误)。
  • -H:隐藏时间戳和主机信息。
实际应用
  • 实时监控内核事件
    dmesg -w  # 持续输出新日志(类似 tail -f)
    
  • 筛选网络相关错误
    dmesg | grep -iE "tcp|udp|ipv4|eth0"
    
  • 查看 OOM 事件
    dmesg | grep "Out of memory"
    

4. 工具对比与联合使用

工具核心功能优势典型场景
netstat -s协议栈统计(TCP/UDP/ICMP)历史兼容性强,输出直观分析网络错误、重传统计
ss -s套接字状态与连接统计性能高效,支持更多细节实时监控连接数、队列积压
dmesg内核日志与硬件事件直接反映内核级问题排查内核参数错误、硬件故障
联合使用案例

场景:调整 net.ipv4.tcp_max_syn_backlog 后验证 SYN 队列溢出情况。

  1. 查看当前 SYN 队列积压
    ss -tnl | grep ":80"  # 查看 Recv-Q(当前积压数)与 Send-Q(队列容量)
    
  2. 监控 SYN 重传统计
    netstat -s | grep "SYNs to LISTEN"
    
  3. 检查内核日志中的队列溢出警告
    dmesg | grep "TCP: Possible SYN flooding"
    

5. 自动化监控与扩展工具

  • 脚本化监控
    # 定期记录 TCP 统计到文件
    while true; donetstat -s | grep "segments retransmitted" >> /var/log/tcp_retrans.logsleep 60
    done
    
  • 高级工具扩展
    • sar(sysstat 包):长期性能数据收集(如网络吞吐、CPU 使用率)。
    • nmon:实时系统资源监控(支持网络、磁盘、CPU 等)。
    • Prometheus + Grafana:可视化监控与告警。

总结

通过 netstat -sss -sdmesg 的组合使用,可以全面监控网络状态、套接字行为及内核事件,尤其在调整 sysctl 参数后:

  1. netstat -s 用于分析协议层错误(如重传、丢包)。
  2. ss -s 快速定位连接状态异常(如 TIME-WAIT 堆积)。
  3. dmesg 捕获内核级警告(如内存不足、队列溢出)。
    结合这些工具,可精准评估调优效果并快速排查问题。

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

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

相关文章

Linux系统:详解文件描述符与重定向原理以及相关接口(open,read,write,dup2)

本节重点 从狭义与广义角度理解文件理解文件描述符掌握open,write,read系统调用理解重定向的概念与原理掌握重定向的指令操作stdout与stderr的比较为什么存在stderr? 一、理解“文件” 1.1 狭义角度 在狭义层面,Linux文件是磁盘或存储设备上连续或分…

美国市场变局:沃尔玛95%覆盖率的3个流量入口重构策略

过去几年,美国零售市场经历了极大的变化。电商发展迅猛,加上疫情影响,消费者购物习惯出现转向。而作为美国零售巨头,沃尔玛(Walmart)凭借高达95%的线下覆盖率,始终是品牌和卖家不可忽视的渠道。…

一文详解 Linux下的开源打印系统CUPS(Common UNIX Printing System)

文章目录 前言一、CUPS 简介二、CUPS 常用指令解析2.1 安装 CUPS2.2 启动/重启服务2.3 添加打印机(核心操作)2.4 设置默认打印机2.5 打印文件2.6 查看打印任务2.7 取消打印任务2.8 查看、移除已添加的打印机 三、调试与常见问题3.1 日志查看3.2 驱动问题…

React useCallback函数

应用场景:父组件向子组件传递函数类型的props时

python 桌面程序开发简述及示例

Python桌面程序开发简述及示例 Python凭借其简洁的语法和丰富的库支持,非常适合开发跨平台的桌面应用程序。本文将介绍Python桌面开发的主要方法,并提供实际代码示例。 一、Python桌面开发主要方法 1.1 Tkinter(标准库) Python内置的GUI库,适合开发简单桌面应用 1.2 …

数字智慧方案5875丨智慧交通枢纽综合解决方案(43页PPT)(文末有下载方式)

篇幅所限,本文只能提供部分资料内容,完整资料请看下面链接 https://download.csdn.net/download/2301_78256053/89575708 资料解读:智慧交通枢纽综合解决方案 详细资料请看本解读文章的最后内容。 随着城市化进程的加速和交通需求的不断增…

企业级分布式 MCP 方案

飞书原文档链接地址:https://ik3te1knhq.feishu.cn/wiki/D8kSwC9tFi61CMkRdd8cMxNTnpg 企业级分布式 MCP 方案 [!TIP] 背景:现阶段 MCP Client 和 MCP Server 是一对一的连接方式,若当前 MCP Server 挂掉了,那么 MCP Client 便不…

【AI提示词】奥卡姆剃刀思维模型专家

提示说明 一位专注于奥卡姆剃刀思维模型的专业人士,擅长将简洁性原则应用于复杂问题的分析与解决。 提示词 # Role: 奥卡姆剃刀思维模型专家## Profile - language: 中文 - description: 一位专注于奥卡姆剃刀思维模型的专业人士,擅长将简洁性原则应用…

2.1 行列式

引言 行列式是线性代数的核心工具,贯穿矩阵运算、特征值计算与微分方程求解。本文系统梳理2.1节核心考点,结合公式速查与典型例题,助你高效突破行列式难点! 考点一:数值型行列式计算 1️⃣ 行列式的定义 (1) 定义方…

单词规律(简单)

思路和同构字符串那道题一样。、但是这道题要注意的地方就是,检查 pattern 和 s 的单词数量是否一致以及在进行字符串比较的时候应该用equals来进行比较,而不能用“!”,“!”比较的是对象引用而非内容。 class Soluti…

【C++】认识map和set

目录 前言: 一:认识map和set 二:map和set的使用 1.set的使用 2.map的使用 三:map的insert方法返回值 四:map的[ ]的使用 五:multiset和multimap 六:map和set的底层数据结构 七&#x…

Mybatis中的一级二级缓存扫盲

思维导图: MyBatis 提供了一级缓存和二级缓存机制,用于提高数据库查询的性能,减少对数据库的访问次数。(本质上是减少IO次数)。 一级缓存 1. 概念 一级缓存也称为会话缓存,它是基于 SqlSession 的缓存。在同…

uniapp 实现低功耗蓝牙连接并读写数据实战指南

在物联网应用场景中,低功耗蓝牙(BLE)凭借其低能耗、连接便捷的特点,成为设备间数据交互的重要方式。Uniapp 作为一款跨平台开发框架,提供了丰富的 API 支持,使得在多个端实现低功耗蓝牙功能变得轻松高效。本…

OpenSSL应用实践:嵌入式数据安全实战指南

文章目录 OpenSSL应用实践:嵌入式数据安全实战指南一、嵌入式安全现状与OpenSSL适配方案1.1 嵌入式安全挑战1.2 OpenSSL精简方案二、开发环境搭建2.1 交叉编译工具链2.2 OpenSSL交叉编译三、核心功能实现3.1 AES-GCM加密实践四、实战项目:安全OTA升级4.1 系统架构4.2 关键代码…

harmonyOS 手机,双折叠,平板,PC端屏幕适配

由于HarmonyOS设备的屏幕尺寸和分辨率各不相同,开发者需要采取适当的措施来适配不同的屏幕。 1.EntryAbility.ets文件里:onWindowStageCreate方法里判断设备类型, 如果是pad,需全屏展示(按客户需求来,本次…

跟韩学AiOps系列之2025学MySQL系列_如何在MySQL中开启和提交事务?!

跟韩学AiOps系列之2025学MySQL系列_如何在MySQL中开启和提交事务?! 文章目录 一、事务的基本操作1. 开启事务2. 执行事务内操作3. 提交事务4. 回滚事务 二、验证示例(适用于 MySQL 5.7)步骤 1:准备测试表和数据步骤 2&#xff1a…

Java生成微信小程序码及小程序短链接

使用wx-java-miniapp-spring-boot-starter 生成微信小程序码及小程序短链接 在pom.xml文件中引入依赖 <dependency><groupId>com.github.binarywang</groupId><artifactId>wx-java-miniapp-spring-boot-starter</artifactId><version>4.7…

如何让通义千问大模型支持结构化输出?

之前的文章提到通义千问API无法通过with_structured_output/json schema的方式支持结构化输出&#xff0c;如果就是想使用通义千问大模型做结构化输出&#xff0c;应该怎么办呢&#xff1f;有两种办法 使用Ollama来运行通义千问大模型 从Ollama博客文章 Structured output 中…

一条 SQL 查询语句是如何执行的(MySQL)

第一讲&#xff1a;一条 SQL 查询语句是如何执行的 总览图示 MySQL 查询的执行流程可以大致分为以下步骤&#xff08;如图所示&#xff09;&#xff1a; 连接器&#xff08;Connection&#xff09;查询缓存&#xff08;Query Cache&#xff0c;MySQL 8.0 已废弃&#xff09;…

汽车OTA在线升级法规分析

摘要 本文介绍了R156法规即《关于批准车辆的软件升级和软件升级管理体系统一规定的法规》、该法规专注于汽车软件升级功能&#xff0c;并为此提出了一系列具体要求&#xff0c;旨在确保软件升级流程的安全性、可控性和合规性&#xff0c;从而顺应汽车行业智能化、联网化的发展趋…