| 默认挂载 | mount -t proc proc /proc | |
| 手动挂载 | mount -t proc proc /proc | |
| 卸载 | umount /proc | ps, top, free)将失效。 |
/proc│├─ 1/ # init (PID 1) 进程的目录├─ self/ # 符号链接 → 当前进程的 /proc/<pid>├─ thread-self/ # 符号链接 → 当前进程的 /proc/<pid>/task/<tid>├─ <pid>/ # 每个运行中的进程都有对应的目录│ ├─ cmdline│ ├─ environ│ ├─ fd/│ ├─ maps│ ├─ status│ ├─ wchan│ └─ …├─ <tid>/ # 线程(如果内核支持)对应的目录(/proc/<pid>/task/<tid>)├─ sys/ # 内核运行时参数(可写)│ ├─ net/│ ├─ vm/│ ├─ kernel/│ └─ …├─ acpi/ # ACPI 信息(有的发行版已经迁移到 /sys/firmware/acpi)├─ bus/ # 总线信息(已逐步迁移到 /sys/bus)├─ driver/ # 某些驱动的状态文件(已迁移到 /sys)├─ fs/ # 文件系统相关参数(如 nfs、ext4 等)├─ irq/ # 中断请求信息(已迁移到 /sys/irq)├─ tty/ # 终端相关信息├─ self/ # 同上├─ loadavg├─ uptime├─ meminfo├─ cpuinfo├─ devices├─ partitions├─ mounts├─ net/├─ stat├─ version└── …
/proc/cpuinfo | cat /proc/cpuinfolscpu | |
/proc/meminfo | cat /proc/meminfofree -h | |
/proc/uptime | cat /proc/uptime | |
/proc/loadavg | cat /proc/loadavg | |
/proc/stat | cat /proc/stat | |
/proc/diskstats | cat /proc/diskstatsiostat | |
/proc/partitions | cat /proc/partitionslsblk | |
/proc/filesystems | nodev 表示不依赖块设备) | cat /proc/filesystems |
/proc/mounts | cat /proc/mountsmount | |
/proc/cmdline | cat /proc/cmdline | |
/proc/bootconfig | cat /proc/bootconfig | |
/proc/version | cat /proc/versionuname -a | |
/proc/sysvipc/ | ls /proc/sysvipc | |
/proc/kcore | cat /proc/kcore | |
/proc/kmsg | dmesg | |
/proc/modules | cat /proc/moduleslsmod | |
/proc/softirqs | cat /proc/softirqs | |
/proc/interrupts | cat /proc/interrupts | |
/proc/pressure/ | Linux 5.14+ | cat /proc/pressure/cpu |
/proc/slabinfo | CONFIG_SLABINFO) | cat /proc/slabinfo |
/proc/vmstat | cat /proc/vmstatvmstat 1 | |
/proc/zoneinfo | cat /proc/zoneinfo |
cat 或 ls) | ||
|---|---|---|
/proc/<pid>/cmdline | \0 分隔) | cat /proc/$$/cmdline |
/proc/<pid>/environ | \0 分隔) | cat /proc/$$/environ |
/proc/<pid>/status | cat /proc/$$/status | |
/proc/<pid>/stat | ps) | cat /proc/$$/stat |
/proc/<pid>/statm | cat /proc/$$/statm | |
/proc/<pid>/maps | cat /proc/$$/maps | |
/proc/<pid>/smaps | cat /proc/$$/smaps | |
/proc/<pid>/fd/ | ls -l /proc/$$/fd | |
/proc/<pid>/fdinfo/ | cat /proc/$$/fdinfo/0 | |
/proc/<pid>/task/ | <tid>) | ls /proc/$$/task |
/proc/<pid>/wchan | cat /proc/$$/wchan | |
/proc/<pid>/stack | CONFIG_STACKTRACE) | cat /proc/$$/stack |
/proc/<pid>/syscall | cat /proc/$$/syscall | |
/proc/<pid>/cwd | ls -l /proc/$$/cwd | |
/proc/<pid>/root | ls -l /proc/$$/root | |
/proc/<pid>/exe | ls -l /proc/$$/exe | |
/proc/<pid>/ns/ | ls -l /proc/$$/ns |
$ cat /proc/$$/status | grep -E "^(VmRSS|VmSize):"VmRSS: 12340 kBVmSize: 45678 kB
/proc/sys/kernel/ | hostnameosrelease, sysrq(启用 SysRq) | |
/proc/sys/net/ | ip_forwardtcp_timestamps,tcp_sack | |
/proc/sys/vm/ | overcommit_memoryswappiness,drop_caches | |
/proc/sys/fs/ | file-maxinode-max | |
/proc/sys/fs/file-nr | ||
/proc/sys/user/ | max_user_namespaces | |
/proc/sys/dev/ | cdrom/autoeject | |
/proc/sys/debug/ | verboseCONFIG_DEBUG_KERNEL) | |
/proc/sys/kernel/random/entropy_avail |
| 开启 IPv4 转发 | net.ipv4.ip_forward | ||
| 降低 swap 使用倾向 | vm.swappiness | ||
| 关闭 ICMP 重定向 | net.ipv4.conf.all.accept_redirectssend_redirects | ||
| 限制文件句柄 | fs.file-maxfs.nr_open | ||
| 开启 TCP BBR | net.ipv4.tcp_congestion_control | ||
| 打开 Nagle | net.ipv4.tcp_nodelay | ||
| 允许核心转储 | kernel.core_pattern | /tmp/core-%e-%p |
/proc/net/dev | cat /proc/net/devifconfig / ip -s link | |
/proc/net/tcp | cat /proc/net/tcpnetstat -tn | |
/proc/net/udp | cat /proc/net/udpnetstat -un | |
/proc/net/raw | ||
/proc/net/unix | cat /proc/net/unix | |
/proc/net/snmp | cat /proc/net/snmpsnmpwalk | |
/proc/net/netstat | cat /proc/net/netstat | |
/proc/net/arp | cat /proc/net/arparp -a | |
/proc/net/nf_conntrack | nf_conntrack) | cat /proc/net/nf_conntrack |
/proc/self | /proc/<pid> | |
/proc/thread-self | /proc/<pid>/task/<tid> | |
/proc/1 | ||
/proc/[pid]/ns/ | nsenter、unshare 使用 | |
/proc/kmsg | dmesg | |
/proc/bootconfig | /proc/cmdline 类似但更结构化 | |
/proc/pressure/* | 5.14+ | cat /proc/pressure/cpu |
/proc/sysrq-trigger | echo "c" > /proc/sysrq-trigger 触发内核崩溃 (慎用) |
ps, | /proc/<pid>/stat, |
free, | /proc/meminfo, |
uptime, | /proc/uptime, |
lsof | /proc/<pid>/fd, |
netstat, | /proc/net/tcp, |
iostat | /proc/diskstats, |
pidstat | /proc/<pid>/stat |
systemd-cgtop | /proc/<pid>/cgroup(在 systemd 管理的层级) |
crictl, | /proc/<pid>/status, |
| 只读/可写权限 | /proc/sys | sudo 或具备相应 capability 的进程。 |
| 信息泄露 | /proc/<pid>/environ/proc/<pid>/cmdline、/proc/<pid>/fd/* 常暴露敏感信息(如密码、环境变量)。 | proc_trap(如 gvisor)或 sysctl kernel.deny_other_userns=1 限制非特权用户访问。 |
| /proc/sys/kernel/sysrq | echo 0 > /proc/sys/kernel/sysrq 或在 sysctl.conf 中设 kernel.sysrq = 0。 | |
| 大量读取 /proc | cat /proc/*/status 会导致 /proc 大量遍历,增加 CPU 开销。 | pidfd_open + readlink /proc/self/fd/ 或 cgroup 统计,避免全遍历。 |
| /proc/kmsg | /proc/kmsg 时只能有一个成功读取。 | dmesg(它内部实现了 O_NONBLOCK + select)或 journalctl -k。 |
| NUMA 信息 | /proc/zoneinfonumactl --hardware 不一致时,说明系统没有正确配置 NUMA。 | numactl --interleave=all 或 sysctl vm.zone_reclaim_mode=0 调整。 |
| 容器内 /proc 只读 | /proc 以 只读 方式挂载,防止进程修改内核参数。 | --privileged(不推荐)或使用 security-opt 重新挂载。 |
| sysfs | /sys | /proc 更规范) |
| cgroup | /sys/fs/cgroup/sys/fs/cgroup/systemd) | |
| debugfs | /sys/kernel/debug | CONFIG_DEBUG_FS) |
| tracefs | /sys/kernel/tracing | |
| configfs | /config |