歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux內存點滴 用戶進程內存空間

Linux內存點滴 用戶進程內存空間

日期:2017/2/28 14:51:24   编辑:Linux教程

經常使用top命令了解進程信息,其中包括內存方面的信息。命令top幫助文檔是這麼解釋各個字段的。
VIRT , Virtual Image (kb)
RES, Resident size (kb)
SHR, Shared Mem size (kb)
%MEM, Memory usage(kb)
SWAP, Swapped size (kb)
CODE, Code size (kb)
DATA, Data+Stack size (kb)
nFLT, Page Fault count
nDRT, Dirty Pages count
盡管有注釋,但依然感覺有些晦澀,不知所指何意?

進程內存空間

正在運行的程序,叫進程。每個進程都有完全屬於自己的,獨立的,不被干擾的內存空間。此空間,被分成幾個段(Segment),分別是Text, Data, BSS, Heap, Stack。用戶進程內存空間,也是系統內核分配給該進程的VM(虛擬內存),但並不表示這個進程占用了這麼多的RAM(物理內存)。這個空間有多大?命令top輸出的VIRT值告訴了我們各個進程內存空間的大小(進程內存空間隨著程序的執行會增大或者縮小)。你還可以通過/proc//maps,或者pmap –d 了解某個進程內存空間都分布,比如:

#cat /proc/1449/maps
…
0012e000-002a4000 r-xp 00000000 08:07 3539877    /lib/i386-linux-gnu/libc-2.13.so
002a4000-002a6000 r--p 00176000 08:07 3539877    /lib/i386-linux-gnu/libc-2.13.so
002a6000-002a7000 rw-p 00178000 08:07 3539877   /lib/i386-linux-gnu/libc-2.13.so
002a7000-002aa000 rw-p 00000000 00:00 0
…
08048000-0875b000 r-xp 00000000 08:07 4072287    /usr/local/mysql/libexec/mysqld
0875b000-0875d000 r--p 00712000 08:07 4072287    /usr/local/mysql/libexec/mysqld
0875d000-087aa000 rw-p 00714000 08:07 4072287   /usr/local/mysql/libexec/mysqld
…
PS:線性地址,訪問權限, offset, 設備號,inode,映射文件

Copyright © Linux教程網 All Rights Reserved