Linux下/proc目录的作用

文章是转载过来整理的,方便自己查阅!

1. /proc目录

Linux 内核提供了一种通过 /proc 文件系统,在运行时访问内核内部数据结构、改变内核设置的机制。proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。它以文件系统的方式为访问系统内核数据的操作提供接口。

用户和应用程序可以通过proc得到系统的信息,并可以改变内核的某些参数。由于系统的信息,如进程,是动态改变的,所以用户或应用程序读取proc文件时,proc文件系统是动态从系统内核读出所需信息并提交的。下面列出的这些文件或子文件夹,并不是都是在你的系统中存在,这取决于你的内核配置和装载的模块。另外,在/proc下还有三个很重要的目录:net,scsi和sys。Sys目录是可写的,可以通过它来访问或修改内核的参数,而net和scsi则依赖于内核配置。例如,如果系统不支持scsi,则scsi目录不存在。

除了以上介绍的这些,还有的是一些以数字命名的目录,他们是进程目录。系统中当前运行的每一个进程都有对应的一个目录在/proc下,以进程的PID号为目录名,他们是读取进程信息的接口。而self目录则是读取进程本身的信息接口,是一个link。

2.子文件或子文件夹

/proc/buddyinfo 每个内存区中的每个order有多块可用,和内存碎片问题有关

/proc/cmdline  启动时传递给kernel的参数信息

/proc/cpuinfo  cpu的信息

/proc/crypto  内核使用的所有已安装的加密密码及细节

/proc/devices  已经加载的设备并分类

/proc/dma  已注册使用的ISA DMA 频道列表

/proc/execdomains Linux 内核当前支持的execution domains

/proc/fb  帧缓冲设备列表,包括数量和控制它的驱动

/proc/filesystems  内核当前支持的文件系统类型

/proc/interrupts x86 架构中的每个IRQ中断数

/proc/iomem  每个物理设备当前在系统内存中的映射

/proc/ioports  一个设备的输入输出所使用的注册端口范围

/proc/kcore代表系统的物理内存,存储为核心文件格式,里边显示的是字节数,等于RAM大小加上4kb

/proc/mdstat 多硬盘,RAID配置信息(md=multiple disks)

/proc/loadavg 根据过去一段时间内CPU和IO的负载状态,与uptime命令有关

/proc/meminfo   RAM使用的相关信息

/proc/misc 其他的主要设备(设备号为10)上注册的驱动

/proc/modules  所有加载到内核的模块列表

/proc/mounts  系统中使用的所有挂载

/proc/partitions  分区中的块分配信息

/proc/stat  所有的cpu活动信息

/proc/uptime  系统运行时长

/proc/swaps  交换空间的使用情况

/proc/fs  文件系统信息

/proc/ide  ide设备信息

/proc/net  网卡设备信息

/proc/vmsat  虚拟内存统计信息

/proc/vmcore  内核panic时的内存映像

/proc/diskstats  取得磁盘信息

/proc/scsi  scsi设备信息

以下是/proc目录中进程信息

/proc/N   pid为N的进程信息

/proc/N/cmdline  进程启动命令

/proc/N/cwd  链接到进程当前工作目录

/proc/N/exe  链接到进程的执行命令文件

/proc/N/fd  包含进程相关的所有的文件描述符

/proc/N/maps  与进程相关的内存映射信息

/proc/N/mem  指代进程持有的内存,不可读

/proc/N/stat  进程的状态

/proc/N/status  进程状态信息,比stat/statm更具可读性

/proc/self  链接到当前正在运行的进程

举例:

/proc/sys  系统信息和内核参数
在这里插入图片描述
/proc/net  网卡设备信息

/proc/scsi  scsi设备信息
在这里插入图片描述
/proc/devices  已经加载的设备并分类
[root@50-b3-42-00-16-e3 proc]# cat /proc//devices
Character devices:
1 mem
4 /dev/vc/0
4 tty
4 ttyS
5 /dev/tty
5 /dev/console
5 /dev/ptmx
7 vcs
10 misc
13 input
21 sg
29 fb
89 i2c
90 mtd
128 ptm
136 pts
180 usb

/proc/partitions  分区中的块分配信息

[root@50-b3-42-00-16-e3 proc]# cat /proc/partitions
major minor #blocks name
8 0 62522712 sda
8 1 15608 sda1
8 2 4097014 sda2
8 3 400601 sda3
8 4 15630221 sda4
8 5 4922898 sda5
8 6 32537390 sda6
252 0 81920 iodir-0
252 1 81920 iodir-1
252 2 81920 iodir-2
252 3 81920 iodir-3

/proc/version  linux内核版本和gcc版本
在这里插入图片描述

/proc/sys/fs/file-max  该文件指定了可以分配的文件句柄的最大数目。如果用户得到的错误消息声明由于打开文件数已经大道了最大值,从而他们不能打开更多文件,则可能需要增加该值。可将这个值设置成有任意多个文件,并且能通过将一个新数字值写入该文件来更改该值。默认设置值4096。改变内核的参数,用vi编辑或者echo参数重定向到文件中。

[root@a ~]# cat /proc/sys/fs/file-max

4096

[root@a ~]# echo 8912 > /proc/sys/fs/file-max

[root@a ~]# cat /proc/sys/fs/file-max

8912

如果优化了参数,则可以把它们写成添加到文件rc.local中,使它在系统启动时自动完成修改。

发布了7 篇原创文章 · 获赞 8 · 访问量 506

猜你喜欢

转载自blog.csdn.net/qq_44710568/article/details/104768275