/proc是linux内核在内存中动态生成的虚拟文件系统,不占磁盘空间,所有内容均为实时快照;它提供系统级状态(如cpuinfo、meminfo)、进程细节(/proc/[pid]/目录)、网络与中断信息(net/dev、interrupts)及内核参数调节接口(/proc/sys),是运维诊断与调优的核心工具。

/proc 是 Linux 内核暴露运行时状态的“实时仪表盘”,运维人员无需重启或安装额外工具,就能通过标准文件操作快速获取系统健康度、进程行为和内核配置。它不占磁盘空间,所有内容都在内存中动态生成,每次读取都是最新快照。
查系统级核心参数
这类文件反映整机资源与内核启动配置,适合日常巡检和故障初判:
- /proc/cpuinfo:查看 CPU 型号、核心数、主频、是否启用超线程(看 siblings 和 cpu cores 是否一致);在 RK3568 等嵌入式平台可确认 ARM 架构特性(如 Features 字段)
- /proc/meminfo:重点关注 MemTotal、MemAvailable(比 MemFree 更准确反映可用内存)、Buffers 和 Cached;若 SReclaimable 远高于 Cached,可能有大量可回收的 slab 内存
- /proc/loadavg:前三列是 1/5/15 分钟平均负载,数值持续超过 CPU 逻辑核数(grep -c processor /proc/cpuinfo)需警惕;第四列 5/349 表示当前有 5 个进程在运行队列,系统最多支持 349 个进程
- /proc/cmdline:确认内核启动参数,比如是否启用 quiet、splash,或关键驱动是否被禁用(如 rd.blacklist=xxx)
盯住单个进程的运行细节
每个数字目录对应一个 PID,是诊断卡顿、泄漏、权限异常的第一现场:
Linux 性能分析与调优专家,覆盖 CPU、内存、磁盘 I/O、网络、内核参数、编译优化、容器/K8s。适用场景:系统卡顿/高负载、内存不足/OOM/Swap 高、CPU 异常/iowait 高。
- /proc/[pid]/status:比 ps 输出更全,含 State(R/S/D/T/Z)、VmRSS(实际物理内存占用)、CapEff(生效的能力位),可快速识别僵尸进程或能力越权
- /proc/[pid]/cmdline:直接读取进程启动命令(注意字段间是 \0 分隔,建议用 strings /proc/[pid]/cmdline 或 cat /proc/[pid]/cmdline | tr '\0' ' ')
- /proc/[pid]/fd/:列出所有打开的文件描述符,ls -l /proc/[pid]/fd 可看到符号链接指向的真实路径;若发现大量 socket 或 deleted 文件,可能有句柄泄漏
- /proc/[pid]/maps:查看内存布局,确认是否加载了可疑共享库、是否有可执行堆(rwxp 权限段),对排查 ROP 或堆溢出有帮助
动态调整内核行为
/proc/sys 是运行时修改内核参数的通道,等效于 sysctl -w,但更直接:
- 开启 IPv4 转发:echo 1 > /proc/sys/net/ipv4/ip_forward
- 临时限制某进程的 OOM 优先级(防止被杀):echo -1000 > /proc/[pid]/oom_score_adj
- 调整 TCP 缓冲区大小:echo "4096 65536 262144" > /proc/sys/net/ipv4/tcp_rmem
- 注意:写入后立即生效,但重启失效;如需持久化,应写入 /etc/sysctl.conf
定位网络与中断瓶颈
当出现连接超时或响应延迟,这些目录能绕过用户态工具直达内核协议栈:
- /proc/net/dev:查看各网卡收发字节数、错误包、丢包数;RX_errors 持续增长可能说明物理链路或驱动问题
- /proc/net/tcp 和 /proc/net/udp:以十六进制显示连接状态(01=ESTABLISHED, 0A=LISTEN),配合 ss -tuln 验证端口监听
- /proc/interrupts:观察中断分布,若某 CPU 的 IO-APIC-fasteoi 行数值远高于其他 CPU,可能存在 IRQ 不均衡,需调用 irqbalance 或手动绑定
- /proc/sys/net/core/somaxconn:确认系统最大连接队列长度,Web 服务高并发时若连接拒绝增多,可适当调大










