Red Hat Training

A Red Hat training course is available for RHEL 8

15.3. 用于审计的工具

Red Hat Enterprise Linux 8 提供用于执行系统审核和分析的工具。如果您想要验证已经发现的内容或需要更深入地了解某些部分的信息,则大部分工具可以用作补充信息源。

其中许多工具也用于性能调优,其中包括:

powertop
它可识别频繁绕过 CPU 的内核和用户空间应用程序的特定组件。以 root 用户身份使用 powertop 命令启动 PowerTop 工具和 powertop --calibrate 来布线电源估算引擎。有关 PowerTop 的更多信息,请参阅 使用 PowerTOP 管理功耗
Diskdevstat 和 netdevstat

它们是 SystemTap 工具,可收集有关系统中所有应用程序的磁盘活动和网络活动的详细信息。使用这些工具收集的统计数据,您可以识别与许多小 I/O 操作(而非更小且更大型的操作)的强大应用程序。以 root 用户身份使用 yum install tuned-utils-systemtap kernel-debuginfo 命令,安装 diskdevstatnetdevstat 工具。

要查看磁盘和网络活动的详细信息,请使用:

# diskdevstat

PID   UID   DEV   WRITE_CNT   WRITE_MIN   WRITE_MAX   WRITE_AVG   READ_CNT   READ_MIN   READ_MAX   READ_AVG   COMMAND

3575  1000  dm-2   59          0.000      0.365        0.006        5         0.000        0.000      0.000      mozStorage #5
3575  1000  dm-2    7          0.000      0.000        0.000        0         0.000        0.000      0.000      localStorage DB
[...]


# netdevstat

PID   UID   DEV       XMIT_CNT   XMIT_MIN   XMIT_MAX   XMIT_AVG   RECV_CNT   RECV_MIN   RECV_MAX   RECV_AVG   COMMAND
3572  991  enp0s31f6    40       0.000      0.882       0.108        0         0.000       0.000       0.000     openvpn
3575  1000 enp0s31f6    27       0.000      1.363       0.160        0         0.000       0.000       0.000     Socket Thread
[...]

使用这些命令,您可以指定三个参数:update_intervaltotal_durationdisplay_histogram

TuneD
它是一个基于配置集的系统调整工具,它使用 udev 设备管理器监控连接的设备,并支持系统设置的静态和动态调优。您可以使用 tuned-adm recommend 命令确定红帽推荐的配置集作为最适合特定产品的配置集。有关 TuneD 的更多信息,请参阅 开始使用 TuneD自定义 TuneD 配置文件。使用 powertop2tuned 实用程序,您可以从 PowerTOP 推荐创建自定义 TuneD 配置集。有关 powertop2tuned 工具的详情,请参考 优化功耗
虚拟内存统计信息 (vmstat)

它由 procps-ng 软件包提供。使用这个工具,您可以查看进程、内存、分页、块 I/O、陷阱和 CPU 活动的详细信息。

要查看此信息,请使用:

$ vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r  b  swpd  free    buff   cache   si   so  bi   bo   in  cs  us  sy id  wa  st
1  0   0   5805576 380856 4852848   0    0  119  73  814  640  2   2 96   0   0

使用 vmstat -a 命令,可以显示活动和不活跃的内存。有关其他 vmstat 选项的详情,请查看 vmstat 手册页。

iostat

它由 sysstat 软件包提供。此工具与 vmstat 类似,但只适用于监控块设备上的 I/O。它还提供了更详细的输出和统计数据。

要监控系统 I/O,请使用:

$ iostat
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           2.05    0.46    1.55    0.26    0.00   95.67

Device     tps     kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
nvme0n1    53.54     899.48     616.99      3445229     2363196
dm-0       42.84     753.72     238.71      2886921      914296
dm-1        0.03       0.60       0.00         2292           0
dm-2       24.15     143.12     379.80       548193     1454712
blktrace

它提供有关在 I/O 子系统中花费时间的详细信息。

要以人类可读格式查看此信息,请使用:

# blktrace -d /dev/dm-0 -o - | blkparse -i -

253,0   1    1   0.000000000  17694  Q   W 76423384 + 8 [kworker/u16:1]
253,0   2    1   0.001926913     0   C   W 76423384 + 8 [0]
[...]

第一列 253,0 是设备主和次的元组。第二列 1 提供了有关 CPU 的信息,后跟用于发出 IO 进程的进程的时间戳和 PID 的列。

第六个列 Q 显示事件类型,第 7 列,W 代表写入操作,第 8 列为 76423384,是块号,+ 8 是请求的块的数量。

最后一个字段 [kworker/u16:1] 是进程名称。

默认情况下,blktrace 命令会永久运行,直到进程被明确终止。使用 -w 选项指定运行时持续时间。

turbostat

它由 kernel-tools 软件包提供。它报告了 x86-64 处理器上的处理器拓扑、频率、空闲的电源状态统计、温度和功耗。

要查看此摘要,请使用:

# turbostat

CPUID(0): GenuineIntel 0x16 CPUID levels; 0x80000008 xlevels; family:model:stepping 0x6:8e:a (6:142:10)
CPUID(1): SSE3 MONITOR SMX EIST TM2 TSC MSR ACPI-TM HT TM
CPUID(6): APERF, TURBO, DTS, PTM, HWP, HWPnotify, HWPwindow, HWPepp, No-HWPpkg, EPB
[...]

默认情况下,turbostat 显示整个屏幕的计数器结果摘要,每 5 秒显示计数器结果。使用 -i 选项指定计数器结果之间的不同周期,例如,执行 turbostat -i 10 会每 10 秒打印结果。

Turbostat 在识别电源使用或空闲时间方面效率低下的服务器也很有用。它还有助于识别系统中发生的系统管理中断 (SMI) 的速度。它还可用于验证电源管理调整的影响。

cpupower

IT 是用于检查和调优处理器相关功能的工具集合。在 cpupower 命令中使用 frequency-info, frequency-set, idle-info, idle-set, set, info, 和 monitor 选项来显示和设置处理器相关的值。

例如,要查看可用的 cpufreq 管理器,请使用:

$ cpupower frequency-info --governors
analyzing CPU 0:
  available cpufreq governors: performance powersave

有关 cpupower 的更多信息,请参阅查看 CPU 相关信息。

GNOME Power Manager
它是作为 GNOME 桌面环境的一部分安装的守护进程。GNOME Power Manager 通知您系统的电源状态变化,例如,从电池改为 AC 电源。它还会报告电池状态,并在电池电源较低时提醒您。

其他资源

  • powertop(1), diskdevstat(8), netdevstat(8), tuned(8), vmstat(8), iostat(1), blktrace(8), blkparse(8), 和 turbostat(8) man page
  • cpupower(1), cpupower-set(1), cpupower-info(1), cpupower-idle(1), cpupower-frequency-set(1), cpupower-frequency-info(1), and cpupower-monitor(1) man page