檢視程序占用系統資源的方法

2021-06-29 07:35:13 字數 2024 閱讀 7924

**:

用ps命令檢視程序的記憶體

ps命令是linux下常見的檢視程序狀況的程式,它有幾個字段可以用來檢視 程序記憶體使用情況:sz,rss,vsz。分別說明如下:

sz:程序映像所占用的物理頁面數量,也就是以物理頁面為單位表示的虛擬記憶體大小;

rss:程序當前所占用的物理記憶體大小,單位為kb;

vsz:程序的虛擬記憶體大小,單位為kb,它等於sz乘於物理頁面大小(x86平台通常為4kb)。

假如我要檢視程式a.out的記憶體使用情況,操作如下:

$ ./a.out &

[1] 10069

$ ps -o sz,rsz,vsz

pid sz rss vsz s tty time command

6793 1545 3648 6180 s pts/2 00:00:00 /bin/bash

10069 404 304 1616 s pts/2 00:00:00 ./a.out

10070 626 876 2504 r pts/2 00:00:00 ps -o sz,rss,vsz

上面ps命令的輸出的第3行就是./a.out自行後的相關情況。我們可以看出,它的虛擬 記憶體大小為1616kb,當前占用的物理記憶體為304kb(其它資料在磁碟上或交換分割槽),虛 擬記憶體占用404個物理頁面。由於我的機器的物理頁面大小為4kb,可以驗證404 x 4kb等於1616kb。

用/proc檔案系統檢視程序的記憶體使用情況

ps命令的輸出關於記憶體的情況不是很詳細,尤其是程序所使用的記憶體中 有很大一部分是共享庫函式使用的,因此通過ps命令的輸出看不到程序自己使用了多 少記憶體。為了檢視更詳細的資訊,可以借助於/proc檔案系統。這個檔案系 統併存在於磁碟上,但是可以象操作其它普通檔案一樣操作它。它是linux提供給使用者 檢視程序相關資訊的介面。在/proc下有2個檔案和程序記憶體有 關:/proc//status和/proc//smaps。

通過/proc//status可以檢視程序的記憶體使用情況,包括虛擬內 存大小(vmsize),物理記憶體大小(vmrss),資料段大小(vmdata),棧的大小 (vmstk),**段的大小(vmexe),共享庫的**段大小(vmlib)等等。

注意,vmdata,vmstk,vmexe和vmlib之和並不等於vmsize。這是因為共享庫函式的數 據段沒有計算進去(vmdata僅包含a.out程式的資料段,不包括共享庫函式的資料段, 也不包括通過mmap對映的區域。vmlib僅包括共享庫的**段,不包括共享庫的資料 段)。

$ cat /proc/10069/smaps

00110000-00263000 r-xp 00000000 08:07 128311 /lib/tls/i686/cmov/libc-2.11.1.so

size: 1356 kb

rss: 148 kb

pss: 8 kb

shared_clean: 148 kb

shared_dirty: 0 kb

private_clean: 0 kb

private_dirty: 0 kb

referenced: 148 kb

swap: 0 kb

kernelpagesize: 4 kb

mmupagesize: 4 kb

…… ……

bfd7f000-bfd94000 rw-p 00000000 00:00 0 [stack]

size: 88 kb

rss: 8 kb

pss: 8 kb

shared_clean: 0 kb

shared_dirty: 0 kb

private_clean: 0 kb

private_dirty: 8 kb

referenced: 8 kb

swap: 0 kb

kernelpagesize: 4 kb

mmupagesize: 4 kb

注意:rwxp中,p表示私有對映(採用copy-on-write技術)。 size欄位就是該區域的大小。

Linux檢視系統資源占用

在系統維護的過程中,隨時可能有需要檢視 cpu和記憶體的使用率,並根據相應資訊分析系統狀況的需求。本文介紹一下幾種常見的linux系統資源檢視命令。1 總體記憶體占用的檢視 命令 free 圖1 free命令檢視記憶體占用 1 free命令預設是以kb為單位顯示的,可以用free m 用mb單位來顯...

Linux 檢視各個程序占用系統資源情況

linux下獲取占用cpu資源最多的10個程序,可以使用如下命令組合 ps aux head 1 ps aux grep v pid sort rn k 3 head linux下獲取占用記憶體資源最多的10個程序,可以使用如下命令組合 ps aux head 1 ps aux grep v pid...

oracle檢視系統資源占用情況

1,連上伺服器,使用top命令,可以檢視cpu使用率以及記憶體的使用情況等等,還有當前各使用者的使用情況 2,用pl sql developper,tool裡面選sessions,就可以看到當前session的情況,包括卡住的sql語句 3,檢視各使用者的各種資源占用,可以執行下面的sql sele...