1. 引言
Linux 是一种开源操作系统,被广泛应用于服务器和嵌入式设备中。对于系统管理员和开发人员来说,了解和监控 CPU 使用情况是非常重要的。在本篇文章中,我们将探索如何在 Linux 上查看 CPU 使用情况,并深入研究一些深层次的指标。
2. 查看 CPU 使用情况
2.1 top 命令
top 是一个常用的监控进程和系统资源的命令行工具。它可以显示系统中当前运行的进程以及每个进程使用的 CPU 和内存资源。
top
在 top 命令的输出中,可以通过按键 1 来查看每个 CPU 核心的使用情况。其中,%CPU 列显示了每个进程使用的 CPU 百分比。
top - 08:55:23 up 1 day, 3:24, 4 users, load average: 0.00, 0.01, 0.05
Tasks: 142 total, 1 running, 141 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.3 us, 0.3 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 8169940 total, 5832120 free, 1171460 used, 1166360 buff/cache
KiB Swap: 2097148 total, 2097148 free, 0 used. 6848044 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
10258 root 20 0 97176 7832 3408 R 6.3 0.1 0:00.01 top
1 root 20 0 169224 10760 7828 S 0.0 0.1 0:02.05 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.04 kthreadd
3 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 rcu_gp
4 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 rcu_par_gp
...
2.2 sar 命令
sar 是一个系统性能分析工具,它可以收集和报告包括 CPU 使用情况在内的各种系统资源信息。
sar -u
运行 sar 命令时,使用选项 -u 可以显示 CPU 使用率的相关信息。例如,%user 列显示了用户空间程序使用 CPU 的百分比,%nice 列显示了同时运行的用户级别进程的百分比。
Linux 5.4.0-81-generic (ubuntu) 09/19/2022 _x86_64_ (8 CPU)
10:00:01 AM CPU %user %nice %system %iowait %steal %idle
10:10:01 AM all 7.09 24.01 14.67 0.16 0.64 53.38
10:20:01 AM all 4.42 20.02 15.82 0.14 0.41 59.18
10:30:01 AM all 4.68 22.68 16.14 0.18 0.89 55.42
10:40:01 AM all 5.03 19.82 15.92 0.17 0.64 58.42
10:50:01 AM all 4.79 20.29 14.92 0.15 0.47 59.96
11:00:01 AM all 5.92 22.01 16.28 0.17 0.57 55.05
11:10:01 AM all 4.98 20.49 14.78 0.16 0.53 59.06
Average: all 5.30 21.35 15.48 0.16 0.58 57.14
2.3 mpstat 命令
mpstat 提供了多核 CPU 的性能统计信息,并且可以实时显示每个 CPU 的使用情况。
mpstat -P ALL
运行 mpstat 命令时,使用选项 -P ALL 可以显示每个 CPU 核心的使用率。其中,%usr 列显示了用户空间程序使用 CPU 的百分比,%nice 列显示了同时运行的用户级别进程的百分比。
Linux 5.4.0-81-generic (ubuntu) 09/19/2022 _x86_64_ (8 CPU)
05:15:31 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle
05:15:31 PM all 0.80 0.00 0.44 0.00 0.00 0.01 0.00 0.00 98.75
05:15:31 PM 0 0.50 0.00 0.38 0.00 0.00 0.01 0.00 0.00 99.11
05:15:31 PM 1 0.68 0.00 0.36 0.00 0.00 0.01 0.00 0.00 99.95
05:15:31 PM 2 0.51 0.00 0.36 0.00 0.00 0.01 0.00 0.00 99.13
05:15:31 PM 3 1.30 0.00 0.67 0.00 0.00 0.01 0.00 0.00 98.02
05:15:31 PM 4 0.74 0.00 0.38 0.00 0.00 0.01 0.00 0.00 98.87
05:15:31 PM 5 0.63 0.00 0.36 0.00 0.00 0.01 0.00 0.00 99.34
05:15:31 PM 6 0.81 0.00 0.44 0.00 0.00 0.01 0.00 0.00 98.75
05:15:31 PM 7 0.66 0.00 0.38 0.00 0.00 0.01 0.00 0.00 99.29
3. 深层次的 CPU 使用情况
3.1 CPU 温度
CPU 温度是一个重要的指标,它反映了 CPU 的热量释放和散热情况。可以使用一些工具来监控 CPU 温度。
sensors
运行 sensors 命令可以查看 CPU 的温度信息。
coretemp-isa-0000
Adapter: ISA adapter
Package id 0: +48.0°C (high = +80.0°C, crit = +100.0°C)
Core 0: +46.0°C (high = +80.0°C, crit = +100.0°C)
Core 1: +48.0°C (high = +80.0°C, crit = +100.0°C)
Core 2: +45.0°C (high = +80.0°C, crit = +100.0°C)
Core 3: +47.0°C (high = +80.0°C, crit = +100.0°C)
在输出中,可以看到每个 CPU 核心的温度信息。通常,高于 80°C 的温度应引起注意,而达到 100°C 则可能引起系统故障。
3.2 命令行工具
除了 top、sar 和 mpstat 命令之外,还有其他一些命令行工具可以用于监控 CPU 使用情况。
- vmstat:提供了有关系统内存、进程、用户和 CPU 使用情况的信息。
- pidstat:用于监视进程和各个进程线程的 CPU 使用情况。
- htop:是 top 命令的改进版本,提供了更加友好和交互式的界面。
4. 结论
了解和监控 CPU 使用情况是系统管理员和开发人员的重要任务。本文介绍了在 Linux 上查看 CPU 使用情况的几种常用命令,包括 top、sar 和 mpstat。此外,我们还了解了如何获取 CPU 温度信息以及其他一些命令行工具。
通过充分利用这些工具,我们可以深入了解系统的性能,并及时采取相应的措施来优化系统的性能和稳定性。