跳到主要内容

Linux运维-proc

/proc/

/proc是一个虚拟文件系统,它提供了一种机制来访问内核内部数据结构、进程信息以及系统硬件信息等内容。它是 Linux 操作系统特有的,在其他类 Unix 系统中也可能有类似的实现。这个目录下的文件和子目录并不是存储在磁盘上的真实文件,而是由内核在运行时动态生成的,用于向用户空间提供系统的各种实时信息。

主要内容和功能

进程相关信息

# 包含了启动该进程的完整命令行参数。
cat /proc/[PID]/cmdline
# 提供了关于该进程的状态信息,如进程 ID、进程状态(运行、睡眠、僵尸等)、父进程 ID、用户 ID、组 ID、虚拟内存大小、物理内存大小等。这些信息对于监控和管理进程非常有用。
cat /proc/[PID]/status
# 这是一个目录,其中包含了进程打开的文件描述符的链接。每个文件描述符对应的文件或设备都可以通过这些链接访问,这有助于了解进程正在使用的文件资源。
ll /proc/[PID]/fd

系统信息

# 包含了关于 CPU 的详细信息,如 CPU 型号、核心数、缓存大小、CPU 频率等。通过查看这个文件,可以了解系统的 CPU 性能和特性。例如,在多核处理器系统中,可以查看每个核心的详细参数。
cat /proc/cpuinfo
# 提供了系统内存的总体信息,包括总内存、已使用内存、空闲内存、缓存内存、交换空间大小等。这些信息对于系统性能调优和内存管理非常重要。
cat /proc/meminfo
# 记录了系统在过去 1 分钟、5 分钟和 15 分钟内的平均负载。平均负载是指单位时间内系统处于可运行状态和不可中断状态的平均进程数,它可以帮助判断系统的繁忙程度。
cat /proc/loadavg

内核参数相关信息

/proc/sys目录下的内容与/etc/sysctl.conf文件相关。这个目录下的文件用于查看和修改内核参数。例如,/proc/sys/net/ipv4/ip_forward文件对应net.ipv4.ip_forward内核参数,通过读取或写入这个文件可以查看或修改该参数的值。

设备驱动信息(部分)

在/proc目录下还可能存在一些与设备驱动相关的信息,这些信息的具体内容和位置可能因设备和驱动的不同而有所差异。例如,/proc/bus/目录下可能包含了关于系统总线和连接到总线上的设备的信息。

其他类似/proc的虚拟文件系统

  • sysfs(/sys/) sysfs 是 Linux 内核提供的另一个重要的虚拟文件系统,挂载点通常是/sys。它主要用于将内核中的设备驱动模型导出到用户空间,让用户能够方便地访问和管理系统中的设备相关信息。
  • devpts(/dev/pts)devpts 是用于管理伪终端(pseudo - terminal)的虚拟文件系统,挂载点通常是/dev/pts。伪终端主要用于实现终端模拟,例如在远程登录、终端复用器(如 screen 和 tmux)等场景中使用。
  • tmpfs(挂载点多样)tmpfs 是一种基于内存的文件系统,它将文件存储在内存中,而不是磁盘上。tmpfs 的挂载点可以根据需要进行设置,常见的挂载点有/dev/shm。