1. 程式人生 > >Linux下檢視某一個程式執行所佔用的記憶體

Linux下檢視某一個程式執行所佔用的記憶體

第一種方式

top -p 程序號
[yzy@node3 micro-service]$ top -p 20490
top - 16:50:32 up 6 days,  2:18,  1 user,  load average: 0.00, 0.01, 0.05
Tasks:   1 total,   0 running,   1 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.1 us,  0.1 sy,  0.0 ni, 99.8 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem : 65876972 total, 51899292 free,  9988408
used, 3989272 buff/cache KiB Swap: 32964604 total, 32964604 free, 0 used. 55522228 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 20490 yzy 20 0 113252 1632 1272 S 0.0 0.0 0:35.50 sh

第二種方式

ps -aux | grep 程序名
[zhoulu@node3 micro-service]$ ps -aux | grep eureka-auto.sh 
zhoulu    3716  0.0  0.0 112640   972 pts/0    S+   16:49   0:00 grep --color=auto eureka-auto.sh
zhoulu   20490  0.0  0.0 113252  1632 ?        S    Apr14   0:35 /bin/sh ./eureka-auto.sh

第三種方式

cat /proc/程序號/status
[[email protected] micro-service]$ cat /proc/20490
/status Name: sh State: S (sleeping) Tgid: 20490 Ngid: 0 Pid: 20490 PPid: 1 TracerPid: 0 Uid: 1019 1019 1019 1019 Gid: 1019 1019 1019 1019 FDSize: 256 Groups: 1019 VmPeak: 113256 kB VmSize: 113252 kB VmLck: 0 kB VmPin: 0 kB VmHWM: 1632 kB VmRSS: 1632 kB VmData: 340 kB VmStk: 136 kB VmExe: 884 kB VmLib: 2044 kB VmPTE: 52 kB VmSwap: 0 kB Threads: 1 SigQ: 0/257254 SigPnd: 0000000000000000 ShdPnd: 0000000000000000 SigBlk: 0000000000010000 SigIgn: 0000000000000005 SigCgt: 0000000000010002 CapInh: 0000000000000000 CapPrm: 0000000000000000 CapEff: 0000000000000000 CapBnd: 0000001fffffffff Seccomp: 0 Cpus_allowed: ffff Cpus_allowed_list: 0-15 Mems_allowed: 00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000001 Mems_allowed_list: 0 voluntary_ctxt_switches: 102189 nonvoluntary_ctxt_switches: 170

VmSize(KB) 任務虛擬地址空間的大小 (total_vm-reserved_vm),其中total_vm為程序的地址空間的大小,reserved_vm:程序在預留或特殊的記憶體間的物理頁
VmLck(KB) 任務已經鎖住的實體記憶體的大小。鎖住的實體記憶體不能交換到硬碟 (locked_vm)
VmRSS(KB) 應用程式正在使用的實體記憶體的大小,就是用ps命令的引數rss的值 (rss)
VmData(KB) 程式資料段的大小(所佔虛擬記憶體的大小),存放初始化了的資料; (total_vm-shared_vm-stack_vm)
VmStk(KB) 任務在使用者態的棧的大小 (stack_vm)
VmExe(KB) 程式所擁有的可執行虛擬記憶體的大小,程式碼段,不包括任務使用的庫 (end_code-start_code)
VmLib(KB) 被映像到任務的虛擬記憶體空間的庫的大小 (exec_lib)
VmPTE 該程序的所有頁表的大小,單位:kb
Threads 共享使用該訊號描述符的任務的個數,在POSIX多執行緒序應用程式中,執行緒組中的所有執行緒使用同一個訊號描述符

1、VmRSS是真實正在佔用的記憶體,而VmData是虛擬記憶體,大小差異大並沒有什麼問題。
2、VmData是指資料段的記憶體大小,存放初始化了的資料; (total_vm-shared_vm-stack_vm)
3、不調動態庫的時候是不計算的(dlopen方式)
4、靜態庫會編譯為程式本身的一部分,不在VmLib的統計之內。
5、參考上面的說明
6、除非有非常明顯的記憶體洩露,如記憶體一直大幅度增長並長時間不釋放,否則單純以來這些值是很判斷真正的內在洩露。

相關推薦

Linux檢視一個程式執行佔用記憶體【轉】

第一種方式 top -p 程序號 [[email protected] micro-service]$ top -p 20490 top - 16:50:32 up 6 days,  2:18,  1 user,  load average: 0.00,

Linux檢視一個程式執行佔用記憶體

第一種方式 top -p 程序號 [yzy@node3 micro-service]$ top -p 20490 top - 16:50:32 up 6 days, 2:18, 1 user, load average: 0.00, 0.01,

linux檢視程式記憶體

原文:https://blog.csdn.net/rickiyeat/article/details/70230253  第一種方式 top -p 程序號 1 [[email protected] micro-service]$ top -p 20490 top

linux 檢視一程序的cpu使用率和這個執行緒中各個執行緒的cpu使用率

在Ubuntu/CentOS等linux系統中, 在除錯程式過程中,有時需要檢視程式的CPU的使用率和程式的各個程序的使用率. 那麼首先需要獲取這個程序的PID: ps -ef|grep [process name] 然後檢視該程序的CPU: top -p [PID]

linux檢視關鍵詞前後幾行內容

1、一個比較方便直接的辦法是 檢視filename中含有abc所在行後4行內容 cat filename | grep abc -A4 檢視filename中含有abc所在行前4行內容 cat filename  | grep abc  -B4 2、

linux檢視一埠被哪個程序佔用

方法1: lsof命令,即ls open files lsof -i:埠號 例如: 方法2: netstat命令 netstat -tunpl | grep 埠號 例如:

Linux檢視一程序佔用資源的情況

linux系統中我們需要檢視某一程序佔用伺服器資源的消耗情況,應該如何去實現呢?下面我們分兩步來告訴大家: 首先,我們需要檢視這個程序的pid,假設pid為3007。 [[email protected] software]# top top - 15:42

Linux檢視消耗CPU的執行

javaweb 專案部署後發現很耗cpu,需要查出問題所在 寫個測試程式,記相關步驟: 故意寫個死迴圈 public class TestCpu { public static void main(String[] args) { while (t

linux檢視程序啟動、執行的時間

可通過ps 來檢視,通過引數 -o 來檢視 例: ps -eo pid,tty,user,comm,lstart,etime | grep init 引數說明: pid:程序ID tty:

linux檢視有哪些作業系統程序正在使用一個共享記憶體

[[email protected] log]# ipcs -m ------ Shared Memory Segments -------- key shmid owner perms bytes nattch

Linux實現進度條程式. 通過makefile進行編譯. 建議自主完成一個彩色的進度條.

Linux下用C語言完成一個彩色進度條 1.建一個Makefile檔案 2.vim Makefile test:test.c

linux刪除資料夾除了一個檔案之外的所有檔案及find用法

  原文: https://www.jb51.net/article/99319.htm      比如一個目錄下有1,2,3,4,5這五個檔案,現在我需要刪除除了2以外的所有檔案,那麼我可以使用   find . ! -name 2 -exec rm -f {} \;   當然你還可以配合

linux刪除文件夾除了一個文件之外的所有文件及find用法

exe 有關 含義 文件屬性 [ ] ini 之一 命令 避免   原文: https://www.jb51.net/article/99319.htm      比如一個目錄下有1,2,3,4,5這五個文件,現在我需要刪除除了2以外的所有文件,那麽我可以使用   find

一個linux的c語言程式

當然是列印hello world啦。  1.vim helloworld.c如下: #include <stdio.h> int main() { char *c; c = "hello world!"; printf("%s\n",c

Linux限制程式CPU佔用

在1臺雲主機上使用GDrive同步檔案時,老是觸發主機商的CPU佔用上限,不停的被強制關機。好麼,找了一圈,發現1個挺好用的限定CPU佔用的程式:CPULimit 記載一下CentOS 7下CPULimit的部署與使用途中 部署 git clone http

如何開機不桌面進入直接執行一個程式

1.禁用開機啟動: 開始--執行--輸入msconfig回車--啟動--把explorer.的勾去掉就可以了。 2. 修改登錄檔: 在"HKEY_LOCAL_MACHINE\SOFTWARE\MICROSFOT\WINDOWS NT\CURRENTVERSION\W

Linux檢視執行檔案、動態庫的ELF頭等資訊

      用法: readelf <option(s)> elf-file(s)       作用: 和Windows下的PE檔案類似,ELF檔案是linux系統下可執行檔案、動態庫檔案、靜態庫檔案的標準格式。有時候我們需要檢視ELF檔案的頭資訊,或者動態庫檔

Linux 檢視一個程序佔用記憶體情況

PID:程序的ID USER:程序所有者 PR:程序的優先級別,越小越優先被執行 NInice:值 VIRT:程序佔用的虛擬記憶體 RES:程序佔用的實體記憶體 SHR:程序使用的共享記憶體 S:程

linux作業系統檢視rpm包是32bit 還是x64bit的命令

[[email protected] ~]# rpm -qa --queryformat "%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n" | grep

Linux如何讓jar程式在後臺執行

當我們把java程式打成jar包後,放到linux上通過putty或其它終端執行的時候,如果按照:java -jar xxxx.jar執行,當我們退出putty或終端的時候,xxxx.jar這個程式也會停止。為了保證程式能夠一直執行,應該改為這樣執行:nohup