⑴ Linux下如何查看哪些進程佔用的CPU內存資源最多
1、top
top命令是Linux下常用的性能分析工具,能夠實時顯示系統中各個進程的資源佔用狀況,類似於Windows的任務管理器
可以直接使用top命令後,查看%MEM的內容。可以選擇按進程查看或者按用戶查看,如想查看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排行
2、pmap
可以根據進程查看進程相關信息佔用的內存情況,(進程號可以通過ps查看)如下所示:
$ pmap -d 14596
3、ps
如下例所示:
$ ps -e -o 'pid,comm,args,pcpu,rsz,vsz,stime,user,uid' 其中rsz是是實際內存
$ ps -e -o 'pid,comm,args,pcpu,rsz,vsz,stime,user,uid' | grep oracle | sort -nrk5
其中rsz為實際內存,上例實現按內存排序,由大到小
⑵ linux 內存不知道給什麼佔用了
ps
aux
USER
PID
%CPU
%MEM
VSZ
RSS
TTY
STAT
START
TIME
COMMAND
●
USER,進程所有者的用戶名。
●
PID,進程號,可以唯一標識該進程。
●
%CPU,進程自最近一次刷新以來所佔用的CPU時間和總時間的百分比。
●
%MEM,進程使用內存的百分比。
●
VSZ,進程使用的虛擬內存大小,以K為單位。
●
RSS,進程佔用的物理內存的總數量,以K為單位。
●
TTY,進程相關的終端名。
●
STAT,進程狀態,用(R--運行或准備運行;S--睡眠狀態;I--空閑;Z--凍結;D--不間斷睡眠;W-進程沒有駐留頁;T停止或跟蹤。)這些字母來表示。
●
START,進程開始運行時間。
●
TIME,進程使用的總CPU時間。
●
COMMAND,被執行的命令行。
⑶ linux佔用物理內存高的問題
虛擬機的Linux你給他分多少他就用多少內存的,如果用一段時間就卡,應該是xp的問題,xp的系統裡面佔用內存的緩存因為開機時間久就變多了。而且xp還沒有一個好的清理緩存的機制,還有可能就是中毒了,你從xp找找問題把,Linux一般沒什麼問題
⑷ linux下,一個運行中的程序,究竟佔用了多少內存
RSS列 表示, 程序佔用了多少物理內存。 虛擬內存可以不用考慮,它並不佔用實際物理內存。 (2). top 命令也可以 其中VIRT(或VSS)列 表示,程序佔用了多少虛擬內存。 同 ps aux 中的 VSZ列 RES列 表示, 程序佔用了多少物理內存。同 ps aux 中的RSS列 2.在linux下, 查看當前系統佔用了多少內存, 一般的命令是 free其中, free就是系統還有多少內存可以使用。但由於 linux 系統對內存使用有一個原則, 就是, 內存是寶貴的, 能使用多少就使用多少。 所以, linux會把已經調用過的包緩存起來,放在內存里。這樣,實際上,可以使用的內存,就可以理解為, free+buffers+cached3.當你了解完這些命令以後, 再去使用ps aux 命令去查看的時候, 會發現一個奇怪的現象。 所有的 RSS 列的數據,加起來, 比物理內存的數要大很多。 比如, 物理內存為2G, 而RSS列的數據加起來,可能有5個G之多, 這是怎麼回事了? 這是因為RSS列的值騙了我們。 linux的內存機制是這樣的: 在運行一個程序時, linux會調用該程序依賴的鏈接庫, 如lib.xx.so。 首先看該鏈接庫是否被映射進內存中,如果沒有被映射,則將代碼段與數據段映射到內存中,否則只是將其加入進程的地址空間。 這樣,當N個程序,依賴到lib.xx.so的時候, 實際上,內存中只有一個lib.xx.so ,而不是N個。 而RSS在顯示一個程序佔用的實際物理內存時, 將lib.xx.so也算了進來。 比如, X程序, 本身佔用內存為5M, lib.xx.so 佔用內存2M,lib.xx.so被N個程序共享依賴。 則RSS顯示為,X程序運行,佔用內存為7M。 實際上, X程序佔用了5M空間。 多餘的2m被討入到RSS中了。 當你在用ps aux顯示內存佔用情況時, N個共享依賴lib.xx.so的N個程序,都把這2m空間,算在自己的RSS中了, 這樣RSS的sum值,就比實際物理內存多了。 當然, linux的內存使用機制很復雜, 不是一句兩句能說清楚的。這里只是簡單的說明了一下, ps aux中的RSS值, 並不能真實反映物理內存的使用情況。 4. 如果查看更詳細的內存使用情況, 可用以下幾種方法, 或者幾種方法結合使用:這幾種方法,都需要root賬戶的許可權(1). pmap -d $pid $pid 是正在運行的程序的pid(2). cat /proc/$pid/smaps smaps的數據比較詳細,可簡單的歸納一下,歸納的命令如下: cat /proc/$pid/smaps | awk '/Size|Rss|Pss|Shared|Private|Referenced|Swap/{val_name=gensub(/([a-zA-Z_]*).*/,"\\1",1,$1); list[val_name]+=$2; }END{for(val in list)print val,list[val];}' (3). cat /proc/$pid/maps(4). cat /proc/$pid/statm輸出解釋第一列 size:任務虛擬地址空間大小 第二列 Resident:正在使用的物理內存大小 第三列 Shared:共享頁數 第四列 Trs:程序所擁有的可執行虛擬內存大小 第五列 Lrs:被映像倒任務的虛擬內存空間的庫的大小 第六列 Drs:程序數據段和用戶態的棧的大小 第七列 dt:臟頁數量(5). vmstat這個命令據說也可以提供一些參考信息,具體還未研究 5.作為phper,嘗試過使用php的函數memory_get_usage(), 該函數也不能得到php當前運行的程序,實際的,真正佔用的內存數量。 如果真想得到,php真正佔用的內存, 大概只能在, 程序運行的開始,執行一次memory_get_usage(). 在程序運行結束,執行一次memory_get_usage()。 將兩者的值相減,得到的值, 應該是一個相對比較准確的,內存佔用數量了。 這個方法還沒有測試, 考慮到, 得到這個數量,也沒有實際意義, 加上平時又比較忙,懶得試了。
⑸ 怎樣看linux Low內存被哪些內容佔用了
linux
下面查看內存有多種渠道,比如通過命令
ps
,top,free
等,比如通過/proc系統,一般需要比較詳細和精確地知道整機內存/某個進程內存的使用情況,最好通過/proc
系統,下面介紹/proc系統下內存相關的幾個文件
單個進程的內存查看
cat
/proc/[pid]
下面有幾個文件:
maps
,
smaps,
status
maps
文件可以查看某個進程的代碼段、棧區、堆區、動態庫、內核區對應的虛擬地址,如果你還不了解linux進程的內存空間,可以參考這里。
下圖是maps文件內存示例
Develop>cat
/proc/self/maps
00400000-0040b000
r-xp
00000000
fd:00
48
/mnt/cf/orig/root/bin/cat
0060a000-0060b000
r--p
0000a000
fd:00
48
/mnt/cf/orig/root/bin/cat
0060b000-0060c000
rw-p
0000b000
fd:00
48
/mnt/cf/orig/root/bin/cat
代碼段
0060c000-0062d000
rw-p
00000000
00:00
0
[heap]
堆區
⑹ linux怎麼看進程佔用的物理內存
可以直接使用top命令後,查看%MEM的內容。可以選擇按進程查看或者按用戶查看,如想查看oracle用戶的進程內存使用情況的話可以使用如下的命令:
(1)top
top命令是Linux下常用的性能分析工具,能夠實時顯示系統中各個進程的資源佔用狀況,類似於Windows的任務管理器
可以直接使用top命令後,查看%MEM的內容。可以選擇按進程查看或者按用戶查看,如想查看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排行
⑺ linux下,一個運行中的程序,究竟佔用了多少內存
1. 在linux下,查看一個運行中的程序, 佔用了多少內存, 一般的命令有
(1). ps aux:
其中 VSZ(或VSS)列 表示,程序佔用了多少虛擬內存。
RSS列 表示, 程序佔用了多少物理內存。
虛擬內存可以不用考慮,它並不佔用實際物理內存。
(2). top 命令也可以
其中 VIRT(或VSS)列 表示,程序佔用了多少虛擬內存。 同 ps aux 中的 VSZ列
RES列 表示, 程序佔用了多少物理內存。同 ps aux 中的RSS列
⑻ linux 下怎麼查看一個進程佔用內存大小
這里介紹下查看一個進程佔用內存大小的方法。
1、首先單擊桌面左上角的應用程序,選擇系統工具選項,如下圖所示。
⑼ linux查看內存使用情況
linux查看內存使用情況的方法是,1,proc。meminfo,查看 RAM 使用情況最簡單的方法是通過 ,procmeminfo。這個動態更新的虛擬文件實際上是許多其他內存相關工具 free ,ps ,top的組合顯示。
2,atop。atop 命令是一個終端環境的監控命令。它顯示的是各種系統資源,CPU, memory, network, IOkernel的綜合,並且在高負載的情況下進行了彩色標注。
3,free。free 命令是一個快速查看內存使用情況的方法,它是對 ,proc,meminfo 收集到的信息的一個概述。
4,GNOME System Monitor。GNOME System Monitor 是一個顯示最近一段時間內的 CPU內存交換區及網路的使用情況的視圖工具。它還提供了一種查看 CPU 及內存使用情況的方法。
5,htop。htop 命令顯示了每個進程的內存實時使用率。它提供了所有進程的常駐內存大小,程序總內存大小,共享庫大小等的報告,列表可以水平及垂直滾動。6,KDE System Monitor功能同 4 中介紹的 GENOME 版本。