本文翻译自我的英文博客,最新修订内容可随时参考:Further Understanding of Proc
Linux 中的 /proc
是一种伪文件系统(又称虚拟文件系统),它存储的是一系列特殊文件,这些文件记录了内核当前的运行状态。用户不仅可以通过这些文件查看硬件信息和运行中的进程,甚至可以通过修改某些文件来调整内核的运行状态。 /proc
中的文件实时刷新于内存,因此文件大小均为 0 字节。
官方文档参考:here
/proc
中许多目录以数字命名,这些数字代表正在运行的进程的 PID(进程标识符)。以下是一些关键子项:
chroot
环境支持)。 ps
命令的数据来源之一)。 该目录用于动态修改内核参数(即 sysctl 参数)。通过向目录中的文件写入值,可以实时调整内核行为,例如:
echo 1 > /proc/sys/net/ipv4/ip_forward # 开启 IP 转发(等价于 sysctl -w net.ipv4.ip_forward=1)
存储高级电源管理(APM)版本信息和电池状态(如剩余电量、充电状态),通常由 apm
命令调用。
显示内核内存分配器中的空闲内存块信息,用于分析内存碎片化问题。
显示内核启动时接收的参数(如 root=/dev/sda1 rw quiet
),可用于排查启动配置问题。
包含 CPU 详细信息(如型号、核心数、主频、指令集等),等价于 lscpu
命令的部分输出。
显示系统负载平均值,与 uptime
命令输出一致:
cat /proc/loadavg
# 2.79 2.99 3.03 5/349 3582467
提供内存使用详情(如总内存、空闲内存、缓冲/缓存大小等),free
命令即基于此文件数据:
cat /proc/meminfo | grep Mem
MemTotal: 16384000 kB
MemFree: 2345672 kB
MemAvailable: 12345678 kB
记录系统资源统计信息,核心字段包括:
显示内核版本、编译时间及 GCC 版本,例如:
Linux version 5.15.0-58-generic (builduser@buildfarm) (gcc version 11.3.0 (Ubuntu 11.3.0-1ubuntu1~22.04)) #64-Ubuntu SMP Thu Jun 8 09:44:52 UTC 2023
文件路径 | 作用描述 |
---|---|
/proc/diskstats | 磁盘设备的 I/O 统计信息(如读写次数、耗时、吞吐量)。 |
/proc/interrupts | 中断请求统计(按中断号和设备分类,用于排查硬件中断异常)。 |
/proc/locks | 显示当前系统持有的锁信息(如文件锁、内核锁)。 |
/proc/mounts | 当前系统的挂载点信息(等价于 |
/proc/modules | 已加载的内核模块列表(等价于 |
/proc/vmstat | 虚拟内存统计信息(如页面错误、交换活动等)。 |
/proc
是 Linux 内核的“窗口”,通过它可以深入了解系统运行状态、诊断性能问题或动态调整内核行为。熟练掌握 /proc
中的关键文件(如 loadavg
、meminfo
、stat
),能极大提升系统管理和故障排查的效率。如需修改内核参数,建议通过 sysctl
命令操作 /proc/sys
下的文件,以避免误操作导致系统不稳定。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。