找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

2238

积分

0

好友

291

主题
发表于 12 小时前 | 查看: 2| 回复: 0

/proc 目录是 Linux 系统中一个强大的虚拟文件系统,它提供了大量关于内核状态、进程和系统硬件的实时信息。本文将继续深入解读 /proc 目录下那些对系统管理、性能调优和网络调试至关重要的核心文件,重点聚焦于 /proc/net/proc/sys 这两个功能丰富的子目录。

(15) /proc/misc
此文件报告了由内核函数 misc_register 登记的设备驱动程序。

(16) /proc/modules
此文件提供了当前已加载的内核模块信息。lsmod 命令正是读取此文件来显示每个模块的名称、大小以及被多少进程使用等详细数据。

(17) /proc/mounts
该文件以 /etc/mtab 文件的格式列出了当前系统中所有已挂载的文件系统信息。即使是通过手工挂载、未记录在 /etc/mtab 中的文件系统,也能在此文件中准确反映出来。

(18) /proc/scsi
此目录包含一个列出了所有被检测到 SCSI 设备的文件,并为每种 SCSI 控制器驱动程序提供一个子目录。每个子目录下,又为已安装的该类型控制器的每个实例提供了更详细的子目录。

(19) /proc/stat
这是一个信息宝库,包含了系统全局的统计数据,例如 CPU 利用率、磁盘 I/O、内存页、交换分区状态、中断次数、上下文切换次数,以及系统自 1970 年 1 月 1 日以来的启动时间(以秒为单位)。

(20) /proc/uptime
此文件包含两个数值:系统自上次启动以来运行的总秒数,以及系统处于空闲状态的总秒数。uptime 命令的主要数据源就是它。比较这两个数字可以帮助你从长期角度评估 CPU 资源的闲置比例。

(21) /proc/version
文件内容只有一行,清晰地指明了当前正在运行的内核版本。开发者可以通过编程方式解析这一行信息来获取所需的系统版本数据。

接下来,我们将目光转向网络配置和诊断的核心区域——/proc/net 子目录。

(22) /proc/net
此目录下的文件描述了网络协议栈的行为,并且许多文件都可以通过 arpnetstatrouteipfwadm 等命令来查询或动态修改。

(23) /proc/net/arp
此文件转储了每个网络接口上 ARP(地址解析协议)缓存表的内容。

(24) /proc/net/dev
提供了来自所有网络接口的详细统计信息,包括接收和发送的数据包数、字节数、错误数等。

(25) /proc/net/dev_mcast
列出了二层(数据链路层)的多播组成员信息。

(26) /proc/net/igmp
显示了已加入的 IGMP(Internet 组管理协议)多播组。

(27) /proc/net/netlink
包含有关 Netlink 套接口的信息。Netlink 是一种用于内核与用户空间进程通信的机制。

(28) /proc/net/netstat
提供了网络流量的多种统计信息。文件的第一行是标题行,列出了各个统计变量的名称,紧随其后的一行则是对应的数值。

(29) /proc/net/raw
展示了原始套接口(RAW sockets)的套接口表。

(30) /proc/net/route
包含了内核的静态路由表信息,对于诊断网络连通性问题至关重要。

(31) /proc/net/rpc
这是一个目录,包含了与 RPC(远程过程调用)相关的各类信息。

**(32) /proc/net/rt_cache`` 显示了内核的路由缓存内容。

(33) /proc/net/snmp
提供了 SNMP(简单网络管理协议)代理所需的 IP、ICMP、TCP、UDP 等协议的详细统计。文件内容以交替行列的方式呈现,一行是字段名,下一行是其对应的值。

**(34) /proc/net/sockstat`` 统计了系统中正在使用的 TCP、UDP、RAW 等各类套接口的数量。

(35) /proc/net/tcp
列出了所有 TCP 连接的详细状态表,是分析网络连接状态的核心文件。

(36) /proc/net/udp
列出了所有 UDP 连接的套接口表。

**(37) /proc/net/unix`` 显示了所有 UNIX 域套接口的套接口表。

/proc 目录的另一大功能是动态调整内核参数,这主要通过 /proc/sys 子目录实现。

(38) /proc/sys
此目录下包含了众多子目录,其中的许多可读写文件项可以直接用于调整和优化系统的性能与行为。

首先,我们查看文件系统相关参数。

(39) /proc/sys/fs/file-max
此文件指定了系统全局可以分配的文件句柄(File Descriptor)最大数目。

(40) /proc/sys/fs/file-nr
此文件包含三个数值:当前已分配的文件句柄总数、当前已使用的文件句柄数,以及文件句柄的最大数目(与 file-max 值相同)。

接下来是内核核心参数的配置窗口。

(41) /proc/sys/kernel/
这个目录为系统管理员和高级用户提供了查看和配置系统核心参数的接口。

(42) /proc/sys/kernel/acct
包含三个可配置值,用于控制进程记账功能,其行为取决于包含日志的文件系统上的可用空间百分比。

(43) /proc/sys/kernel/ctrl-alt-del
这个值控制系统在接收到 Ctrl+Alt+Delete 组合键时的反应:

  • 0:捕获该组合键,并将其信号发送给 init 进程。这将允许系统执行一次干净的关机与重启流程,效果类似于执行 shutdown 命令。
  • 1:不捕获该组合键,按下后将执行一次非干净的强制关机,效果类似于直接切断电源。

(44) /proc/sys/kernel/domainname
允许动态配置系统的网络域名(NIS 域名)。

(45) /proc/sys/kernel/hostname
允许动态配置系统的主机名。

(46) /proc/sys/kernel/msgmax
指定了单个进程间通信(IPC)消息允许的最大长度。

**(47) /proc/sys/kernel/msgmnb`` 指定了一个消息队列所能容纳的最大字节总数。

**(48) /proc/sys/kernel/msgmni`` 指定了系统范围内允许存在的消息队列标识符的最大数量。

**(49) /proc/sys/kernel/panic`` 当发生内核严重错误(Kernel Panic)时,此文件的值决定了内核在自动重新引导前等待的秒数。默认值为 0,表示禁止自动重新引导。

(50) /proc/sys/kernel/printk
此文件包含四个数字值,它们根据日志消息的优先级,定义其输出目的地:

  1. 控制台日志级别:优先级高于此值的消息将被打印到系统控制台。
  2. 默认消息日志级别:未指定优先级的消息将使用此优先级。
  3. 最低控制台日志级别:控制台日志级别可被设置的最小值(即最高优先级)。
  4. 默认控制台日志级别:控制台日志级别的默认值。

(51) /proc/sys/kernel/shmall
定义了系统范围内可使用的共享内存总量(以字节为单位)。

**(52) /proc/sys/kernel/shmmni`` 表示整个系统允许的共享内存段的最大数量。

**(53) /proc/sys/kernel/sysrq`` 如果此文件的值非零,则激活 SysRq(Magic System Request)键功能。这是一个强大的内核调试功能。

**(54) /proc/sys/kernel/threads-max`` 指定了内核所能创建和管理的线程最大数目。

最后,我们来看网络核心参数的配置。

(55) /proc/sys/net/core/
此目录下的配置文件主要用来控制内核与网络协议层之间的交互行为,例如设置网络设备队列长度、调节缓冲区大小等,是进行网络性能调优的关键所在。

掌握 /proc 目录下这些文件的含义与用法,是每一位 Linux 系统管理员和开发者深入理解系统内部运作、高效进行问题排查和性能优化的必备技能。




上一篇:C++静态初始化顺序问题深度解析:main函数前崩溃与Meyers Singleton解法
下一篇:MobaXterm专业版破解:Keygen生成自定义许可证解除会话数量限制
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-2-7 20:46 , Processed in 0.461449 second(s), 38 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表