linux查看物理內存? .那么,linux查看物理內存?一起來了解一下吧。
可以使用“free”命令查看當前內存的使用情況,
其中各項的含義如下,total:總計物理內存的大小;used:已使用的內存大??;free:可用的內存大?。籹hared:多個進程共享的內存總額;buffers/cached:磁盤緩存的大小。
第二行(mem)的used/free與第三行(-/+ buffers/cache)used/free的區別在于是從不同的角度來看內存的占用,“mem”是從操作系統的角度來看,對于os,buffers/cached都是屬于被使用,總共使用的內存包含內核(os)使用+application(x,oracle,etc)使用+buffers+cached?!?/+ buffers/cache”所指的是從應用程序角度來看,對于應用程序來說,buffers/cached 是可用的內存,因為buffer/cached是為了提高文件讀取的性能,當應用程序需在用到內存的時候,buffer/cached會很快地被回收。
linux將物理內存按固定大小的頁面(一般為4k)劃分內存,在內核初始化時,會建立一個全局struct page結構數組mem_map[ ]。如系統中有76g物理內存,則物理內存頁面數為76*1024*1024k/4k= 19922944個頁面,mem_map[ ]數組大小19922944,即為數組中每個元素和物理內存頁面一一對應,整個數組就代表著系統中的全部物理頁面。 在服務器中,存在numa架構(如nehalem、romly等),linux將numa中內存訪問速度一致(如按照內存通道劃分)的部分稱為一個節點(node),用struct pglist_data數據結構表示,通常使用時用它的typedef定義pg_data_t。系統中的每個結點都通過pgdat_list鏈表pg_data_t->node_next連接起來,該鏈接以null為結束標志。每個結點又進一步分為許多塊,稱為區域(zones)。區域表示內存中的一塊范圍。區域用struct zone_struct數據結構表示,它的typedef定義為zone_t。更多詳細的解答可以查看《linux就該這么學》。
可以直接使用top命令后,查看%MEM的內容??梢赃x擇按進程查看或者按用戶查看,如想查看oracle用戶的進程內存使用情況的話可以使用如下的命令:
(1)top
top命令是Linux下常用的性能分析工具,能夠實時顯示系統中各個進程的資源占用狀況,類似于Windows的任務管理器
可以直接使用top命令后,查看%MEM的內容??梢赃x擇按進程查看或者按用戶查看,如想查看oracle用戶的進程內存使用情況的話可以使用如下的命令:
$ top -u oracle
內容解釋:
PID:進程的ID
USER:進程所有者
PR:進程的優先級別,越小越優先被執行
NInice:值
VIRT:進程占用的虛擬內存
RES:進程占用的物理內存
SHR:進程使用的共享內存
S:進程的狀態。S表示休眠,R表示正在運行,Z表示僵死狀態,N表示該進程優先值為負數
%CPU:進程占用CPU的使用率
%MEM:進程使用的物理內存和總內存的百分比
TIME+:該進程啟動后占用的總的CPU時間,即占用CPU使用時間的累加值。
COMMAND:進程啟動命令名稱
常用的命令:
P:按%CPU使用率排行
T:按MITE+排行
M:按%MEM排行
查看內存使用情況,可以使用命令?free?-m
其結果大致如下:
total???????used?????????free?????shared????buffers?????cached
Mem:?????????32108??????30681???????1426??????????0????????123??????21165
-/+?buffers/cache:???????9392??????22715
Swap:????????34287???????1262??????33025
在第一部分Mem?行中有如下參數:
*?total:?內存總數,即32108?MB
*?used:?已經使用的內存數,即?30681?MB
*?free:?空閑的內存數:即?1426MB
*?shared:當前已廢棄不用,總是?0
*?buffers?Buffer:?緩存內存數,即?123?MB
*?cached?Page:?緩存內存數,即?421MB
其中,內存總數與已經使用內存數和空閑內存數的關系是:
total?(32108)?=?used?(30681)?+?free?(1426)
在第二部分內容(-/+?buffers/cache)中個參數如下所示:
(-buffers/cache):?真正使用的內存數,即9392M,他指的是第一部分的?used?-?buffers?-?cached
(+buffers/cache):?可用的內存數,即22715M,他指的是第一部分的?free?+?buffers?+?cached
其含義可以理解為:-buffers/cached?反映的是被程序實實在在用掉的內存,而?+buffers/cached反映的是可以被使用(或者說挪用)的內存總數。
top能顯示系統內存。我們常用的Linux下查看內容的專用工具是free命令。
下面是對內存查看free命令輸出內容的解釋:
total:總計物理內存的大小。
used:已使用多大。
free:可用有多少。
Shared:多個進程共享的內存總額。
Buffers/cached:磁盤緩存的大小。
以上就是linux查看物理內存的全部內容。