- 论坛徽章:
- 0
|
- ------------------------------------------------------------------------------
- T H E /proc F I L E S Y S T E M
- ------------------------------------------------------------------------------
- /proc/sys Terrehon Bowden <terrehon@pacbell.net>; October 7 1999
- Bodo Bauer <bb@ricochet.net>;
- 2.4.x update Jorge Nerin <comandante@zaralinux.com>; November 14 2000
- ------------------------------------------------------------------------------
- Version 1.3 Kernel version 2.2.12
- Kernel version 2.4.0-test11-pre4
- ------------------------------------------------------------------------------
- 翻译 freedemon <freedemon@msn.com>;
- October 9 2004
- ------------------------------------------------------------------------------
- 目录
- -----------------
- 0 序言
- 0.1 简介
- 0.2 责任
- 1 收集系统信息
- 1.0 proc文件系统概览
- 1.1 进程相关信息子目录
- 1.2 内核数据
- 1.3 IDE接口信息 /proc/ide
- 1.4 网络统计信息 /proc/net
- 1.5 SCSI接口信息 /proc/scsi
- 1.6 并行端口信息 /proc/parport
- 1.7 TTY端口信息 /proc/tty
- 2 调整内核参数
- 2.1 /proc/sys/fs - 文件系统数据
- 2.2 /proc/sys/fs/binfmt_misc - 二进制可执行格式杂项
- 2.3 /proc/sys/kernel - 通用系统参数
- 2.4 /proc/sys/vm - 虚拟内存系统
- 2.5 /proc/sys/dev - 设备相关参数
- 2.6 /proc/sys/sunrpc - 远程过程调用
- 2.7 /proc/sys/net - 网络子系统可调参数
- 2.8 /proc/sys/net/ipv4 - IPV4设置
- 2.9 Appletalk
- 2.10 IPX
- ------------------------------------------------------------------------------
- 绪言
- ------------------------------------------------------------------------------
- 0.1 简介
- ------------------------
- 这份文档最初是Suse Linux的一部分,在后来的时间里,它也成了Linux官方文档的一部分,并随
- 2.4之后版本的内核广为发布。作为对开放源代码社区的回馈,我们整理了这份不完善的文档,希望
- 能给需要它的人以帮助。这份文档最初是为Linux 2.2版本内核编写的,当前它也兼容于2.4版本
- 内核,其中一些高版本内核独有的特性在说明中都已列出。本文包含了/proc文件系统的绝大多数
- 方面,当然,主要针对的平台是Intel X86体系,在PPC, ARM, SPARC, APX和其他平台上可能有
- 少许平台特有的特性会略有不同。在网络部分本文主要针对介绍了IPv4的调整,并少许涉及IPv6、
- IPX以及其他网络协议部分。
- 非常感谢 Alan Cox, Rik van Riel, and Alexey Kuznetsov 以及许许多多帮助编辑这份
- 文档的人们,也非常感谢Andi Kleen 在本文创作过程中做出的巨大贡献。
- 感谢每一位支持Linux和开放源码软件的人们。
- 如果您有任何修正、注释或添加可以联系 Bodo Bauer at bb@ricochet.net,我们非常乐意
- 把它加入这份文档。
- 本文的最新版本可以在如下地址在线阅读(HTML格式):
- http://skaro.nightcrawler.com/~bb/Docs/Proc
- 如果本文的提示导致您的系统有任何问题或者无法正常工作,你可以在Linux内核邮件列表上得到帮助
- linux-kernel@vger.kernel.org 或联系本文原作者 comandante@zaralinux.com.
- 补充:
- 作为一份稍微有点老的文档,译者也准备添加一些新的内容,关于2.6版本内核新结构、某些商业发布
- 添加的内核特性(例如Redhat EL的exec-shield)以及 netfilter防火墙,在后文也会给出更多范
- 例和使用的调整指南。
- 0.2 责任
- ---------------
- 作者如是说:
- 我们不能保证这份文档的正确性,因此如果因为这份文档的错误导致您在系统配置过程中引发任何中断、
- 错误或数据损失,作者不会负任何责任,只能对您的损失表示“遗憾”。
- 译者如是说:
- 由于水平所限,我同样不能保证翻译的完整性和准确性。同时由于Linux内核是一个发展迅速的项目,将
- 会不断有新特性和信息加入进来,由于开源世界的大量兼容和不兼容补丁的存在,也可能有许多差异的地
- 方;同时相关于您的硬件环境以及加载的驱动和内核模块,可能系统表现也会略微有不同之处。
- 欢迎纠错与指正,信息可以反馈到 mail: freedemon &at msn &dot com
- ------------------------------------------------------------------------------
- 第一章: 收集系统信息
- ------------------------------------------------------------------------------
- ------------------------------------------------------------------------------
- 在这一章中,我们将...
- ------------------------------------------------------------------------------
- * 了解Linux伪文件系统/proc的相关属性,以及系统运行期间它所能提供的信息和功能
- * 考察 /proc 结构
- * 研究 /proc 文件系统中的不可调(只读)内核参数/信息及其作用
- ------------------------------------------------------------------------------
- 1.0 proc文件系统总览
- -----------------------------------
- 在类Unix系统中体现了一种良好的抽象哲学,就是几乎所有的数据实体都被抽象成一个统一的接口
- --文件来看待,这样我们就可以用一些简单的基本工具完成大量复杂的操作。在Linux中存在着一类
- 特殊的伪文件系统,用于使用与文件接口统一的操作来完成各种功能,例如ptyfs、devfs、sysfs
- 和procfs。而procfs就是其中应用最广泛的一种伪文件系统。
- procfs是Linux内核信息的抽象文件接口,大量内核中的信息以及可调参数都被作为常规文件映射到
- 一个目录树中,这样我们就可以简单直接的通过echo或cat这样的文件操作命令对系统信息进行查取
- 和调整了。同时procfs也提供了一个接口,使得我们自己的内核模块或用户态程序可以通过procfs
- 进行参数的传递。在当今的Linux系统中,大量的系统工具也通过procfs获取内核参数,例如ps、
- lspci等等,没有procfs它们将可能不能正常工作。
- procfs的使用如同常规的文件系统一样,例如加载一个procfs (首先确定你的内核已经支持procfs,
- 默认如此):
-
- # mount -t proc none /proc
- #
- 也可以在/etc/fstab中加入如下一行使系统在启动时自动加载procfs(大多数系统中也是默认如此):
- none /proc proc defaults 0 0
- 在proc文件系统中,主要包含三大类内容,进程相关部分,系统信息部分,以及系统子系统部分。
- 在下面我们可以看到一个典型的procfs布局:
- >; ls /proc
- 1 2 2166 2281 cmdline interrupts meminfo stat
- 13 2001 2167 3 cpuinfo iomem misc swaps
- 1646 2042 2168 4 crypto ioports modules sys
- 1780 2058 2169 5 devices irq mounts sysrq-trigger
- 1834 2087 2170 6 dma isapnp mtrr sysvipc
- 1838 2096 2171 7 driver kcore net tty
- 1857 2107 2207 71 execdomains kmsg partitions uptime
- 1877 2117 2208 8 fb ksyms pci version
- 1889 2143 2216 9 filesystems loadavg scsi
- 1905 2153 2217 apm fs locks self
- 1960 2165 2219 bus ide mdstat slabinfo
- 在上面的布局中我们可以看到procfs包含的内容:
- * 进程相关部分 (只读)
- 这部分文件都是以数字为名的子目录,这个数字就是相关进程的进程ID,在 1.1节中会详细介绍进程
- 相关子目录的结构和信息。
- 需要注意的是procfs中进程子系统部分的一个特殊点,就是/proc/self,它是指向当前执行进程的
- 符号连接,或者说--是指向未来你将要执行指令的心灵感应:
- >; cat self/cmdline
- catself/cmdline
- 在这个命令中,我们希望它显示当前进程的cmdline参数,它恰恰就显示了当前进程--我们所执行的
- 这条命令,cat self/cmdline。幸好这条指令显示出的信息会忽略空格,导致显示略微的不正常,
- 否则我们倒是可以很容易的使用`cat self/cmdline`这样的命令制造出永远循环执行的进程来。;>;
- * 内核信息部分 (只读)
- 这部分文件同样处于/proc的顶层目录,不过它们大部分都是常规、只读的文本文件,可以直接用cat
- 查看信息。作为系统内核执行体的抽象,我们也可以把它看作内核"进程"的信息部分,当然虽然并不
- 存在这个进程实体。这里比较特别的一个文件是 /proc/cmdline :
- >;cat cmdline
- ro root=/dev/hda2
- 在这个文件中存放的是系统内核引导时的命令行参数。此部分内容将在 1.3节中说明。
- * 内核各子系统相关部分 (部分可调)
- 这部分是系统内核参数调整的重头戏,在procfs中,除去上面所述的两部分内容外,还有很大一部分
- 信息文件被存放在了一些并非以数字命名的特殊目录中,这些目录下的信息就是内核各个重要子系统
- 的信息和可调参数,主要有:
- bus 总线信息(只读)
- drivers 驱动信息(只读)
- fs 文件系统特别信息(只读)
- ide IDE接口信息(只读)
- irq IRQ信息(只读)
- net 网络子系统信息(只读)
- scsi SCSI系统信息(只读)
- sysvipc IPC子系统信息(只读)
- tty tty子系统信息(只读)
- sys 系统内核可调参数 (可调)
- 作为Linux系统内核参数的抽象文件接口,Linux内核的大部分默认可调参数都被放在了 /proc/sys
- 目录下,这些参数都以常规文件的形式体现,并且可以用echo/cat等文件操作命令进行调整,调整的
- 效果是即时的,并且在系统运行的整个生命周期之间都有效(知道再次改变它们或者系统重启)。
- 当然Linux也提供了另外一种途径sysctl来调整这些参数,sysctl是从BSD系统继承而来的一种系统
- 参数动态调整方法,sysctl的使用更为简单,并且可以使用/etc/sysctl.conf保存配置以在下次启
- 动时自动加载这些设置。对于sysctl可调参数体积调整方法将在另一篇文章中说明。
- 对于内核信息和参数的说明将在 1.4 - 1.7节中解释;对于/proc/sys中的可调参数将在第二章中详
- 细说明。
- 1.1 进程相关子目录
- -----------------------------------
- 在/proc目录中包含了一些以数字为名的子目录,这些目录就是系统当前运行进程的proc抽象。每一个
- 目录都以相关联的活动系统进程PID为目录名,在目录下包含了一些文件,用于显示进程相关的信息。
- 每个进程映射子目录的结构都如 Table 1-1.
- Table 1-1: 在 /proc 目录中的进程相关入口文件
- ..............................................................................
- 文件名 内容
- cmdline 执行进程的命令行参数
- cpu 在SMP系统中近程最后的执行CPU (2.4)(smp)
- cwd 到当前工作目录的符号链接
- environ 环境变量
- exe 链接到进程对应的源可执行文件
- fd 包含所有进程打开的文件描述符的子目录
- maps 进程内存映射,包含进程执行空间以及动态链接库信息 (2.4)
- mem 进程内存空间
- root 连接到进程执行时的 / (root)目录
- stat 进程状态
- statm 进程内存状态信息
- status 进程状态总览,包含进程名字、当前状态和各种信息统计
- ..............................................................................
- 举例来说,要获取一个进程的状态,只要读取下面进程PID子目录下的status文件 /proc/PID/status:
- >;cat /proc/self/status
- Name: cat
- State: R (running)
- Pid: 5452
- PPid: 743
- TracerPid: 0 (2.4)
- Uid: 501 501 501 501
- Gid: 100 100 100 100
- Groups: 100 14 16
- VmSize: 1112 kB
- VmLck: 0 kB
- VmRSS: 348 kB
- VmData: 24 kB
- VmStk: 12 kB
- VmExe: 8 kB
- VmLib: 1044 kB
- SigPnd: 0000000000000000
- SigBlk: 0000000000000000
- SigIgn: 0000000000000000
- SigCgt: 0000000000000000
- CapInh: 00000000fffffeff
- CapPrm: 0000000000000000
- CapEff: 0000000000000000
- 如同第一节所说,/proc/self连接指向读取它自身的进程映像,在之后一节的例子中都将以
- 它作为我们的范例。
- 这条命令显示的信息与你通过 /bin/ps 命令获取到的进程信息基本相同,这恰巧是因为,ps
- 也是通过读取procfs来获取这些信息的。statm 文件包含了更详细的进程内存状态,statm
- 的详细内容按照数据项由左向右依次如 Table 1-2.
- >; cat /proc/self/statm
- 105 105 93 4 12 89 12
- Table 1-2: statm文件的内容
- ..............................................................................
- 数据项 内容
- size 程序大小
- resident 常驻内存空间大小
- shared 共享内存页数
- trs 代码段占用内存页数
- drs 数据/堆栈段占用内存页数
- lrs 引用库占用内存页数
- dt 脏页数量
- ..............................................................................
- 1.2 内核数据
- ---------------
- 相似于进程入口,在/proc目录下的其他一些文件给出了内核信息数据,这些文件包含了系统
- 当前运行内核相关信息。/proc目录下内核相关信息文件在Table 1-3 中列出,依赖于您的
- 系统配置和加载的内核模块,在您的系统中的显示可能会略有不同。
- Table 1-3: Kernel info in /proc
- ..............................................................................
- 文件 内容
- apm 高级电源管理信息
- bus bus总线相关信息
- cmdline 内核引导命令行参数
- cpuinfo cpu信息
- devices 当前可用设备 (包含所有块设备和字符设备)
- dma DMA通道使用状况
- filesystems 当前内核支持的文件系统
- driver 驱动相关信息 (2.4)
- execdomains 安全相关的Execdomains信息 (2.4)
- fb Frame Buffer 设备 (2.4)
- fs 本地文件系统参数 (2.4)
- ide IDE子系统相关信息的子目录
- interrupts 中断使用状况
- iomem 内存映射图 (2.4)
- ioports I/O端口使用状况
- irq 关联到cpu的irq使用状况 (2.4)(smp?)
- isapnp ISA PnP (即插即用) 信息 (2.4)
- kcore Kernel core image,内核转储映像 (2.4)
- kmsg Kernel messages
- ksyms Kernel symbol table,内核符号表
- loadavg 最后1、5 、15 分钟的平均负载
- locks Kernel locks, 内核锁信息
- meminfo 内存信息
- misc 内核信息杂项
- modules 已加载内核模块列表
- mounts 已加载的文件系统
- net 网络子系统信息
- partitions 已识别的本地系统分区表
- pci PCI总线相关信息,在新版本中指向 /proc/bus/pci/ 目录 (2.4)
- rtc rtc实时钟
- scsi SCSI 总线信息
- slabinfo Slab 内存分配池信息
- stat 内核状态总览
- swaps Swap 空间状态
- sys 内核系统参数 (参见第二章)
- sysvipc SysVIPC 资源状态 (msg, sem, shm) (2.4)
- tty TTY驱动信息
- uptime 系统 uptime
- version 内核版本
- video video 资源状态 (2.4)
- ..............................................................................
- 在proc文件系统中大多数文件都是可读的文本,可以直接使用系统中的常规文件处理命令进行操作。
- 当然,这也依赖于目标文件的权限属性。例如要查看系统中断信息 /proc/interrupts:
- >; cat /proc/interrupts
- CPU0
- 0: 8728810 XT-PIC timer
- 1: 895 XT-PIC keyboard
- 2: 0 XT-PIC cascade
- 3: 531695 XT-PIC aha152x
- 4: 2014133 XT-PIC serial
- 5: 44401 XT-PIC pcnet_cs
- 8: 2 XT-PIC rtc
- 11: 8 XT-PIC i82365
- 12: 182918 XT-PIC PS/2 Mouse
- 13: 1 XT-PIC fpu
- 14: 1232265 XT-PIC ide0
- 15: 7 XT-PIC ide1
- NMI: 0
- 在2.4版内核中,当使用了SMP时这个文件末尾会多出两行SMP相关属性 LOC & ERR :
- >; cat /proc/interrupts
- CPU0 CPU1
- 0: 1243498 1214548 IO-APIC-edge timer
- 1: 8949 8958 IO-APIC-edge keyboard
- 2: 0 0 XT-PIC cascade
- 5: 11286 10161 IO-APIC-edge soundblaster
- 8: 1 0 IO-APIC-edge rtc
- 9: 27422 27407 IO-APIC-edge 3c503
- 12: 113645 113873 IO-APIC-edge PS/2 Mouse
- 13: 0 0 XT-PIC fpu
- 14: 22491 24012 IO-APIC-edge ide0
- 15: 2183 2415 IO-APIC-edge ide1
- 17: 30564 30414 IO-APIC-level eth0
- 18: 177 164 IO-APIC-level bttv
- NMI: 2457961 2457959
- LOC: 2457882 2457881
- ERR: 2155
- NMI是每个CPU上产生的不可屏蔽中断(Non Maskable Interrupt)的计数;
- LOC是每个CPU上APIC本地中断的计数。
- ERR是SMP系统中IO-APIC总线失败错误的计数,如果这个数量太高,可能你的内核运行会有
- 问题,这时候就需要测试内核,查看硬件和APIC是否有兼容性问题。
- 在2.4内核中irq相关的内核信息被放在/proc/irq目录下,在这个目录下包含一个文件
- prof_cpu_mask和每个IRQ独属的一个子目录。
-
- >; ls /proc/irq/
- 0 10 12 14 16 18 2 4 6 8 prof_cpu_mask
- 1 11 13 15 17 19 3 5 7 9
- >; ls /proc/irq/0/
- smp_affinity
- 2.4内核中可以使用IRQ绑定属性,是某个或全部的IRQ挂接到SMP集合中的某个CPU上,这个
- 特性可以通过prof_cpu_mask和smp_affinity来调整。在默认情况下这两个文件的内容都
- "ffffffff",作为一个位映射而存在,你可以使用echo命令来指定一个CPU处理IRQ事件。
- >; cat /proc/irq/0/smp_affinity
- ffffffff
- >; echo 1 >; /proc/irq/prof_cpu_mask
- 这天命令的结果就是系统中只有第一个CPU可以捕获IRQ事件,如果您使用的是"echo 5"的话
- 那么第一和第四个CPU都可以捕获和处理事件(1 + 4)。
- 在默认情况下IRQ事件由IO-APIC分配,它将轮询每个配置中的CPU,等待其中一个处理事件
- 响应。
- 在slabinfo文件文件中我们可以看到Linux内核的内存分配池信息,2.4版本内核中使用slab
- 算法来为内核对象(网络缓存、目录高速缓存以及文件分配表等等)分配内存页。
- 在/proc目录下还有三个重要的目录: net,scsi和sys,我们会在后面的章节中陆续描述;此
- 外如果您的系统中没有SCSI设备(或没有SCSI驱动)的话,/proc/scsi目录是不存在的。
- 1.3 IDE设备 /proc/ide
- ----------------------------
- /proc/ide目录下包含了所有内核识别出的IDE设备的信息。在/proc/ide目录下包含drivers
- 文件和若干个以IDE设备名或IDE控制器名为名的子目录。
- >; ls -alF /proc/ide/
- total 3
- dr-xr-xr-x 4 root root 0 10月 9 23:36 ./
- dr-xr-xr-x 54 root root 0 2004-10-10 ../
- -r--r--r-- 1 root root 0 10月 9 23:36 drivers
- lrwxrwxrwx 1 root root 8 10月 9 23:36 hda ->; ide0/hda/
- lrwxrwxrwx 1 root root 8 10月 9 23:36 hdb ->; ide0/hdb/
- lrwxrwxrwx 1 root root 8 10月 9 23:36 hdc ->; ide1/hdc/
- dr-xr-xr-x 4 root root 0 10月 9 23:36 ide0/
- dr-xr-xr-x 3 root root 0 10月 9 23:36 ide1/
- -r--r--r-- 1 root root 0 10月 9 23:36 piix
- drivers文件包含了当前加载的IDE设备驱动:
- >; cat /proc/ide/drivers
- ide-floppy version 0.99.newide
- ide-disk version 1.17
- ide-default version 0.9.newide
- 在/proc/ide目录下还可以看到其他一些以设备命名的目录,在这些目录下我们可以看到更
- 详细的信息。piix是IDE控制芯片组的名字,在你的系统中可能是其他名字。此外还包含若
- 干个(一般的PC上是2个)IDE控制器为名的目录,以及以IDE终端设备名命名的快捷方式,它
- 门将链接到控制器目录下对应的设备文件上。
- 在ide*目录中我们可以得到更多的信息,如 Table 1-4.
- Table 1-4: IDE控制器信息 /proc/ide/ide?
- ..............................................................................
- 文件名 内容
- channel IDE通道 (0 or 1)
- config 配置 (only for PCI/IDE bridge)
- mate Mate name
- model IDE控制器的类型/芯片组
- hd? IDE总线上连接的可用设备
- ..............................................................................
- 当前连接在控制器上的每个设备也将成为一个单独的子目录,如 Table 1-5.
- Table 1-5: IDE 设备信息
- ..............................................................................
- 文件名 内容
- cache 设备缓存大小
- capacity 设备数据块数量 (按 512Byte 块)
- driver 驱动和版本
- geometry 物理和逻辑的设备参数
- identify 设备标示块
- media 媒体类型
- model 设备标识符(型号或名字)
- settings 设备配置参数
- smart_thresholds IDE disk management thresholds
- smart_values IDE disk management values
- ..............................................................................
- 在这里比较有用的信息是settings文件,它包含了一个驱动器相关的信息总览:
- # cat /proc/ide/ide0/hda/settings
- name value min max mode
- ---- ----- --- --- ----
- bios_cyl 526 0 65535 rw
- bios_head 255 0 255 rw
- bios_sect 63 0 63 rw
- breada_readahead 4 0 127 rw
- bswap 0 0 1 r
- file_readahead 72 0 2097151 rw
- io_32bit 0 0 3 rw
- keepsettings 0 0 1 rw
- max_kb_per_request 122 1 127 rw
- multcount 0 0 8 rw
- nice1 1 0 1 rw
- nowerr 0 0 1 rw
- pio_mode write-only 0 255 w
- slow 0 0 1 rw
- unmaskirq 0 0 1 rw
- using_dma 0 0 1 rw
- 1.4 网络信息 /proc/net
- --------------------------------
- /proc/net 子目录包含了系统中网络相关的内核统计信息和视图,常规的文件列表如
- Table 1-7 中说明; 如果你的内核支持IPV6,那么还有一些IPV6相关信息在 Table 1-6中
- Table 1-6: IPv6 信息
- ..............................................................................
- 文件名 内容
- udp6 UDP sockets (IPv6)
- tcp6 TCP sockets (IPv6)
- raw6 Raw 设备状态 (IPv6)
- igmp6 系统当前加入的IP多播地址 (IPv6)
- if_inet6 IPv6 网络接口地址列表
- ipv6_route IPv6 内核路由表
- rt6_stats IPv6 全局路由表状态
- sockstat6 Socket 状态 (IPv6)
- snmp6 Snmp 数据 (IPv6)
- ..............................................................................
- Table 1-7: 网络信息 /proc/net
- ..............................................................................
- 文件名 内容
- arp 内核 ARP 表
- atm atm设备接口信息
- drivers 加载的驱动模块信息
- dev 网络设备以及状态
- dev_mcast 二层多播组以及监听设备信息
- (包含interface index, label, number of references, number of
- bound addresses).
- dev_stat 网络设备状态
- ip_fwchains ipchains 防火墙规则链 (2.2)
- ip_fwnames ipchains 防火墙规则链名 (2.2)
- ip_masq 包含IP伪装映射表的目录 (2.2)
- ip_masquerade 主IP伪装映射表 (2.2)
- netstat 网络状态
- raw 原始设备状态
- route 内核路由表
- rpc 包含rpc信息的目录
- rt_cache 路由cache
- snmp SNMP 数据
- sockstat Socket 状态
- tcp TCP sockets
- tr_rif Token ring RIF 令牌环网路由表
- udp UDP sockets
- unix UNIX domain sockets
- wireless Wireless 接口数据 (Wavelan etc)
- igmp 主机当前加入的IP多播组地址
- psched 全局数据包调度参数
- netlink PF_NETLINK sockets 列表
- ip_mr_vifs 多播虚拟地址列表
- ip_mr_cache 多播路由cache列表
- ..............................................................................
- 由于2.4之后的内核引入了netfilter/iptables防火墙,因此在防火墙部分的信息与2.2
- 略有不同:
- ..............................................................................
- 文件名 内容
- ip_tables_matches iptables支持的过滤模式
- ip_tables_names iptables规则表名字
- ip_tables_targets iptables规则链目标
- ip_conntrack iptables状态检测跟踪表
- ..............................................................................
- 您可以使用这些信息来查看当前系统中可用的网络设备,以及这些设备上通过的流量和路由信息:
- >; cat /proc/net/dev
- Inter-|Receive |[...
- face |bytes packets errs drop fifo frame compressed multicast|[...
- lo: 908188 5596 0 0 0 0 0 0 [...
- ppp0:15475140 20721 410 0 0 410 0 0 [...
- eth0: 614530 7085 0 0 0 0 0 1 [...
-
- ...] Transmit
- ...] bytes packets errs drop fifo colls carrier compressed
- ...] 908188 5596 0 0 0 0 0 0
- ...] 1375103 17405 0 0 0 0 0 0
- ...] 1703981 5535 0 0 0 3 0 0
- 如果系统中使用了Ethernet Channel特性,使若干个物理接口绑定为一个逻辑设备的话,
- 这个逻辑设备将会拥有一个以设备名命名的子目录,其中包含一些bond模块相关的特殊信息。
- 例如把eth0和eth1绑定为设备 bond0 ,那么可以在 /proc/net/bond0/目录下看到bond
- 的特殊信息,例如主从接口、链路状态等等。
- 1.5 SCSI 设备信息
- -------------
- 如果你的系统中含有任何SCSI设备,那么在 /proc/scsi 目录下可以看到系统识别到的SCSI
- 设备相关信息:
- >;cat /proc/scsi/scsi
- Attached devices:
- Host: scsi0 Channel: 00 Id: 00 Lun: 00
- Vendor: IBM Model: DGHS09U Rev: 03E0
- Type: Direct-Access ANSI SCSI revision: 03
- Host: scsi0 Channel: 00 Id: 06 Lun: 00
- Vendor: PIONEER Model: CD-ROM DR-U06S Rev: 1.04
- Type: CD-ROM ANSI SCSI revision: 02
- 系统中的SCSI设备将映射到/proc/scsi目录下形成一个子树,按照对应的设备模块和设备
- 总线号可以查看相应设备的参数信息,例如一个Adaptec AHA-2940 SCSI 适配器:
- >; cat /proc/scsi/aic7xxx/0
-
- Adaptec AIC7xxx driver version: 5.1.19/3.2.4
- Compile Options:
- TCQ Enabled By Default : Disabled
- AIC7XXX_PROC_STATS : Disabled
- AIC7XXX_RESET_DELAY : 5
- Adapter Configuration:
- SCSI Adapter: Adaptec AHA-294X Ultra SCSI host adapter
- Ultra Wide Controller
- PCI MMAPed I/O Base: 0xeb001000
- Adapter SEEPROM Config: SEEPROM found and used.
- Adaptec SCSI BIOS: Enabled
- IRQ: 10
- SCBs: Active 0, Max Active 2,
- Allocated 15, HW 16, Page 255
- Interrupts: 160328
- BIOS Control Word: 0x18b6
- Adapter Control Word: 0x005b
- Extended Translation: Enabled
- Disconnect Enable Flags: 0xffff
- Ultra Enable Flags: 0x0001
- Tag Queue Enable Flags: 0x0000
- Ordered Queue Tag Flags: 0x0000
- Default Tag Queue Depth: 8
- Tagged Queue By Device array for aic7xxx host instance 0:
- {255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255}
- Actual queue depth per device for aic7xxx host instance 0:
- {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}
- Statistics:
- (scsi0:0:0:0)
- Device using Wide/Sync transfers at 40.0 MByte/sec, offset 8
- Transinfo settings: current(12/8/1/0), goal(12/8/1/0), user(12/15/1/0)
- Total transfers 160151 (74577 reads and 85574 writes)
- (scsi0:0:6:0)
- Device using Narrow/Sync transfers at 5.0 MByte/sec, offset 15
- Transinfo settings: current(50/15/0/0), goal(50/15/0/0), user(50/15/0/0)
- Total transfers 0 (0 reads and 0 writes)
- 1.6 并口信息 /proc/parport
- ---------------------------------------
- /proc/parport 包含系统并口信息,按照并口端口号(0,1,2,...)每个设备将映射到一个子
- 目录中。在这个目录下包含的信息如 Table 1-8.
- Table 1-8: /proc/parport 下包含的文件信息
- ..............................................................................
- 文件名 内容
- autoprobe IEEE-1284 标准兼容的设备ID信息
- devices 端口使用的设备驱动列表
- hardware 端口使用的base address, IRQ line 和 DMA channel.
- irq 端口使用的IRQ号,你可以写入一个新值指定IRQ号 (IRQ number or none).
- ..............................................................................
- 1.7 TTY信息 /proc/tty
- -------------------------
- 在/proc/tty目录中包含了系统中当前在用的tty及其信息,在这个目录中也可以找到设备
- 信息和线路disciplines,如 Table 1-9.
- Table 1-9: /proc/tty 中的文件
- ..............................................................................
- 文件名 内容
- drivers 设备及引用计数
- ldiscs registered line disciplines
- driver/serial tty线路状态
- ..............................................................................
- 要查看系统中的当前在用ttys,可以简单的查看 /proc/tty/drivers:
- >; cat /proc/tty/drivers
- pty_slave /dev/pts 136 0-255 pty:slave
- pty_master /dev/ptm 128 0-255 pty:master
- pty_slave /dev/ttyp 3 0-255 pty:slave
- pty_master /dev/pty 2 0-255 pty:master
- serial /dev/cua 5 64-67 serial:callout
- serial /dev/ttyS 4 64-67 serial
- /dev/tty0 /dev/tty0 4 0 system:vtmaster
- /dev/ptmx /dev/ptmx 5 2 system
- /dev/console /dev/console 5 1 system:console
- /dev/tty /dev/tty 5 0 system:/dev/tty
- unknown /dev/tty 4 1-63 console
- ------------------------------------------------------------------------------
- 摘要
- ------------------------------------------------------------------------------
- 本章介绍了 /proc 文件系统提供的系统运行时信息. 在 /proc 文件系统中,您不仅可以
- 简单直接的访问进程相关信息,也可以通过它查看各个方面的系统内核状态。
- 在 /proc 文件系统中,大部分信息都以常规或文本文件的形式反映出来,您可以任意使用
- 简单的文件处理命令来查看它(只要权限允许);如果某些文件不能被查看或者产生乱码,那
- 么它可能是一些特殊类型的文件,需要其它手段来处理,例如 /proc/kcore 可以通过gdb
- 等内核调试工具来查看,而其他一些数据则可以被ps、top等工具所理解。
- ------------------------------------------------------------------------------
复制代码 |
|