sar (System Activity Reporter): 收集、报告和保存关于 CPU 利用率、内存使用、磁盘 I/O、网络活动等各种系统活动信息。
sadc (System Activity Data Collector): 收集系统活动数据的后台进程。由 sar 命令调用。
mpstat: 报告每个可用 CPU 的 MPU 活动。
iostat: 报告 CPU 统计信息以及磁盘 I/O 子系统的活动。
pidstat: 报告选定任务的 CPU、内存、I/O 等统计信息。
cifsiostat: 报告 CIFS/SMB 客户端的 I/O 统计信息。
nfsiostat: 报告 NFS 客户端的 I/O 统计信息。
tapestat: 报告磁带设备的 I/O 统计信息。
需要启动一下对应的服务
1 2 3 4 5 6 7 8 9 10
┌──[root@liruilongs.github.io]-[~] └─$systemctl --now enable sysstat.service Synchronizing state of sysstat.service with SysV service script with /lib/systemd/systemd-sysv-install. Executing: /lib/systemd/systemd-sysv-install enable sysstat Created symlink /etc/systemd/system/multi-user.target.wants/sysstat.service → /lib/systemd/system/sysstat.service. Created symlink /etc/systemd/system/sysstat.service.wants/sysstat-collect.timer → /lib/systemd/system/sysstat-collect.timer. Created symlink /etc/systemd/system/sysstat.service.wants/sysstat-summary.timer → /lib/systemd/system/sysstat-summary.timer. ┌──[root@liruilongs.github.io]-[~] └─$
1 2 3 4 5 6 7 8 9 10 11 12
┌──[root@liruilongs.github.io]-[~] └─$sar Linux 5.15.0-112-generic (liruilongs.github.io) 2024年08月13日 _x86_64_ (4 CPU)
16时45分11秒 LINUX RESTART (4 CPU)
16时50分04秒 CPU %user %nice %system %iowait %steal %idle 17时00分09秒 all 0.14 0.00 0.12 0.01 0.00 99.73 平均时间: all 0.14 0.00 0.12 0.01 0.00 99.73 ┌──[root@liruilongs.github.io]-[~] └─$
用的比较多的: iostat(1), mpstat(1), pidstat(1), sar(1)
sar 用于查看系统历史性能信息,iostat,mpstat,pidstat 用于查看 IO,CPU 和进程的实时性能信息。
iproute2
iproute2 是一个 Linux 系统的网络配置工具集合,它取代了早期被广泛使用的 net-tools 套件。iproute2 提供了一系列命令行工具,用于管理和配置各种网络设备和功能
iproute2 中一些常用的工具:
ip: 这是 iproute2 的核心工具,可用于管理网络接口、路由表、ARP 表、隧道等。
tc (Traffic Control): 用于配置网络流量控制和整形。
ss (Socket Statistics): 显示套接字统计信息。
nstat: 显示网络统计信息。
ctstat (Connection Tracking): 显示连接跟踪信息。
常用工具: ip(8), ss(8), nstat(8), tc(8)
numactl
numactl 是一个 Linux 命令行工具,用于在 NUMA (Non-Uniform Memory Access) 架构的系统上控制程序的内存分配和处理器亲和性。
NUMA 是一种内存访问模型,在多处理器系统中,每个处理器都有自己的本地内存,访问自己本地内存的速度比访问远程内存的速度快。numactl 可以帮助程序充分利用 NUMA 架构的优势。
commands: record - record a trace into a trace.dat file set - set a ftrace configuration parameter start - start tracing without recording into a file extract - extract a trace from the kernel stop - stop the kernel from recording trace data restart - restart the kernel trace data recording show - show the contents of the kernel tracing buffer reset - disable all kernel tracing and clear the trace buffers clear - clear the trace buffers report - read out the trace stored in a trace.dat file stream - Start tracing and read the output directly profile - Start profiling and read the output directly
Ftrace 是 Linux 内核提供的一个强大的动态追踪框架,它内置了各种追踪点,可以深入内核并观察系统行为。但是直接使用 Ftrace 的命令行接口比较复杂,trace-cmd 就是为了简化 Ftrace 的使用而诞生的。
root@liruilonger:~# cpuid CPU 0: vendor_id = "GenuineIntel" version information (1/eax): processor type = primary processor (0) family = 0x6 (6) model = 0x5 (5) stepping id = 0x7 (7) extended family = 0x0 (0) extended model = 0x5 (5) (family synth) = 0x6 (6) (model synth) = 0x55 (85) (simple synth) = Intel Core (unknown type) (Skylake / Skylake-X / Cascade Lake / Cascade Lake-X) {Skylake}, 14nm++ miscellaneous (1/ebx): process local APIC physical ID = 0x0 (0) maximum IDs for CPUs in pkg = 0x2 (2) CLFLUSH line size = 0x8 (8) brand index = 0x0 (0) brand id = 0x00 (0): unknown ......
msr-tools
msr-tools: 这是一套用于读写 x86 CPU 的 Model-Specific Registers (MSR) 的工具,包括 rdmsr(8) 和 wrmsr(8) 等命令。
MSR 包含了 CPU 的很多低级配置和性能指标,可以用于深入分析 CPU 的行为。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
root@liruilonger:~# rdmsr --help Usage: rdmsr [options] regno --help -h Print this help --version -V Print current version --hexadecimal -x Hexadecimal output (lower case) --capital-hex -X Hexadecimal output (upper case) --decimal -d Signed decimal output --unsigned -u Unsigned decimal output --octal -o Octal output --c-language -c Format output as a C language constant --zero-pad -0 Output leading zeroes --raw -r Raw binary output --all -a all processors --processor # -p Select processor number (default 0) --bitfield h:l -f Output bits [h:l] only root@liruilonger:~#