一、系统信息
uname:查看内核与架构。
| 命令 | 输出 |
|---|---|
uname -a | 全部信息(内核名、主机名、内核版本、架构等) |
uname -r | 内核版本号 |
uname -m | 硬件架构(x86_64、aarch64) |
发行版信息:cat /etc/os-release(发行版名称、版本、ID,所有现代发行版均提供此文件)。
运行时间:uptime 或 cat /proc/uptime(后者为秒数,适合脚本)。
二、CPU 信息
lscpu 从 /proc/cpuinfo 和 sysfs 读取:
| 字段 | 含义 |
|---|---|
CPU(s) | 逻辑核心总数(含超线程) |
Thread(s) per core | 每核线程数(>1 表示开启超线程) |
Core(s) per socket | 每颗物理 CPU 的内核数 |
Socket(s) | 物理 CPU 数量 |
Model name | 型号与频率 |
Flags | 指令集支持(avx、vmx(虚拟化)、rdrand 等) |
原始数据:cat /proc/cpuinfo。
三、内存状态
free -h 以人类可读格式输出。
| 字段 | 含义 |
|---|---|
total | 总物理内存 |
used | 已使用(含被缓存占用的部分) |
free | 完全未被使用的内存 |
available | 可供应用程序使用的内存(含可回收的 cache/buffer),这是应关注的唯一可用指标 |
Swap total/used/free | 交换分区统计 |
关键认知:Linux 会积极利用空闲内存做磁盘缓存(cache),所以
free往往很小,但available才是真实可用量。free小不代表内存不足——只有available趋近于 0 时,系统才真正面临内存压力。
原始数据:cat /proc/meminfo。
四、磁盘与块设备
lsblk:树形展示所有块设备(磁盘、分区、LVM、光盘)的层级关系,比 fdisk -l 直观。
lsblk # 默认树形
lsblk -f # 带文件系统类型和 UUIDdf:查看已挂载文件系统的容量使用情况。
df -h # 人类可读,查看所有挂载点
df -h / # 仅根分区
df -i # 查看 inode 使用率(文件数量是否耗尽)du:查看目录/文件的累计占用空间。
du -sh * # 当前目录下每个子项的总大小
du -h --max-depth=1 # 仅一层子目录
du -sh /var/log # 指定目录总大小区别:
df看分区整体容量(已挂载的块设备级别),du看目录树的文件累计大小。若du统计的总和远小于df显示的已用空间,通常意味着有大文件已被删除但仍有进程持有其文件描述符(lsof | grep deleted可查)。
五、内核运行时参数:sysctl
sysctl 用于在运行时查看和修改内核参数,对应 /proc/sys/ 目录下的文件。
sysctl -a # 查看所有可调参数
sysctl vm.swappiness # 查看单一参数
sysctl -w vm.swappiness=10 # 修改参数(临时,重启失效)常见参数:
| 参数 | 含义 |
|---|---|
vm.swappiness | 系统使用交换分区的倾向(0 |
net.ipv4.ip_forward | IP 转发(作为路由器/NAT 网关时需设为 1) |
kernel.pid_max | 系统最大 PID 数量 |
fs.file-max | 系统全局最大文件句柄数 |
持久化:写入 /etc/sysctl.conf 或 /etc/sysctl.d/*.conf,重启或 sysctl -p 加载。
六、系统状态一览
vmstat:提供进程、内存、分页、阻塞 I/O、CPU 活动的快照。
vmstat 2 # 每 2 秒刷新,适合快速定位瓶颈关键列:si/so(Swap 换入/换出,非 0 表示内存紧张)、us/sy/id/wa(CPU 分布)。
iostat:查看磁盘 I/O 负载(需要 sysstat 包)。
iostat -x 1 # 每秒输出扩展统计,重点关注 %util(设备繁忙度)笔记结语
系统状态查看的核心命令大多读取 /proc 和 /sys 两个虚拟文件系统——它们是内核与用户空间的数据接口。记命令不如记路径: 需要什么信息,先去对应的 /proc 或 /sys 文件里找,命令只是这些文件的格式化展示。