Chinaunix首页 | 论坛 | 博客
  • 博客访问: 108599
  • 博文数量: 45
  • 博客积分: 1810
  • 博客等级: 上尉
  • 技术积分: 345
  • 用 户 组: 普通用户
  • 注册时间: 2009-09-03 21:57
文章分类
文章存档

2010年(26)

2009年(19)

我的朋友

分类: LINUX

2010-05-01 09:53:42

/proc/meminfo
这在/proc/目录中是更普遍使用的文件之一,例如它报告给系统许多关於目前的RAM(随机存取储存器)用法的有价值的资讯。 有256MB内存和 384MB 交换空间的一个系统的 / proc/ meminfo 文件类似这: 
total: used: free: shared: buffers: cached:
Mem: 261709824 253407232 8302592 0 120745984 48689152
Swap: 402997248 8192 402989056
MemTotal: 255576 kB
MemFree: 8108 kB
MemShared: 0 kB
Buffers: 117916 kB
Cached: 47548 kB
Active: 135300 kB
Inact_dirty: 29276 kB
Inact_clean: 888 kB
Inact_target: 0 kB
HighTotal: 0 kB
HighFree: 0 kB
LowTotal: 255576 kB
LowFree: 8108 kB
SwapTotal: 393552 kB
SwapFree: 393544 kB



这里的很多信息被free, top和 ps 指令引用。 事实上,指令free的输出在内容和结构上都与/proc/meminfo相似。 但是直接地察看 /proc/meminfo,更多的细节被显示: 


Mem —显示在系统中内存的目前状态, 包括总共的,使用的,自由的,共享的,缓冲的, 和高速缓冲存储器(cache),它们均以byte表示。 

Swap—以byte显示交换空间总共的,使用的,自由的。 

MemTotal —物理内存的总数量,以kb为单位。 

MemFree —被系统留着未用的物理内存,以kb为单位。 

MemShared —不被2.4和更高版本的内核使用的,为与比较早的内核版本保持兼容性而保留。 

Buffers—被缓冲文件使用的内存的总数, 以kb为单位。 

Cached—被高速缓冲存储器(cache memory)用的内存的总数量, 以kb为单位。 

Active—在活跃使用中的缓冲或高速缓冲存储器页面文件的总数量, 以kb为单位。 

Inact_dirty —缓冲或高速缓冲存储器页面的总数量, 以kb为单位, 可能是自由的(未使用的)和可利用的。 

Inact_clean —缓冲或高速缓冲存储器页面的总数量,以kb为单位,肯定是自由的和可利用的。 

Inact_target —平均过一分钟每秒净余量的分配(The net amount of allocations per second),以kb为单位。(Inact_target — The net amount of allocations per second, in kilobytes, averaged over one minute.) 

HighTotal 和 HighFree —内存的全体的和自由的量, 分别地,那是间接的在内核空间之内的映射。 HighTotal 数值能改变,基於使用的内核的类型。 

LowTotal 和 LowFree —内存的全体的和自由的量,分别地,那是直接的在内核空间之内的映射。 LowTotal 数值能改变,基於使用的内核的类型。 

SwapTotal —可用的交换空间的总数量, 以kb为单位。 

SwapFree —自由的交换空间的总数量, 以kb为单位 

/proc/misc
这个文件列出各种的主要设备上被注册的各种驱动,这些设备号码 为10: (This file lists miscellaneous drivers registered on the miscellaneous major device, which is device number 10:) 

135 rtc
1 psaux
134 apm_bios


第一栏在是每个设备的较小数目 ,第二栏表明正在使用的驱动器(The first column is the minor number of each device, and the second column shows the driver in use)。 

/proc/modules
这个文件显示所有被载入内核的模块的列表。 它的内容可能会改变,取决于你的系统的配置和使用,但是它应该以相似的方式被组织成以下这个样本 /proc/modules文件的输出: 
ide-cd 27008 0 (autoclean)
cdrom 28960 0 (autoclean) [ide-cd]
soundcore 4100 0 (autoclean)
agpgart 31072 0 (unused)
binfmt_misc 5956 1
iscsi 32672 0 (unused)
scsi_mod 94424 1 [iscsi]
autofs 10628 0 (autoclean) (unused)
tulip 48608 1
ext3 60352 2
jbd 39192 2 [ext3]


第一栏包含模块的名字。 第二个栏表明模块占用内存的大小,以b作单位。 第三栏告诉你是否模块现在被载入 (1) 或未被载入 (0)。最后一栏表明模块是否能在没有使用一段时期之后自动地卸货它本身(autoclean),是否它不被利用(unused).所在行列有名字在括号中(象[ or ]) 任何模块告诉你这个模块依赖另外的模块(Any module with a line containing a name listed in brackets ([ or ]) tells you that this module depends upon another module to be present in order to function)。

/proc/mounts
这个文件简明列出正被系统使用中的所有的挂载点(mounts): 
rootfs / rootfs rw 0 0
/dev/hda2 / ext3 rw 0 0
/proc /proc proc rw 0 0
/dev/hda1 /boot ext3 rw 0 0
none /dev/pts devpts rw 0 0
none /dev/shm tmpfs rw 0 0
none /proc/sys/fs/binfmt_misc binfmt_misc rw 0 0



在这里的输出与/ etc/mtab的内容类似, 除了 /proc/mount可能是才更新的。 

第一栏指明被挂载的设备,第二个栏显示挂载点( mountpoint)。第三个栏告诉文件系统类型,第四个栏告诉你是否它被挂载成只读 (ro) 或可读可写(rw)。 第五栏和第六栏是虚拟数值,它们被设计成与/etc/mtab的格式匹配。 

/proc/mtrr
这个文件表明在使用中的系统目前内存范围记录器 (MTRRs) 。 如果你系统的结构支持 MTRRs,你的 mtrr 可能看起来相似以下(This file refers to the current Memory Type Range Registers (MTRRs) in use with the system. If your system's architecture supports MTRRs, your mtrr might look something like this:): 
reg00: base=0x00000000 ( 0MB), size= 64MB: write-back, count=1


MTRRs 与intel P6系列处理器 (Pentium 2 和更高的)一同使用,而且他们被用来控制处理器访问内存的范围。 当使用 PCI 或 AGP 插槽上的显卡的时候, 适当地配置 / proc/ mtrr 文件能获得超过 150% 的性能. 

大部份时间,这个数值会为你适当地配置。要得到更多有关MTRRs的资讯和手动配置这个文件,请看
。 

/proc/ partitions
除了下列各项以外,这里的大部份信息对使用者来说不太重要: 


major—设备的主要数目。 主要的数目在我们的例子 (3) 中用 区块设备 ide0 符合在 /proc/ devices(major — The major number of the device with this partition. The major number in our example (3) corresponds with the block device ide0 in /proc/devices。) 

minor—设备的较小数目。 这服侍在~结束的时候分割的名字分开分割进不同的实际设备之内并且与~有关数目。(minor — The minor number of the device with this partition. This serves to separate the partitions into different physical devices and relates to the number at the end of the name of the partition ) 

# blocks—列表被包含在特别的分割实际的磁盘区块的数目(#blocks — Lists the number of physical disk blocks contained in a particular partition。) 

name—分割的名字(name — The name of the partition)。 

/proc/pci
这个文件包含你系统上的每个 PCI 设备的一个完整的列表。取决于你有的 PCI 设备的数目,/proc/ pci 能相当长。 来自一个基本系统上的这个文件的一个例子看起来相似这: 
Bus 0, device 0, function 0:
Host bridge: Intel Corporation 440BX/ZX - 82443BX/ZX Host bridge (rev 3).
Master Capable. Latency=64. 
Prefetchable 32 bit memory at 0xe4000000 [0xe7ffffff].
Bus 0, device 1, function 0:
PCI bridge: Intel Corporation 440BX/ZX - 82443BX/ZX AGP bridge (rev 3).
Master Capable. Latency=64. Min Gnt=128.
Bus 0, device 4, function 0:
ISA bridge: Intel Corporation 82371AB PIIX4 ISA (rev 2).
Bus 0, device 4, function 1:
IDE interface: Intel Corporation 82371AB PIIX4 IDE (rev 1).
Master Capable. Latency=32. 
I/O at 0xd800 [0xd80f].
Bus 0, device 4, function 2:
USB Controller: Intel Corporation 82371AB PIIX4 USB (rev 1).
IRQ 5.
Master Capable. Latency=32. 
I/O at 0xd400 [0xd41f].
Bus 0, device 4, function 3:
Bridge: Intel Corporation 82371AB PIIX4 ACPI (rev 2).
IRQ 9.
Bus 0, device 9, function 0:
Ethernet controller: Lite-On Communications Inc LNE100TX (rev 33).
IRQ 5.
Master Capable. Latency=32. 
I/O at 0xd000 [0xd0ff].
Non-prefetchable 32 bit memory at 0xe3000000 [0xe30000ff].
Bus 0, device 12, function 0:
VGA compatible controller: S3 Inc. ViRGE/DX or /GX (rev 1).
IRQ 11.
Master Capable. Latency=32. Min Gnt=4.Max Lat=255.
Non-prefetchable 32 bit memory at 0xdc000000 [0xdfffffff].


这个输出展现所有 PCI 设备的列表,以总线,设备,功能来分类(sorted in the order of bus, device, and function)。 不仅仅提供设备的名字和版本 , 这个列表也给你IRQ的详细说明信息,你能很快地找出冲突。 


提示
要得到这个信息的一个更可读的版本,输入: 

lspci -vb



/proc/slabinfo
这个文件给片层次上的关於~的资讯内存用法(This file gives information about memory usage on the slab level)。Linux2.2及更高的内核都用slab pools在页层次上面来管理内存。 普遍用物件有他们的自己片池(Commonly used objects have their own slab pools.)。 下列各项是典型的 /proc/ slabinfo 虚拟文件的部分: 
slabinfo - version: 1.1
kmem_cache 64 68 112 2 2 1
nfs_write_data 0 0 384 0 0 1
nfs_read_data 0 160 384 0 16 1
nfs_page 0 200 96 0 5 1
ip_fib_hash 10 113 32 1 1 1
journal_head 51 7020 48 2 90 1
revoke_table 2 253 12 1 1 1
revoke_record 0 0 32 0 0 1
clip_arp_cache 0 0 128 0 0 1
ip_mrt_cache 0 0 96 0 0 1



这个文件中的数值以下列顺序出现: cache名字,活跃的链接(objects)数目,总链接的数目,链接的大小数目,链接的活跃片 (区块) 的数目,链接的片总数和每片页数(The values in this file occur in the following order: cache name, number of active objects, number of total objects, size of the object, number of active slabs (blocks) of the objects, total number of slabs of the objects, and the number of pages per slab)。 

注意活跃在这种情况下意谓着一个链接是在使用中。 因此一个活跃的链接是在使用中的,而一个活跃的片是包含一个或更多活跃的链接。 

/proc/stat
它记录着自最近开机之后,有关系统的各种不同的数据。 /proc/stat的内容 /proc/stat, 可能相当长,其开始部分与以下相似: 
cpu 1139111 3689 234449 84378914
cpu0 1139111 3689 234449 84378914
page 2675248 8567956
swap 10022 19226
intr 93326523 85756163 174412 0 3 3 0 6 0 1 0 428620 0 60330 0 1368304 5538681
disk_io: (3,0)1408049,445601,5349480,962448,17135856) 
ctxt 27269477
btime 886490134
processes 206458


一些比较常见的统计数据包括: 


CPU—以 jiffies(一秒的 1/100)为单位衡量------在以下各种模式下------用户模式,低优先级用户模式(nice), 系统模式 , 和空闲任务。 在顶端给出了所有的CPU的总数,每个CPU在下面又有它自己的数据列表。 

page—内存页的数目系统的页数有写在和在外到磁盘(page — The number of memory pages the system has written in and out to disk)。 

swap—swap页的数目系统有引进 和在外(swap — The number of swap pages the system has brought in and out)。 

intr —系统有经历的中断数目(intr — The number of interrupts the system has experienced)。 

btime —启动时间,从 1970 年1月 1 日起以秒计算, 以公元纪年。 

/proc/swaps
这个文件测量交换空间和它的利用。 对一个系统来说,只有唯一的一个swap分区, /proc/swap的输出可能看起来类似以下: 
Filename Type Size Used Priority
/dev/hda6 partition 136512 20024 -1


虽然一些信息能在/proc/目录中的其他文件看到,/proc/swap提供一个快照-------每个交换文件名,交换空间的类型,总大小和正在使用中的空间数量(以kb作单位)。 当很多交换文件在使用中的时候 , 前面几栏是有用的。优先级越低,交换文件越可能将要被使用(The lower the priority, the more likely the swap file is to be used)。 

/proc/uptime
这个文件表明自开机以来共运行了多长时间。 / proc/ uptime的输出 相当短: 

350735.47 234388.90


第一个数字告诉你计算机运行的总秒数。 第二个数字告诉你有多少秒机器是空闲的。 

/proc/version
这个文件告诉你 Linux 内核和 gcc 的版本, 和红帽子 Linux 的版本: 
Linux version 2.4.18-0.40 (user@foo.redhat.com)(gcc version 2.96 20000731
(Red Hat Linux 7.2 2.96-102)) #1 Tue May 28 04:28:05 EDT 2002 

通常有关内核的大量的信息被放置在/proc/的目录和子目录中。 

进程目录(Process Directories)
每个/proc/ 目录包含许多目录名。 一个列表可能类似这个: 
dr-xr-xr-x 3 root root 0 Feb 13 01:28 1
dr-xr-xr-x 3 root root 0 Feb 13 01:28 1010
dr-xr-xr-x 3 xfs xfs 0 Feb 13 01:28 1087
dr-xr-xr-x 3 daemon daemon 0 Feb 13 01:28 1123
dr-xr-xr-x 3 root root 0 Feb 13 01:28 11307
dr-xr-xr-x 3 apache apache 0 Feb 13 01:28 13660
dr-xr-xr-x 3 rpc rpc 0 Feb 13 01:28 637
dr-xr-xr-x 3 rpcuser rpcuser 0 Feb 13 01:28 666

这些目录叫做进程目录,因为他们以进程的ID命名且包含进程的详细信息。当使用者运行程序时,在进程目录中对所有者和组的设定都会起作用。 当进程被结束的时候, 它的 /proc/进程目录将消失。 

每个进程目录包含以下文件: 


cmdline —这个文件包含启动进程发出的命令。 

CPU—提供对系统的每个处理器的利用的详细资讯。 在一个双处理器系统上运行某程序会有类似以下的输出: 
cpu 11 3
cpu0 0 0
cpu1 11 3


cwd —一 链接到程序当前工作目录(A symlink to the current working directory for the process.)。 

environ—为程序给出环境变量的列表。环境变数被屈服所有的大写字符,而且数值是在小写(铅字) 字符中(The environment variable is given in all upper-case characters, and the value is in lower-case characters)。 

exe —一链接到可运行的程序。 

fd —一该目录包含进程的所有描述文件。 他们象以下: 
total 0
lrwx------ 1 root root 64 May 8 11:31 0 -> /dev/null
lrwx------ 1 root root 64 May 8 11:31 1 -> /dev/null
lrwx------ 1 root root 64 May 8 11:31 2 -> /dev/null
lrwx------ 1 root root 64 May 8 11:31 3 -> /dev/ptmx
lrwx------ 1 root root 64 May 8 11:31 4 -> socket:[7774817]
lrwx------ 1 root root 64 May 8 11:31 5 -> /dev/ptmx
lrwx------ 1 root root 64 May 8 11:31 6 -> socket:[7774829]
lrwx------ 1 root root 64 May 8 11:31 7 -> /dev/ptmx

maps—包含与进程有关的各种的可执行文件和库文件的内存映像。 这个文件可能相当长, 取决于程序是否复杂, sshd 进程的输出的开始像这一样: 
08048000-08086000 r-xp 00000000 03:03 391479 /usr/sbin/sshd
08086000-08088000 rw-p 0003e000 03:03 391479 /usr/sbin/sshd
08088000-08095000 rwxp 00000000 00:00 0
40000000-40013000 r-xp 00000000 03:03 293205 /lib/ld-2.2.5.so
40013000-40014000 rw-p 00013000 03:03 293205 /lib/ld-2.2.5.so
40031000-40038000 r-xp 00000000 03:03 293282 /lib/libpam.so.0.75
40038000-40039000 rw-p 00006000 03:03 293282 /lib/libpam.so.0.75
40039000-4003a000 rw-p 00000000 00:00 0
4003a000-4003c000 r-xp 00000000 03:03 293218 /lib/libdl-2.2.5.so
4003c000-4003d000 rw-p 00001000 03:03 293218 /lib/libdl-2.2.5.so


mem —被程序占用的内存。 这个文件不能被使用者读取。 

Root-----进程到root目录的链接。 

Stat—程序的状态。 

statm —被进程使用的内存的状态。下面是/proc/ statm 文件的一个样本: 

263 210 210 5 0 205 0


七栏针对不同的方面对程序占用内存做出统计。 从左到右,他们依次是下列各个方面: 


总程序大小, 用kb作单位
内存的大小分配, 用kb作单位

共享的页数目

页数是编码(Number of pages are code )


数据/ 堆叠的页数(Number of pages of data/stack)

库文件的页数(Number of pages of library)

脏页数(Number of dirty pages) 
阅读(962) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~