linux 系统状态查看

环境信息

  • Centos 7 kernel 5.4.221

启动过程

systemd 管理的系统中,提供了工具 systemd-analyze 用于分析具体的启动过程,使用 systemd-analyze --help 查看使用帮助

检查系统启动时间

使用 systemd-analyze 命令会显示系统启动所用的时间,等同于 systemd-analyze time

# systemd-analyze 
Startup finished in 1.830s (kernel) + 36.827s (userspace) = 38.657s
graphical.target reached after 12.604s in userspace

systemd-analyze blame 列出系统上各个 Unit 启动的时间

# systemd-analyze blame
6.414s wazuh-agent.service
3.161s dracut-initqueue.service
2.473s network.service
1.004s watchdog.service
...
45ms sysstat.service
14ms plymouth-switch-root.service
14ms systemd-journald.service
4ms systemd-logind.service
3ms sys-kernel-config.mount
3ms initrd-udevadm-cleanup-db.service
3ms systemd-random-seed.service
2ms google-shutdown-scripts.service

列出系统各个 Unit 启动消耗的时间

# systemd-analyze critical-chain
The time when unit became active or started is printed after the "@" character.
The time the unit took to start is printed after the "+" character.

graphical.target @12.604s
└─multi-user.target @12.601s
└─skylight-agent.service @36.639s
└─network.target @9.073s
└─NetworkManager.service @8.795s +275ms
└─dbus.service @8.788s
└─basic.target @8.774s
└─sockets.target @8.772s
└─snapd.socket @8.766s +5ms
└─sysinit.target @8.669s
└─cloud-init.service @6.850s +1.811s
└─systemd-networkd-wait-online.service @4.970s +1.871s
└─systemd-networkd.service @4.864s +91ms
└─network-pre.target @4.850s
└─cloud-init-local.service @3.228s +1.620s
└─systemd-remount-fs.service @1.113s +93ms
└─systemd-fsck-root.service @1.030s +69ms
└─systemd-journald.socket @853ms
└─-.mount @692ms
└─-.slice @692ms

查看内存信息

内存相关概念说明:

  • VSS ,Virtual Set Size , VIRT - 虚拟耗用内存(包含共享库占用的内存), 通常 VIRT 是系统承诺分配给应用的内存,不是实际使用的内存
  • RSS , Resident Set Size , RES - 实际使用物理内存(包含共享库占用的内存)
  • PSS , Proportional Set Size - 实际使用的物理内存(比例分配共享库占用的内存)。 top 命令中的 SHR 列展示的就是共享库按比例分配给进程的内存
  • USS , Unique Set Size - 进程独自占用的物理内存(不包含共享库占用的内存)

系统内存使用量统计

free

$ free -h
total used free shared buff/cache available
Mem: 15Gi 7.8Gi 707Mi 449Mi 7.0Gi 6.9Gi
Swap: 30Gi 1.0Gi 29Gi

ps

例如查看使用内存排名前十的进程:

ps aux | sort -k4,4nr | head -n 10

sar 命令

使用 sar 命令检查系统上的内存及 Swap 使用情况

查看某个进程使用的内存量

比如检查 docker 使用的内存量,首先通过 ps 命令查询到 docker 的 PID 信息

$ ps -elf | grep docker
4 S root 1243 1 4 80 0 - 1067527 futex_ Jan03 ? 15:14:45 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

例如此处的 docker 进程的 PID 为 1243

  • 使用 top 命令动态查看 docker 使用的内存信息

    $ top -p 1243
    top - 11:47:40 up 14 days, 2:09, 3 users, load average: 0.65, 1.42, 1.70
    Tasks: 1 total, 0 running, 1 sleeping, 0 stopped, 0 zombie
    %Cpu(s): 1.0 us, 0.6 sy, 0.0 ni, 98.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
    KiB Mem : 32068748 total, 2494500 free, 18536188 used, 11038060 buff/cache
    KiB Swap: 0 total, 0 free, 0 used. 9586340 avail Mem

    PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
    1243 root 20 0 4270108 1.4g 53956 S 1.0 4.6 914:55.80 dockerd
  • 使用 ps aux 命令查看内存使用量

    $ ps aux | grep 1243
    root 1243 4.5 4.6 4270108 1486460 ? Ssl Jan03 914:57 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

    输出结果中

    • 第 3、4 列 (4.5 4.6) 分别表示 cpu 使用率内存使用率
    • 第 5、6 列 (4270108 1486460) 分别表示 虚拟内存使用量物理内存使用量,单位为 k
  • 通过进程的 status 文件查看内存使用

    $ cat /proc/1243/status
    Name: dockerd
    Umask: 0022
    State: S (sleeping)
    Pid: 1243
    PPid: 1
    VmPeak: 4270364 kB
    VmSize: 4270108 kB
    VmLck: 0 kB
    VmPin: 0 kB
    VmHWM: 1562204 kB
    VmRSS: 1492340 kB
    ...

    其中,VmRSS 为进程使用的物理内存

  • 使用 pmap 命令查看进程使用的内存信息

    pmap -x 1243
    pmap -p 1243
  • 使用 pidstat 命令查看进程使用的内存信息

    # pidstat -r -t -p 1424681 1 1
    Linux 6.8.0-1017-aws (U-3TSDMAL9IVFAQ) 11/26/2024 _x86_64_ (4 CPU)

    04:15:40 PM UID TGID TID minflt/s majflt/s VSZ RSS %MEM Command
    04:15:41 PM 408001114 1424681 - 0.00 0.00 34656400 256620 1.59 chrome
    04:15:41 PM 408001114 - 1424681 0.00 0.00 34656400 256620 1.59 |__chrome
    04:15:41 PM 408001114 - 1424696 0.00 0.00 34656400 256620 1.59 |__sandbox_ipc_thr
    04:15:41 PM 408001114 - 1424702 0.00 0.00 34656400 256620 1.59 |__chrome
    04:15:41 PM 408001114 - 1424703 0.00 0.00 34656400 256620 1.59 |__HangWatcher
    04:15:41 PM 408001114 - 1424704 0.00 0.00 34656400 256620 1.59 |__ThreadPoolServi
    04:15:41 PM 408001114 - 1424705 0.00 0.00 34656400 256620 1.59 |__ThreadPoolForeg
    04:15:41 PM 408001114 - 1424706 0.00 0.00 34656400 256620 1.59 |__ThreadPoolForeg

sar 命令用法参考

sar(System Activity Reporter)是查看系统上各项活动统计数据的经典工具。他是系统包 sysstat 的一部分,并且依赖于 sysstat.service

# systemclt enable sysstat
# systemctl start sysstat

要查看 sar 命令用法,请参考 sar --help 或者 man sar

下图列出了 sar 可以观测的各个部分及其命令行选项

sar 采集系统统计数据依赖于 crond 服务,具体配置可以查看 /etc/cron.d/sysstat,默认每 10 分钟归档一次

/etc/cron.d/sysstat
# The first element of the path is a directory where the debian-sa1
# script is located
PATH=/usr/lib/sysstat:/usr/sbin:/usr/sbin:/usr/bin:/sbin:/bin

# Activity reports every 10 minutes everyday
5-55/10 * * * * root command -v debian-sa1 > /dev/null && debian-sa1 1 1

# Additional run at 23:59 to rotate the statistics file
59 23 * * * root command -v debian-sa1 > /dev/null && debian-sa1 60 2

sar 采集的统计数据默认归档于 /var/log/sysstat/ 下。

# ls /var/log/sysstat/
sa12 sa13 sa14 sa15 sa16 sa17 sa18 sa19 sa20 sar11 sar12 sar13 sar14 sar15 sar16 sar17 sar18 sar19

sar 用法提示:

  • sar -A 可以导出所有的统计数据
  • sar 的统计数据支持多种格式。可以使用 sysstat 安装包中的 sadf 命令(用于查看 sar 命令的统计数据)查看,如 JSON(-j)SVG(-g)CSV(-d)

sar 检查系统内存统计数据

假如要查看系统上的整体的内存使用情况,可以参考命令

# sar -r ALL 1
Linux 6.8.0-1015-aws (U-3TSDMAL9IVFAQ) 10/18/2024 _x86_64_ (4 CPU)

02:32:53 PM kbmemfree kbavail kbmemused %memused kbbuffers kbcached kbcommit %commit kbactive kbinact kbdirty kbanonpg kbslab kbkstack kbpgtbl kbvmused
02:32:54 PM 709824 7191784 7831332 48.38 355616 6471148 24765960 51.00 7304484 6628076 656 7136392 819348 20320 86304 244720
02:32:55 PM 709348 7191436 7831680 48.38 355616 6471276 24765960 51.00 7304876 6628076 720 7136644 819348 20348 86392 244752
02:32:56 PM 706212 7188300 7831264 48.38 355616 6471276 24765960 51.00 7304688 6628076 512 7136420 822900 20320 86304 244752
02:32:57 PM 721052 7203152 7819660 48.31 355620 6471496 24766216 51.00 7310564 6628088 536 7142084 819440 20320 86304 244752
02:32:58 PM 720324 7202444 7820452 48.31 355620 6471560 24766216 51.00 7310664 6628108 864 7142140 819312 20320 86304 244752
^C
Average: 713352 7195423 7826878 48.35 355618 6471351 24766062 51.00 7307055 6628085 658 7138736 820070 20326 86322 244746

以下命令展示系统上的 Swap 使用情况统计

# sar -S  1
Linux 6.8.0-1015-aws (U-3TSDMAL9IVFAQ) 10/18/2024 _x86_64_ (4 CPU)

02:33:42 PM kbswpfree kbswpused %swpused kbswpcad %swpcad
02:33:43 PM 31314692 1059840 3.27 2260 0.21
02:33:44 PM 31314692 1059840 3.27 2260 0.21
02:33:45 PM 31314692 1059840 3.27 2260 0.21

sar 检查系统 CPU 统计数据

CPU 整体使用率情况统计

假如要查看系统上的整体的 CPU 使用情况,可以参考命令

# sar -u ALL 1
Linux 6.8.0-1015-aws (U-3TSDMAL9IVFAQ) 10/18/2024 _x86_64_ (4 CPU)

02:42:41 PM CPU %usr %nice %sys %iowait %steal %irq %soft %guest %gnice %idle
02:42:42 PM all 14.29 0.00 1.23 0.00 6.40 0.00 0.49 0.00 0.00 77.59
02:42:43 PM all 9.14 0.00 2.22 0.00 4.20 0.00 0.00 0.00 0.00 84.44
02:42:44 PM all 10.78 0.00 6.13 0.00 8.33 0.00 0.00 0.00 0.00 74.75
02:42:45 PM all 8.60 0.00 1.72 0.00 4.42 0.00 0.00 0.00 0.00 85.26

其中每列数据说明如下:

  • %usr : User CPU Time, 在用户态执行进程所占的 CPU 时间百分比。
  • %nice : Nice CPU Time, 在用户态下以改变了优先级(nice 值)的进程所占的 CPU 时间百分比。
  • %sys : System CPU Time, 在内核态执行进程(系统调用)所占的 CPU 时间百分比。
  • %iowait : I/O Wait, CPU 等待 I/O 完成的时间百分比。
  • %steal : Steal Time, 虚拟化环境中,CPU 等待物理 CPU 被其他虚拟机使用的时间百分比。这个值相对较高是虚拟化环境中的常见现象。
  • %irq : Interrupt Requests, 硬件中断处理所占的 CPU 时间百分比。
  • %soft : Soft IRQ, 软中断处理所占的 CPU 时间百分比。
  • %guest : Guest Time, 虚拟机内部运行进程所占的 CPU 时间百分比。系统上安装了其他虚拟机时会占用此指标。
  • %gnice : Guest Nice Time, 在虚拟机中以改变了优先级运行的进程所占的 CPU 时间百分比。为 0 表示没有 CPU 时间被分配给虚拟机中带有改变优先级的进程。

系统负载相关统计数据

查看系统 CPU 负载情况,命令帮助参考 sar --help-q 选项支持查看:

  • LOAD : Queue length and load average statistics [A_QUEUE],默认值
  • CPU : Pressure-stall CPU statistics [A_PSI_CPU]
  • IO : Pressure-stall I/O statistics [A_PSI_IO]
  • MEM : Pressure-stall memory statistics [A_PSI_MEM]
# sar -q 1 5
Linux 6.8.0-1015-aws (U-3TSDMAL9IVFAQ) 10/18/2024 _x86_64_ (4 CPU)

02:45:55 PM runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15 blocked
02:45:56 PM 1 1269 0.86 1.21 1.07 0
02:45:57 PM 0 1269 0.86 1.21 1.07 0
02:45:58 PM 1 1269 0.95 1.22 1.07 0
02:45:59 PM 0 1269 0.95 1.22 1.07 0
02:46:00 PM 2 1269 0.95 1.22 1.07 0
Average: 1 1269 0.91 1.22 1.07 0

其中每列数据说明如下:

  • runq-sz : Run Queue Size, 表示运行队列中的进程数,即正在等待 CPU 执行的进程数量。
  • plist-sz : Process List Size, 表示进程表中的进程总数(无论进程的状态如何)。
  • ldavg-1 : Load Average over 1 Minute
  • blocked : 表示当前处于阻塞状态的进程数,通常是等待 I/O(例如等待磁盘操作完成)的进程。

CPU 使用率的统计情况

# sar -q CPU 1 3
Linux 6.8.0-1015-aws (U-3TSDMAL9IVFAQ) 10/18/2024 _x86_64_ (4 CPU)

03:06:56 PM %scpu-10 %scpu-60 %scpu-300 %scpu
03:06:57 PM 2.07 1.96 3.89 2.99
03:06:58 PM 2.06 1.96 3.88 1.74
03:06:59 PM 2.06 1.96 3.88 1.94
Average: 2.06 1.96 3.88 2.22

其中每列数据说明如下:

  • %scpu-10 : 过去 10 秒内的 CPU 使用百分比平均值
  • %scpu : 当前时间点的 CPU 使用率。

内存使用率的统计情况

# sar -q MEM 1 5
Linux 6.8.0-1015-aws (U-3TSDMAL9IVFAQ) 10/18/2024 _x86_64_ (4 CPU)

02:48:16 PM %smem-10 %smem-60 %smem-300 %smem %fmem-10 %fmem-60 %fmem-300 %fmem
02:48:17 PM 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
02:48:18 PM 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
02:48:19 PM 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
02:48:20 PM 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
02:48:21 PM 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00

其中每列数据说明如下:

  • %smem : 当前时刻的系统内存使用百分比。
  • %fmem : 当前时刻的文件内存使用百分比。

IO 使用率情况统计

# sar -q IO 1 3
Linux 6.8.0-1015-aws (U-3TSDMAL9IVFAQ) 10/18/2024 _x86_64_ (4 CPU)

03:10:54 PM %sio-10 %sio-60 %sio-300 %sio %fio-10 %fio-60 %fio-300 %fio
03:10:55 PM 0.00 0.00 0.00 0.04 0.00 0.00 0.00 0.04
03:10:56 PM 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
03:10:57 PM 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: 0.00 0.00 0.00 0.01 0.00 0.00 0.00 0.01

sar 检查系统 IO 统计数据

sar -b 检查系统 IO 统计数据

# sar -b 1 5
Linux 6.8.0-1015-aws (U-3TSDMAL9IVFAQ) 10/18/2024 _x86_64_ (4 CPU)

02:54:25 PM tps rtps wtps dtps bread/s bwrtn/s bdscd/s
02:54:26 PM 2.00 0.00 2.00 0.00 0.00 224.00 0.00
02:54:27 PM 4.00 0.00 4.00 0.00 0.00 192.00 0.00
02:54:28 PM 0.00 0.00 0.00 0.00 0.00 0.00 0.00
02:54:29 PM 1.00 0.00 1.00 0.00 0.00 8.00 0.00
02:54:30 PM 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: 1.40 0.00 1.40 0.00 0.00 84.80 0.00

其中每列数据说明如下:

  • tps : Transfers per second, 每秒钟系统执行的 I/O 请求总数(读和写请求的总和)
  • rtps : Read transfers per second, 每秒钟发起的读请求数。
  • wtps : Write transfers per second, 每秒钟发起的写请求数。
  • dtps : Discard transfers per second, 每秒钟的丢弃操作次数。
  • bread/s : Blocks read per second, 每秒钟读取的块数(数据块的单位取决于系统的配置,通常为 512 字节)。
  • bwrtn/s : Blocks written per second, 每秒钟写入的块数
  • bdscd/s : Blocks discarded per second, 每秒钟被丢弃的块数(例如,通过 trim/discard 操作减少 SSD 的写放大)。

sar 统计磁盘读写情况

sar 命令统计磁盘读写相关数据使用选项 -d

# sar -d 1 3
Linux 3.10.0-1160.114.2.el7.x86_64 (zzxhy-admin) 10/18/2024 _x86_64_ (8 CPU)

04:17:07 PM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
04:17:08 PM dev259-0 3.00 0.00 87.00 29.00 0.00 0.67 1.00 0.30

04:17:08 PM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
04:17:09 PM dev259-0 3.00 0.00 78.00 26.00 0.00 0.33 1.00 0.30

04:17:09 PM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
04:17:10 PM dev259-0 3.00 0.00 91.00 30.33 0.00 0.33 1.00 0.30

Average: DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
Average: dev259-0 3.00 0.00 85.33 28.44 0.00 0.44 1.00 0.30

其中每列数据说明如下:

  • DEV : 表示设备名称
  • tps : Transactions per Second, 每秒钟执行的 I/O 操作数(包括读写请求)。
  • rd_sec/s : Read Sectors per Second, 每秒读取的扇区数(扇区的大小通常为 512 字节)。
  • wr_sec/s : Write Sectors per Second, 每秒写入的扇区数。
  • avgrq-sz : Average Request Size, I/O 请求的平均大小(以扇区为单位)。例如,avgrq-sz29.00,表示每个 I/O 请求平均涉及 29 个扇区。
  • avgqu-sz : Average Queue Size, I/O 请求队列的平均长度。
  • await : Average Wait Time, I/O 请求的平均等待时间(以毫秒为单位),包括排队和服务时间。
  • svctm : Service Time, I/O 请求的平均服务时间(以毫秒为单位)。
  • %util : Percentage of CPU Time Used for I/O Operations, 设备的 I/O 操作占用的时间百分比,表示设备忙碌的程度。

sar 统计文件系统分区使用情况

# sar -F 1 3
Linux 3.10.0-1160.114.2.el7.x86_64 (zzxhy-admin) 10/18/2024 _x86_64_ (8 CPU)

04:26:29 PM MBfsfree MBfsused %fsused %ufsused Ifree Iused %Iused FILESYSTEM
04:26:30 PM 534794 512747 48.95 48.95 534097719 2248329 0.42 /dev/nvme0n1p1

04:26:30 PM MBfsfree MBfsused %fsused %ufsused Ifree Iused %Iused FILESYSTEM
04:26:31 PM 534794 512747 48.95 48.95 534097719 2248329 0.42 /dev/nvme0n1p1

04:26:31 PM MBfsfree MBfsused %fsused %ufsused Ifree Iused %Iused FILESYSTEM
04:26:32 PM 534794 512747 48.95 48.95 534097719 2248329 0.42 /dev/nvme0n1p1

Summary: MBfsfree MBfsused %fsused %ufsused Ifree Iused %Iused FILESYSTEM
Summary 534794 512747 48.95 48.95 534097719 2248329 0.42 /dev/nvme0n1p1

其中每列数据说明如下:

  • MBfsfree : Megabytes of Free Filesystem Space, 文件系统中剩余的可用空间,以 MB 为单位。
  • MBfsused : Megabytes of Used Filesystem Space, 文件系统中已使用的空间,以 MB 为单位。
  • %fsused : Percentage of Filesystem Used, 文件系统已使用空间的百分比。
  • %ufsused : User Filesystem Usage Percentage, 与 %fsused 相同,表示用户文件系统已使用空间的百分比。
  • Ifree : Inodes Free, 文件系统中剩余的可用 inode 数量。Inodes 是存储文件元数据的结构,如文件名、文件大小、文件权限等。
  • Iused : Inodes Used, 文件系统中已使用的 inode 数量。
  • %Iused : Percentage of Inodes Used, 文件系统已使用 inode 的百分比。
  • FILESYSTEM : 文件系统的挂载点或设备名。例如,/dev/nvme0n1p1 是一个 NVMe 磁盘分区。

sar 统计网络数据

sar 命令统计网络相关数据使用选项 -n, 帮助信息如下:

-n { <keyword> [,...] | ALL }
Network statistics [A_NET_...]
Keywords are:
DEV Network interfaces
EDEV Network interfaces (errors)
NFS NFS client
NFSD NFS server
SOCK Sockets (v4)
IP IP traffic (v4)
EIP IP traffic (v4) (errors)
ICMP ICMP traffic (v4)
EICMP ICMP traffic (v4) (errors)
TCP TCP traffic (v4)
ETCP TCP traffic (v4) (errors)
UDP UDP traffic (v4)
SOCK6 Sockets (v6)
IP6 IP traffic (v6)
EIP6 IP traffic (v6) (errors)
ICMP6 ICMP traffic (v6)
EICMP6 ICMP traffic (v6) (errors)
UDP6 UDP traffic (v6)
FC Fibre channel HBAs
SOFT Software-based network processing

如下示例统计所有网卡上的网络数据

# sar -n DEV 1 2
Linux 6.8.0-1015-aws (U-3TSDMAL9IVFAQ) 10/18/2024 _x86_64_ (4 CPU)

03:55:13 PM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s %ifutil
03:55:14 PM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
03:55:14 PM eth0 56.00 92.00 4.32 279.30 0.00 0.00 0.00 0.00
03:55:14 PM eth1 4.00 4.00 0.35 0.68 0.00 0.00 0.00 0.00
03:55:14 PM docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
03:55:14 PM vethc08e5f9 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00

03:55:14 PM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s %ifutil
03:55:15 PM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
03:55:15 PM eth0 85.00 92.00 7.87 176.03 0.00 0.00 0.00 0.00
03:55:15 PM eth1 4.00 4.00 0.34 0.43 0.00 0.00 0.00 0.00
03:55:15 PM docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
03:55:15 PM vethc08e5f9 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00

Average: IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s %ifutil
Average: lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: eth0 70.50 92.00 6.10 227.67 0.00 0.00 0.00 0.00
Average: eth1 4.00 4.00 0.35 0.55 0.00 0.00 0.00 0.00
Average: docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: vethc08e5f9 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00

其中每列数据说明如下:

  • IFACE : 网络接口名称
  • rxpck/s : Receive Packets per Second, 每秒接收到的数据包数量。
  • txpck/s : Transmit Packets per Second, 每秒发送的数据包数量。
  • rxkB/s : Received Kilobytes per Second, 每秒接收到的数据量(以 KB 为单位)
  • txkB/s : Transmitted Kilobytes per Second, 每秒发送的数据量(以 KB 为单位)
  • rxcmp/s : Compressed Packets Received per Second, 每秒接收到的压缩数据包数量。
  • txcmp/s : Compressed Packets Transmitted per Second, 每秒发送的压缩数据包数量。
  • rxmcst/s : Multicast Packets Received per Second, 每秒接收到的组播数据包数量。
  • %ifutil : Interface Utilization Percentage, 网络接口的利用率,表示该接口的总带宽使用情况。

统计 Socket 使用情况

# sar -n SOCK 1 2
Linux 6.8.0-1015-aws (U-3TSDMAL9IVFAQ) 10/18/2024 _x86_64_ (4 CPU)

04:05:21 PM totsck tcpsck udpsck rawsck ip-frag tcp-tw
04:05:22 PM 1577 36 20 0 0 3
04:05:23 PM 1577 36 20 0 0 3
Average: 1577 36 20 0 0 3

监控 IP 层的网络活动情况

# sar -n IP 1 2
Linux 6.8.0-1015-aws (U-3TSDMAL9IVFAQ) 10/18/2024 _x86_64_ (4 CPU)

04:06:39 PM irec/s fwddgm/s idel/s orq/s asmrq/s asmok/s fragok/s fragcrt/s
04:06:40 PM 43.00 0.00 43.00 47.00 0.00 0.00 0.00 0.00
04:06:41 PM 71.00 0.00 71.00 77.00 0.00 0.00 0.00 0.00
Average: 57.00 0.00 57.00 62.00 0.00 0.00 0.00 0.00

其中每列数据说明如下:

  • irec/s : Incoming Packets Received per Second, 每秒接收到的 IP 数据包数量。
  • fwddgm/s : Forwarded Datagrams per Second, 每秒被路由转发的 IP 数据包数量(如果系统配置为路由器)。
  • idel/s : Incoming Datagrams Delivered per Second, 每秒成功交付给上层协议(如 TCP/UDP)的 IP 数据包数量。
  • orq/s : Outgoing Request Packets per Second, 每秒发出的 IP 数据包请求数。
  • asmrq/s : Address Mask Requests per Second, 每秒发送的地址掩码请求数据包数。
  • asmok/s : Address Mask Replies per Second, 每秒发送的地址掩码应答数据包数。
  • fragok/s : Fragmentation OK per Second, 每秒成功处理的 IP 数据包碎片数。
  • fragcrt/s : Fragmentation Created per Second, 每秒创建的 IP 数据包碎片数。

监控 TCP 层的网络活动情况

# sar -n TCP 1 2
Linux 6.8.0-1015-aws (U-3TSDMAL9IVFAQ) 10/18/2024 _x86_64_ (4 CPU)

04:13:34 PM active/s passive/s iseg/s oseg/s
04:13:35 PM 0.00 0.00 79.00 104.00
04:13:36 PM 0.00 0.00 31.00 51.00
Average: 0.00 0.00 55.00 77.50

其中每列数据说明如下:

  • active/s : Active Connections per Second, 每秒发起的主动连接请求数量(客户端发起的 TCP 连接,如 HTTP 请求)。
  • passive/s : Passive Connections per Second, 每秒接受的被动连接请求数量(服务器接受的 TCP 连接,如服务端的 TCP 监听)。
  • iseg/s : Incoming Segments per Second, 每秒接收到的 TCP 段数量
  • oseg/s : Outgoing Segments per Second, 每秒发送的 TCP 段数量。

SysRq

在某些情况,如系统内存耗尽,会导致系统(Shell,GUI)无响应,在这种场景下,可以使用 Alt+SysRq 组合键,它的全称是 System Request,内核对 Alt+SysRq 组合键有高响应优先级,通过此组合键可以完成以下内容:

  • Alt + SysRq + S : 同步所有挂载的文件系统。
  • Alt + SysRq + U : 卸载所有文件系统(只读模式)。
  • Alt + SysRq + B : 强制重启系统。
  • Alt + SysRq + K : 杀死所有用户进程。

要启用 SysRq 功能,系统必须配置了 /proc/sys/kernel/sysrq 的值为 1,或者配置 kernel.sysrq = 1/etc/sysctl.conf 中,并且只有在系统的终端中才支持这些快捷键组合,远程终端不支持