在 Linux 系统中,查看内存、CPU、磁盘使用率和其他硬件信息的工具非常多,这些工具可以帮助你监控系统性能、诊断问题、优化系统资源等。以下是一些常用命令和工具来查看系统资源的使用情况和详细信息。

1. 查看内存使用情况

1.1 free 命令

free 命令用于显示系统的内存使用情况,显示的内容包括已使用内存、空闲内存、缓存和交换空间等。

free -h

  • -h:以人类可读的格式显示(比如以 KB、MB 或 GB 为单位)。

输出样例:

              total        used        free      shared  buff/cache   available
Mem:            16G         6.2G        1.5G        153M        8.3G         9.2G
Swap:          2.0G        0B          2.0G

1.2 top 命令

top 命令是实时显示系统中各个进程的 CPU 和内存占用情况,并可以进行交互操作。

top

  • 按 M 可以按照内存使用量排序。
  • 按 P 可以按照 CPU 使用率排序。

1.3 htop 命令

htop 是 top 命令的增强版本,提供了一个更友好的用户界面,显示实时的 CPU、内存、交换空间等资源的使用情况。

安装 htop

sudo apt install htop  # Ubuntu/Debian 系统
sudo yum install htop  # CentOS/RHEL 系统

启动 htop

htop

1.4 /proc/meminfo 文件

/proc/meminfo 文件提供了系统内存的详细信息,适合用来查看更具体的内存数据。

cat /proc/meminfo

输出样例:

MemTotal:       16306460 kB
MemFree:         1548784 kB
MemAvailable:    9420932 kB
Buffers:          304184 kB
Cached:          7452268 kB

2. 查看 CPU 使用情况

2.1 top 命令

top 命令的顶部会显示 CPU 的使用情况,包括每个核心的使用百分比。可以按 %CPU 列来查看各个进程的 CPU 使用率。

top

2.2 mpstat 命令

mpstat 命令(属于 sysstat 软件包)用于显示各个 CPU 核心的使用情况。

安装 sysstat

sudo apt install sysstat  # Ubuntu/Debian 系统
sudo yum install sysstat  # CentOS/RHEL 系统

查看所有 CPU 核心的使用情况:

mpstat -P ALL 1

  • -P ALL:显示所有 CPU 核心的使用情况。
  • 1:每 1 秒刷新一次。

2.3 lscpu 命令

lscpu 命令用于显示 CPU 的详细信息,包括 CPU 的架构、核心数、线程数、CPU 频率等。

lscpu

输出样例:

Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                8
On-line CPU(s) list:   0-7
Thread(s) per core:    2
Core(s) per socket:    4
Socket(s):             1
NUMA node(s):          1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 158
Stepping:              10
CPU MHz:               2400.000

2.4 cat /proc/cpuinfo 文件

/proc/cpuinfo 文件包含了关于 CPU 的详细信息,例如处理器的型号、核心数量、频率等。

cat /proc/cpuinfo

3. 查看磁盘使用情况

3.1 df 命令

df 命令用于查看文件系统的磁盘空间使用情况,包括各个挂载点的总空间、已用空间、可用空间等。

df -h

  • -h:以人类可读的格式显示(例如 GB、MB)。

输出样例:

Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        50G   18G   32G  36% /
tmpfs            3.9G  1.1M  3.9G   1% /dev/shm

3.2 du 命令

du 命令用于查看指定目录及其子目录的磁盘空间占用情况。

du -sh /path/to/directory

  • -s:仅显示总计,不显示子目录。
  • -h:以人类可读的格式显示。

例如,查看当前目录的磁盘使用情况:

du -sh .

3.3 lsblk 命令

lsblk 命令显示所有块设备的信息,包括硬盘、分区和挂载点。

lsblk

输出样例:

NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0    50G  0 disk
├─sda1   8:1    0    50G  0 part /

3.4 fdisk -l 命令

fdisk -l 命令用于列出所有磁盘和分区的详细信息。

sudo fdisk -l

4. 查看磁盘 I/O 使用情况

4.1 iostat 命令

iostat 命令(属于 sysstat 包)用于查看磁盘的输入输出统计信息,包括 I/O 活动、设备利用率等。

iostat -x 1

  • -x:显示扩展的磁盘信息。
  • 1:每 1 秒刷新一次。

4.2 iotop 命令

iotop 是一个实时显示磁盘 I/O 使用情况的工具,类似于 top 命令,但专注于磁盘 I/O。

安装 iotop

sudo apt install iotop  # Ubuntu/Debian 系统
sudo yum install iotop  # CentOS/RHEL 系统

运行 iotop

sudo iotop

5. 查看系统的综合性能

5.1 vmstat 命令

vmstat 命令用于报告系统的虚拟内存、进程、CPU 活动等信息。

vmstat 1

  • 1:每 1 秒刷新一次,显示虚拟内存、CPU 等统计信息。

5.2 sar 命令

SAR(System Activity Report)是 sysstat 包的一部分,提供了详细的系统活动统计数据,包括 CPU 使用、内存、I/O 等。

sar -u 1 3  # 显示 CPU 使用情况,每秒刷新一次,共 3 次

6. 总结

  • 内存:使用 freetophtop/proc/meminfo 等命令查看内存的使用情况。
  • CPU:使用 topmpstatlscpu/proc/cpuinfo 等命令查看 CPU 的使用情况和详细信息。
  • 磁盘:使用 dfdulsblkfdisk -l 等命令查看磁盘空间使用情况,iostat 和 iotop 用于查看磁盘 I/O 情况。

这些命令可以帮助你全面了解 Linux 系统的资源使用情况,进行性能分析、故障排除和优化。