快速业务通道

Linux操作系统下关于内存查看的详细解析

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-05-04

Linux中使用free可以查看系统内存使用状态, 默认单位为k

blue_stone@blueice:~$ free

total used free shared buffers cached

Mem: 2075320 1879172 196148 0 533484 952588

-/  buffers/cache: 393100 1682220

Swap: 2008084 0 2008084

Mem 行显示了从系统角度看来内存使用的情况, total是系统可用的内存大小, 数量上等于系统物理内存减去内核保留的内存. buffers和cached是系统用做缓冲的内存. buffers与某个块设备关联, 包含了文件系统元数据, 并且跟踪了块的变化. cache只包含了文件本身.

-/ buffers/cache行则从用户角度显示内存信息, 可用内存从数量上等于mem行used列值减去buffers和cached内存的大小. buffers和cached是操作系统为加快系统运行而设置的, 当用户需要时, 可以只接为用户使用.

top和vmstat也显示了系统内存的信息, 和free的显示结果类似.

这些命令都是从/proc/meminfo中读取内存信息.

blue_stone@blueice:~$ cat /proc/meminfo

MemTotal: 2075320 kB

MemFree: 25016 kB

Buffers: 763564 kB

Cached: 879860 kB

SwapCached: 0 kB

Active: 1056968 kB

Inactive: 843136 kB

HighTotal: 917440 kB

HighFree: 13892 kB

LowTotal: 1157880 kB

LowFree: 11124 kB

SwapTotal: 2008084 kB

SwapFree: 2008084 kB

Dirty: 4708 kB

Writeback: 0 kB

Mapped: 707152 kB

Slab: 102728 kB

CommitLimit: 3045744 kB

Committed_AS: 691808 kB

PageTables: 2936 kB

VmallocTotal: 114680 kB

VmallocUsed: 14800 kB

VmallocChunk: 98800 kB

关于/proc/meminfo中各行的含意, 在内核源代码的Documentation/filesystems/proc.txt文件中有叙述,系统的真实内存大小可以用dmesg |grep [mM][eE][mM]看到.

blue_stone@blueice:~$ dmesg |grep [mM][eE][mM]

895MB HIGHMEM available.

1152MB LOWMEM available.

HighMem zone: 229360 pages, LIFO batch:31

Memory: 2073292k/2097088k available (1493k kernel code, 21648k reserved, 

546k data, 196k init, 917440k highmem)

Freeing initrd memory: 1079k freed

MEM window: f8000000-f80fffff

highmem bounce pool size: 64 pages

Freeing unused kernel memory: 196k freed

ehci_hcd 0000:00:10.4: irq 177, io mem 0xf8121000

/dev/vmnet: hub 0 does not exist, allocating memory.

[fglrx] Maximum main memory to use for locked dma buffers: 1898 MBytes.

/dev/vmnet: hub 3 does not exist, allocating memory.

/dev/vmnet: hub 1 does not exist, allocating memory.

/dev/vmnet: hub 2 does not exist, allocating memory.

进程使用的内存可以用top, ps来查看top中有3个列 VIRT RES SHR, 标示了进程使用的内存情况, VIRT标识这个进程可以使用的内存总大小, 包括这个进程真实使用的内存, 映射过的文件, 和别的进程共享的内存等. RES标识这个这个进程真实占用内存的大小. SHR标识可以和别的进程共享的内存和库大小.

/proc/pid/status显示一个进程的详细状态, 下面是一个示例:

blue_stone@blueice:~$ cat /proc/5346/status

Name: bash

State: S (sleeping)

SleepAVG: 98%

Tgid: 5346

Pid: 5346

PPid: 5343

TracerPid: 0

Uid: 1000 1000 1000 1000

Gid: 104 104 104 104

FDSize: 256

Groups: 6 24 29 44 104 113 1000 1001

VmPeak: 6528 kB

VmSize: 6528 kB

VmLck: 0 kB

VmHWM: 1976 kB

VmRSS: 1976 kB

VmData: 752 kB

VmStk: 84 kB

VmExe: 644 kB

VmLib: 1788 kB

VmPTE: 16 kB

Threads: 1

SigQ: 0/4294967295

SigPnd: 0000000000000000

ShdPnd: 0000000000000000

SigBlk: 0000000000000000

SigIgn: 0000000000384004

SigCgt: 000000004b813efb

CapInh: 0000000000000000

CapPrm: 0000000000000000

CapEff: 0000000000000000

VmSize即为该进程内存总大小, 和top输出中的VIRT一致.

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号