磁盘io查看命令iostat与网络连接查看命令netstat

1. iostat的使用场景

首先iostat命令隶属于sysstat软件包。iostat专门用来查看主机上每个磁盘设备的io情况,包括像每秒的读写数据情况,磁盘平均io时间,设备io繁忙情况等等。

1.1 iostat的普通输出解释

首先是主机的架构,主机名,时间日期,cpu的架构和核数。

第二行是cpu的使用分配

字段中文含义单位经验阈值
%user用户态 CPU%
%nicenice 调度的用户态 CPU%
%system内核态 CPU%
%iowaitCPU 空闲且等 I/O%>20 % 关注
%steal虚拟化“偷”走的 CPU%>5 % 关注
%idle真正空闲%

第三行是关于磁盘io的简单情况介绍

字段含义单位
Device设备(或分区)名称,如 sda、nvme0n1
tps每秒向该设备发起的 I/O 请求次数(合并后)次/秒
kB_read/s每秒从设备读取的数据量KB/秒
kB_wrtn/s每秒向设备写入的数据量KB/秒
kB_dscd/s每秒向设备 丢弃/trim 的数据量KB/秒
kB_read从开机到当前累计读取总量KB
kB_wrtn从开机到当前累计写入总量KB
kB_dscd从开机到当前累计丢弃总量KB

1.2 iostat的扩展输出解释

查看扩展输出时输入命令 iostat -x,主要用来查看磁盘io的核心指标。

首先指出的是,iostat的数据全部来源于内核数据/proc/diskstats文件

字段中文含义单位正常阈值/建议排查要点
r/s每秒 读 I/O 请求 次数次/s读密集型业务高值正常
w/s每秒 写 I/O 请求 次数次/s写密集型业务高值正常
rkB/s每秒  数据量KB/s观察业务峰谷
wkB/s每秒  数据量KB/s同上
rrqm/s(rqm为request merge简称)每秒 合并读请求 次数次/s越大越好合并率高 → 减少寻道
wrqm/s每秒 合并写请求 次数次/s越大越好同上
r_await读请求平均等待时间(排队+服务)ms<10 ms(SSD)<20 ms(HDD)高值 → 磁盘瓶颈
w_await写请求平均等待时间(排队+服务)ms同上同上
aqu-sz平均队列长度<1 轻载,>5 重载排队严重需扩容/优化
rareq-sz读请求 平均块大小KB>64 KB 顺序 I/O小块随机需优化
wareq-sz写请求 平均块大小KB同上同上
svctm已废弃! 设备服务时间ms忽略内核不再提供准确值
%util设备忙碌百分比%<70 % 安全,>80 % 瓶颈100 % ≠ 饱和需结合队列

平均队列长度(aqu-sz)就是 “采样周期内,设备队列中 等待 + 正在处理 的 I/O 请求数量的平均值”。它直接告诉你 磁盘有多“堵车”

平均请求块大小req-sz(Average Request Size)
= 在 一次采样周期内所有读/写 I/O 请求的数据量总和 ÷ 请求次数总和
结果通常用 “扇区数”“KB” 表示,直观反映 每次 I/O 请求的平均数据块大小

平均等待时间await(average wait)

=在一次采样周期内,所有读写io请求的平均处理时间(包括排队等待和io时间)

磁盘繁忙程度util

=在一次采样周期内,有磁盘io的时间/采样周期时间,表示了磁盘的繁忙程度。

iostat 的 “采样时间” 并不是写死在代码里的常量,而是由你 在命令行显式指定 的:

  • 不指定任何时间参数

    iostat

    → 只输出 一次 从系统启动到现在的 累计平均值,没有周期性采样 。

  • 指定 interval

    iostat [可选参数] <interval> [count]
    • <interval> 单位为 ,表示两次采样之间的间隔;

    • [count] 表示一共采多少次;缺省 count 时无限循环

事例如下:

iostat -dk 2 5   # 每 2 秒采样一次,共采 5 次
iostat -x 1      # 每 1 秒采样一次,无限循环直到 Ctrl-C

2.  netstat的使用

netstat 的核心功能一句话概括:
“把操作系统里所有网络相关的状态、端口、路由、接口和进程信息一次性打印出来”

2.1 netstat输出字段的意义

列名一句话说明
Proto协议:TCP 还是 UDP。
Recv-Q本地接收队列里 还没被应用读走 的字节数。
Send-Q本地发送队列里 还没被对端确认 的字节数。
Local Address本机 IP:端口。
Foreign Address远端 IP:端口(监听端口显示为 0.0.0.0:* 或 :::*)。
State连接状态,TCP 常见:LISTEN(监听)、ESTABLISHED(已连接)、TIME_WAIT(等待关闭)等。

还有常用的参数如下表

参数记忆口诀作用
-tTCP只看 TCP
-uUDP只看 UDP
-nNumeric不解析域名/端口,直接显示数字
-lListen只看监听的端口
-pPID显示进程号/进程名
-aAll既看监听也看已建立连接
-rRoute打印路由表(等同 ip route
-iInterface显示网口统计(流量/丢包)
-sStatistics打印各协议(TCP/UDP/ICMP)累计统计
-cContinuous每秒刷新一次(实时 top 效果)

2.2 netstat的几个使用场景

1️⃣ 看谁在监听什么端口(排查端口冲突)
netstat -tunlp        # Linux
netstat -ano | findstr LISTENING   # Windows
  • -t 只列 TCP;-u 只列 UDP;-n 用数字地址;-l 只列监听;-p 带进程 PID。

为什么pid后面显示为-

你在使用 netstat -tunlp 时看到某些连接的 PID 显示为 -,这通常是因为当前用户没有足够的权限去查看该 socket 的进程信息。

原因详解:

  • netstat -p 需要读取 /proc/net/tcp/proc/net/udp 等内核接口,并进一步通过 inode 去 /proc/[pid]/fd/ 中查找对应的 socket。

  • 如果该 socket 是由另一个用户(尤其是 root)创建的,而你当前不是 root 用户,就无法访问其进程信息,PID 就会显示为 -

  • 这并不代表端口没有被占用,只是你无权查看是谁占用的。

2️⃣ 查端口被哪个进程占用
lsof -i:3306 || netstat -tunlp | grep 3306

lsof,没有就 netstat 过滤出 PID,再 kill -9 即可

lsofList Open Files)是 Linux 下非常强大的排查工具,它不仅可以查看哪些文件被哪些进程打开,还能用来查看端口被哪个进程占用,功能比 netstat 更直观、信息更全。

3️⃣ 统计当前各 TCP 状态数量(排查半开连接、SYN Flood)
netstat -ant | awk '/^tcp/ {++S[$NF]} END {for(i in S) print i,S[i]}'

4️⃣ 实时刷新(像 top 一样)

netstat -c 1

5️⃣ 看路由表(快速确认网关)

netstat -rn           # Linux
netstat -r            # Windows

字段解释

  1. Destination
    目标网络或主机地址;0.0.0.0 表示“默认路由”。

  2. Gateway
    下一跳地址;0.0.0.0(或*)代表“直连网络”,无需网关,直接发到本地子网。

  3. Genmask / Netmask
    与 Destination 配合构成网络前缀。0.0.0.0 对应默认路由;255.255.255.0 对应 /24

  4. Flags(常用字母)

    • U Route is up

    • G 使用网关(Gateway 字段非 0)

    • H 目标是一个主机(host route),而非网络

    • D 由 ICMP 重定向或守护进程动态安装

    • M 被路由守护进程修改或重定向

    • ! 拒绝路由(reject/blackhole)

  5. MSS
    此路由上 TCP 连接的默认 最大报文段长度;通常为空或 0,表示使用路径 MTU 发现。

  6. Window
    早期用于 TCP 窗口大小 的静态值;现代内核已忽略,多为 0。

  7. irtt (initial RTT)
    初始往返时间估计值(毫秒),仅影响旧版路由度量;通常 0。

  8. Iface
    报文要从哪个接口发出去,如 eth0wlan0en0utun3 等。

6️⃣ 看接口流量统计(丢包、错误)

netstat -i            # Linux

字段全称含义
Iface / NameInterface接口名字,如 eth0wlan0en0utun3
MTUMaximum Transmission Unit该接口一次能发多少字节的 IP 载荷(不含二层头)。常见 1500(以太网)、9000(巨帧)。
RX-OK / Ipkts / PacketsReceived OK成功接收且无错误的帧数。
RX-ERR / IerrsReceived Errors接收时检测到的错误帧数(CRC、对齐、长度等)。
RX-DRP / IdropReceived Drops帧无错,但被内核主动丢弃(通常因缓冲区满)。
RX-OVR / OerrsRX Overruns硬件/驱动来不及把帧从网卡搬进内存而丢包。
TX-OK / OpktsTransmitted OK成功发送的帧数。
TX-ERR / OerrsTransmit Errors发送时产生的错误。
TX-DRPTransmit Drops发送路径被丢弃(队列满、策略丢包)。
TX-OVRTX Overruns内核来不及把帧送到网卡,硬件队列溢出。
Flg / FlagsInterface Flags接口状态位,见下方“Flag 字母表”。

8️⃣ 查看协议级统计(定位 TCP 重传、丢包)
netstat -s

输出如下:

tovwang@VM-123-217-tencentos ~]$ netstat -s
Ip:Forwarding: 22170479 total packets received1 with invalid addresses0 forwarded0 incoming packets discarded2170478 incoming packets delivered2188216 requests sent out96 dropped because of missing routeOutTransmits: 2188216
Icmp:418166 ICMP messages received0 input ICMP message failedICMP input histogram:echo requests: 418162echo replies: 4419676 ICMP messages sent0 ICMP messages failedOutRateLimitHost: 20ICMP output histogram:destination unreachable: 1509echo requests: 5echo replies: 418162
IcmpMsg:InType0: 4InType8: 418162OutType0: 418162OutType3: 1509OutType8: 5
Tcp:221352 active connection openings6 passive connection openings0 failed connection attempts5748 connection resets received5 connections established1629477 segments received1655469 segments sent out627 segments retransmitted0 bad segments received5997 resets sent
Udp:115046 packets received1529 packets to unknown port received0 packet receive errors116681 packets sent0 receive buffer errors0 send buffer errors
UdpLite:
TcpExt:2267 TCP sockets finished time wait in fast timer15393 delayed acks sentQuick ack mode was activated 282 times31854 packet headers predicted622920 acknowledgments not containing data payload received195993 predicted acknowledgmentsTCPSackRecovery: 157Detected reordering 106 times using SACK4 congestion windows fully recovered without slow startTCPDSACKUndo: 241 congestion windows recovered without slow start after partial ackTCPLostRetransmit: 33TCPSackFailures: 1169 fast retransmits6 retransmits in slow startTCPTimeouts: 66TCPLossProbes: 509TCPLossProbeRecovery: 200TCPSackRecoveryFail: 8TCPBacklogCoalesce: 8TCPDSACKOldSent: 282TCPDSACKRecv: 114TCPDSACKOfoRecv: 237 connections reset due to unexpected data5747 connections reset due to early user close1 connections aborted due to timeoutTCPDSACKIgnoredNoUndo: 11TCPSackMerged: 4TCPSackShiftFallback: 342TCPRcvCoalesce: 226743TCPOFOQueue: 182TCPOrigDataSent: 834124TCPDelivered: 1055180TcpTimeoutRehash: 65TcpDuplicateDataRehash: 19TCPDSACKRecvSegs: 117
IpExt:InMcastPkts: 6179InOctets: 211864985OutOctets: 380262294InMcastOctets: 222444InNoECTPkts: 2196962
MPTcpExt:

netstat -s 会把 IP、ICMP、TCP、UDP 四大协议(以及 IPv6 对应版本)的 内核累计统计 全部打印出来,主要分成 “计数器”“错误/异常” 两大类,可直接用来判断 丢包、重传、队列溢出 等故障。下面给出 每个协议最常被关注的指标对应含义

① IP 层(网络层)
关键词含义
total packets received系统启动以来收到的 IP 包总数
forwarded被本机转发的包数(>0 说明本机在做路由器)
incoming packets discarded因无路由/内存不足等被丢弃的包
incoming packets delivered真正交到上层协议的包
dropped because of missing route路由缺失导致丢包

② ICMP 层
关键词含义
ICMP messages received/sent收/发 ICMP 报文总数
ICMP input histogram分类计数:目的不可达、超时、重定向…
InCsumErrors校验和错误 → 可能线路故障或攻击

③ TCP 层(排查连接质量最常用)
关键词含义
Active opens / Passive opens主动/被动连接建立次数
segments retransmitted重传段数 —— 高值说明网络抖动或拥塞
retransmit timeouts超时重传次数
listen queue overflows监听队列溢出 → 应用 accept() 太慢
failed connection attempts三次握手失败次数
packets pruned from receive queue因队列满被丢弃的 TCP 数据

④ UDP 层
关键词含义
InDatagrams / OutDatagrams收/发 UDP 数据报总数
RcvbufErrors / SndbufErrors接收/发送缓存满导致丢包
NoPorts目的端口未开放 的 ICMP 端口不可达

实战示例:快速定位问题

# 1) 查重传是否过多
netstat -s | grep -E 'segments retransmitted|retransmit timeouts'# 2) 查监听队列是否溢出
netstat -s | grep 'listen queue overflow'# 3) 查 UDP 丢包
netstat -su | grep -E 'RcvbufErrors|SndbufErrors'

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux ps -ef 命令解析

ps 是 Linux 系统中用于查看进程状态的标准命令&#xff0c;-ef 是其参数组合&#xff0c;用于输出系统范围内所有进程的完整信息。以下是对该参数的详细解析&#xff1a; 1. 核心参数含义-e表示显示所有进程&#xff08;包括系统进程和用户进程&#xff09;&#xff0c;相当于…

2025年湖北中级注册安全工程师报考那些事

2025年湖北中级注册安全工程师报考那些事各位从事建筑安全的人员看过来&#xff0c;注册安全工程师是你们行业认可度较为高的证书。关于报考无论是安全相关专业跟不相关的专业都是可以报考的。只是年份要求不同。 本科&#xff1a;相关专业3年&#xff0c;不相关专业4年。 专科…

容器与虚拟机的本质差异:从资源隔离到网络存储机制

目录 专栏介绍 作者与平台 您将学到什么&#xff1f; 学习特色 容器与虚拟机的本质差异&#xff1a;从资源隔离到网络存储机制 一、容器与虚拟机的本质区别 1.1 资源抽象层次差异 1.2 资源消耗与性能对比 1.3 隔离性深度差异 二、容器网络基础架构 2.1 Docker网络模型…

FPGA实现SRIO高速接口与DSP交互,FPGA+DSP异构方案,提供3套工程源码和技术支持

目录1、前言&#xff1a;SRIO在FPGADSP架构中的作用工程概述免责声明2、相关方案推荐我已有的所有工程源码总目录----方便你快速找到自己喜欢的项目我这里已有的FPGADSP异构方案我这里已有的 GT 高速接口解决方案3、工程详细设计方案工程设计原理框图FPGA端工程源码FPGA端SRIO从…

网络安全第15集

前言&#xff1a; 挖不到一点&#xff0c;又来学习了 内容&#xff1a; 1、根据端口扫描可以得到相关的信息 端口扫描&#xff0c;根据扫描的端口&#xff0c; 可以得到目标服务器开启的应用服务器&#xff0c;的具体相关信息&#xff0c;数据库的相关信息 web服务器&…

【Linux】重生之从零开始学习运维之Mysql事务

事务开启事务begin;提交事务commit;select * from stu;事务回滚begin; select * from stu; update stu set age100 where id10; select * from stu; rollback;事务保存点rollback to p2; rollback to p1;因回到p1&#xff0c;无后面记录&#xff0c;所以无法回到p2、p3保存点。…

深入理解Java Map的entrySet()方法

文章目录深入理解Java Map的entrySet()方法一、entrySet()方法概述二、为什么需要entrySet()三、entrySet()的核心特性四、Map.Entry接口详解五、entrySet()的典型使用场景1. 遍历Map2. 批量修改值3. 过滤Map4. 并行处理六、性能考虑七、Java 8的增强八、注意事项九、总结深入理…

webpack 原理及使用

【点赞收藏加关注,前端技术不迷路~】 一、webpack基础 1.核心概念 1)entry:定义入口,webpack构建的第一步 module.exports ={entry:./src/xxx.js } 2)output:出口(输出) 3)loader:模块加载器,用户将模块的原内容按照需求加载成新内容 比如文本加载器raw-loade…

5.1 动⼿实现⼀个 LLaMA2 ⼤模型

Meta&#xff08;原Facebook&#xff09;于2023年2月发布第一款基于Transformer结构的大型语言模型LLaMA&#xff0c;并于同年7月发布同系列模型LLaMA2。5.1.1 定义超参数自定义一个ModelConfig类&#xff0c;来存储和记录超参数&#xff0c;这里继承了PretrainedConfig类&…

【Python】自动化GIT提交

在日常开发中&#xff0c;我们经常需要频繁地向 Git 仓库提交代码。虽然 git add、git commit、git push 这几个命令并不复杂&#xff0c;但重复操作容易出错&#xff0c;也浪费时间。本文将介绍如何使用 Python 脚本自动化完成 Git 提交流程&#xff0c;让开发更高效&#xff…

LeetCode 85. 最大矩形

预备知识 84.柱状图中最大的矩形&#xff1a;题目链接 思路&#xff1a;在求柱状图最大面积时&#xff0c;我们可以枚举每一根柱子&#xff0c;并且假设这根柱子就是最大面积中最低的那一根柱子。由于最大面积的选中的柱子中&#xff0c;矩形的高取决于最低的柱子&#xff0c…

Java Collections工具类

Collections 类:Java 中提供的一组静态方法&#xff0c;用于操作集合。常用方法: 1. 排序 Collections.sort(List<T> list) 对指定列表进行升序排序。 Arrays.asList 将一个数组转化为一个List集合 List<Integer> numbers Arrays.asList(5, 2, 8, 1); Collections…