参考:/proc
/proc简介
本文着重关注/proc目录,查看其中文件并熟悉它。 /proc目录存在于所有Linux系统上,无论什么发行版或体系结构。首先,必须澄清一个误解:
就文件系统这一术语而言,/ proc目录并不是真正的文件系统,它是一个虚拟文件系统,有时也被称为进程信息伪文件系统。
procfs中包含有关进程和其他系统信息的信息。 它映射到/ proc目录并在OS启动时挂载(mount)。
切换到/proc目录,除了普通文件就是一些数字目录。数字目录代表进程,更为熟知的一种叫法是PID。
事实上,相当多Linux命令都是调用此目录中的文件来显示系统相关信息。
例如,'lsmod'与'cat /proc/modules相同,而'lspci'是'cat /proc/pci'相同。
通过更改位于此目录中的文件,您甚至可以在系统运行时读取/更改内核参数(sysctl)。
/proc目录下的文件还有个有趣的想像,就是大多数目录或文件大小都是0(除了kcore,mtrr和self)。对于大小为0的文件或目录,可以把它想象成一扇窗户。内核是一个黑盒子,为了方便我们观察里面到底发生了什么,开个窗户方便我们窥探里面的秘密。
/proc/<fileneme>
/proc/<fileneme>不代表某一具体文件,而是/proc目录下除数字目录外的文件。
/proc/meminfo
首先查看meminfo
[root@localhost proc]# more /proc/meminfo MemTotal: 4028432 kB MemFree: 3719100 kB MemAvailable: 3648008 kB Buffers: 2108 kB Cached: 87436 kB SwapCached: 0 kB Active: 90512 kB Inactive: 68592 kB Active(anon): 70192 kB Inactive(anon): 11080 kB Active(file): 20320 kB Inactive(file): 57512 kB Unevictable: 0 kB Mlocked: 0 kB SwapTotal: 4063228 kB SwapFree: 4063228 kB Dirty: 0 kB Writeback: 0 kB AnonPages: 69572 kB Mapped: 23944 kB Shmem: 11712 kB Slab: 63616 kB SReclaimable: 21248 kB SUnreclaim: 42368 kB KernelStack: 4256 kB PageTables: 3840 kB NFS_Unstable: 0 kB Bounce: 0 kB WritebackTmp: 0 kB CommitLimit: 6077444 kB Committed_AS: 287024 kB VmallocTotal: 34359738367 kB VmallocUsed: 187504 kB VmallocChunk: 34359310332 kB HardwareCorrupted: 0 kB AnonHugePages: 12288 kB CmaTotal: 0 kB CmaFree: 0 kB HugePages_Total: 0 HugePages_Free: 0 HugePages_Rsvd: 0 HugePages_Surp: 0 Hugepagesize: 2048 kB DirectMap4k: 94016 kB DirectMap2M: 3051520 kB DirectMap1G: 3145728 kB