/proc目录简介(一)

/proc是一个内存中的虚拟文件系统,用于反映Linux内核的状态和进程信息。用户可以查看CPU、内存、磁盘I/O等系统信息,以及进程的详细状态、资源限制。通过修改/proc下的文件,还能改变内核设置。/proc目录下的/pid目录提供了读取进程和线程信息的接口,包括文件描述符、堆栈和系统调用等,对于性能分析和故障排查非常有用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

①  proc简介

1) /proc是一个位于'内存'中的'伪'文件系统,也即'虚拟'文件系统;

特点: 它只存在内存当中,而'不占用'外存空间

备注: 通过'll -h'命令查看该目录下的文件,发现几乎所有的文件大小'都是 0'

2) 该目录下保存的并'不是真正'的文件和目录,存储的是当前'内核运行状态'的一系列'特殊'文件;

如: 'CPU' 信息、'负载'信息、系统'内存'信息、'磁盘I/O'信息等;

3) linux内核提供了一种'通过proc文件系统',在运行时访问内核内部的数据结构、改变内核设置的机制

备注: 可以通过 'vim、cat、less、more' 等命令查看'文件'的内容

场景1: 用户可以通过这些文件'查看'有关系统硬件及当前正在运行'进程'的信息;

场景2: 甚至可以通过'更改'其中某些文件来'改变内核'的运行状态;

②  /proc目录

/proc/sys/net常见tcp内核参数的修改

/proc/loadavg含义

+++++++++++++++  "只讲解常用的"  +++++++++++++++

1) /proc/sys/net  -->"重点",但不在本'篇章'讲解

2) /proc/$pid     -->"重点",以'进程的角度'理解

  特点: 以'数字'命名的目录,它们是'进程'目录

  备注1: 当前运行的'每一个进程'都有'对应的一个目'录在 /proc 下

  备注2: 以进程的 'pid 号'为目录名,它们是'读取进程信息'的接口

  [1]、/proc/pid/status          记录'进程'详细信息

  [2]、/proc/pid/task/tid/status 记录'线程'详细信息

  [3]、/proc/pid/limits          查看'进程'的限制情况

如何处理文件中的^@字符

进程保活之oom_adj级别查询

/proc/pid 进程号对应进程目录 | oom_adj | maps | smaps | mem | task | environ

kail系统/proc讲解

limits:   保存了进程使用'资源的限制'信息、软限制、硬限制及单位

exe:      指向启动进程的'可执行文件'

cgroup:   文件、进程所属的控制组,格式为'冒号分隔'的三个字段,分别是'结构id'、子系统、控制组

task:     目录,每个线程一个子目录,'目录名'为'线程id'

stack:    读取进程的'内核堆栈'的'调试'信息

syscall:  查看'进程'挂在哪个'系统调用'上

通过/proc的stack和syscall查看Linux内核态调用栈来定位问题   stack详细解读

self目录深入理解

/proc每个文件详细介绍

③  常见应用场景

++++++++++++++  查看'进程'打开的'文件描述符'个数  ++++++++++++++ 

ls -l /proc/$pid/fd

+++++++++++  "查看进程启动的上下文"  +++++++++++

1) cwd     -->"哪个目录"执行
   
2) environ -->"环境变量"

3) exe     -->"指定命令,不包含参数"

4) cmdline -->"进程启动的完整参数"

备注: 'pid'通过ps -ef | grep pid_name 获取

5) 学会使用'man proc'进行手册查询

 ④  遗留

在'日常'性能分析或者'排错'的过程中,我们会利用'/proc'的哪些信息?

 

ps命令实用的例子 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值