[轉(zhuǎn)]Linux下關(guān)于內(nèi)存的查看
Posted on 2007-01-30 11:19 acooly 閱讀(612) 評(píng)論(0) 編輯 收藏 所屬分類: 腳本語言Linux中使用free可以查看系統(tǒng)內(nèi)存使用狀態(tài), 默認(rèn)單位為k
Mem 行顯示了從系統(tǒng)角度看來內(nèi)存使用的情況, total是系統(tǒng)可用的內(nèi)存大小, 數(shù)量上等于系統(tǒng)物理內(nèi)存減去內(nèi)核保留的內(nèi)存. buffers和cached是系統(tǒng)用做緩沖的內(nèi)存. buffers與某個(gè)塊設(shè)備關(guān)聯(lián), 包含了文件系統(tǒng)元數(shù)據(jù), 并且跟蹤了塊的變化. cache只包含了文件本身.
-/+ buffers/cache行則從用戶角度顯示內(nèi)存信息, 可用內(nèi)存從數(shù)量上等于mem行used列值減去buffers和cached內(nèi)存的大小. 因?yàn)閎uffers和cached是操作系統(tǒng)為加快系統(tǒng)運(yùn)行而設(shè)置的, 當(dāng)用戶需要時(shí), 可以只接為用戶使用.
top和vmstat也顯示了系統(tǒng)內(nèi)存的信息, 和free的顯示結(jié)果類似.
這些命令都是從/proc/meminfo中讀取內(nèi)存信息.
關(guān)于/proc/meminfo中各行的含意, 在內(nèi)核源代碼的Documentation/filesystems/proc.txt文件中有敘述
系統(tǒng)的真實(shí)內(nèi)存大小可以用dmesg |grep [mM][eE][mM]看到
進(jìn)程使用的內(nèi)存可以用top, ps來查看top中有3個(gè)列 VIRT? RES? SHR, 標(biāo)示了進(jìn)程使用的內(nèi)存情況, VIRT標(biāo)識(shí)這個(gè)進(jìn)程可以使用的內(nèi)存總大小, 包括這個(gè)進(jìn)程真實(shí)使用的內(nèi)存, 映射過的文件,? 和別的進(jìn)程共享的內(nèi)存等. RES標(biāo)識(shí)這個(gè)這個(gè)進(jìn)程真實(shí)占用內(nèi)存的大小. SHR標(biāo)識(shí)可以和別的進(jìn)程共享的內(nèi)存和庫大小.
/proc/pid/status顯示一個(gè)進(jìn)程的詳細(xì)狀態(tài), 下面是一個(gè)示例:
VmSize即為該進(jìn)程內(nèi)存總大小, 和top輸出中的VIRT一致.
轉(zhuǎn)至:http://www.cublog.cn/u/7667/showart_172007.html
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 行顯示了從系統(tǒng)角度看來內(nèi)存使用的情況, total是系統(tǒng)可用的內(nèi)存大小, 數(shù)量上等于系統(tǒng)物理內(nèi)存減去內(nèi)核保留的內(nèi)存. buffers和cached是系統(tǒng)用做緩沖的內(nèi)存. buffers與某個(gè)塊設(shè)備關(guān)聯(lián), 包含了文件系統(tǒng)元數(shù)據(jù), 并且跟蹤了塊的變化. cache只包含了文件本身.
-/+ buffers/cache行則從用戶角度顯示內(nèi)存信息, 可用內(nèi)存從數(shù)量上等于mem行used列值減去buffers和cached內(nèi)存的大小. 因?yàn)閎uffers和cached是操作系統(tǒng)為加快系統(tǒng)運(yùn)行而設(shè)置的, 當(dāng)用戶需要時(shí), 可以只接為用戶使用.
top和vmstat也顯示了系統(tǒng)內(nèi)存的信息, 和free的顯示結(jié)果類似.
這些命令都是從/proc/meminfo中讀取內(nèi)存信息.
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 |
關(guān)于/proc/meminfo中各行的含意, 在內(nèi)核源代碼的Documentation/filesystems/proc.txt文件中有敘述
系統(tǒng)的真實(shí)內(nèi)存大小可以用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. |
進(jìn)程使用的內(nèi)存可以用top, ps來查看top中有3個(gè)列 VIRT? RES? SHR, 標(biāo)示了進(jìn)程使用的內(nèi)存情況, VIRT標(biāo)識(shí)這個(gè)進(jìn)程可以使用的內(nèi)存總大小, 包括這個(gè)進(jìn)程真實(shí)使用的內(nèi)存, 映射過的文件,? 和別的進(jìn)程共享的內(nèi)存等. RES標(biāo)識(shí)這個(gè)這個(gè)進(jìn)程真實(shí)占用內(nèi)存的大小. SHR標(biāo)識(shí)可以和別的進(jìn)程共享的內(nèi)存和庫大小.
/proc/pid/status顯示一個(gè)進(jìn)程的詳細(xì)狀態(tài), 下面是一個(gè)示例:
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即為該進(jìn)程內(nèi)存總大小, 和top輸出中的VIRT一致.
轉(zhuǎn)至:http://www.cublog.cn/u/7667/showart_172007.html