1. 程式人生 > >Linux檢視CPU和記憶體使用情況(top mpstat pmap free ps命令使用)

Linux檢視CPU和記憶體使用情況(top mpstat pmap free ps命令使用)

    在linux系統中,一般使用系統自帶的top和mpstat命令檢視CPU的效能和使用情況,使用free和pmap命令檢視系統的記憶體使用情況。這裡就這幾個命令的使用做詳細的介紹。

top命令

    在系統維護的過程中,隨時可能有需要檢視 CPU 使用率,並根據相應資訊分析系統狀況的需要。在 CentOS 中,可以通過 top 命令來檢視 CPU 使用狀況。執行 top 命令後,CPU 使用狀態會以全屏的方式顯示,並且會處在對話的模式 -- 用基於 top 的命令,可以控制顯示方式等等。退出 top 的命令為 q (在 top 執行中敲 q 鍵一次)。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:程序啟動命令名稱

  操作例項:

  在命令列中輸入 “top”

  即可啟動 top

  top 的全屏對話模式可分為3部分:系統資訊欄、命令輸入欄、程序列表欄。

[email protected]:~$ top
top - 18:02:00 up 17 days, 12:48,  3 users,  load average: 0.38, 0.21, 0.15
Tasks: 261 total,   1 running, 260 sleeping,   0 stopped,   0 zombie
%Cpu(s): 17.8 us,  2.0 sy,  0.0 ni, 80.2 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :   994888 total,   103856 free,   481292 used,   409740 buff/cache
KiB Swap:  1045500 total,   574292 free,   471208 used.   292728 avail Mem 

   PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                       
  1968 biao      20   0 1700932 168016   9036 S  39.6 16.9   1588:13 compiz                        
  1239 root      20   0  414800  49536   6956 S   2.0  5.0 874:48.48 Xorg                          
 26932 biao      20   0   41932   3964   3200 R   2.0  0.4   0:22.43 top                           
     1 root      20   0  185236   3264   1748 S   0.0  0.3   0:56.77 systemd                       
     2 root      20   0       0      0      0 S   0.0  0.0   0:00.45 kthreadd                      
     4 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/0:0H                  
     6 root      20   0       0      0      0 S   0.0  0.0   0:19.75 ksoftirqd/0                   
     7 root      20   0       0      0      0 S   0.0  0.0  15:02.55 rcu_sched                     
     8 root      20   0       0      0      0 S   0.0  0.0   0:00.00 rcu_bh                        
     9 root      rt   0       0      0      0 S   0.0  0.0   0:01.26 migration/0                   
    10 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 lru-add-drain                 
    11 root      rt   0       0      0      0 S   0.0  0.0   0:08.23 watchdog/0                    
    12 root      20   0       0      0      0 S   0.0  0.0   0:00.00 cpuhp/0                       
    13 root      20   0       0      0      0 S   0.0  0.0   0:00.00 cpuhp/1                       
    14 root      rt   0       0      0      0 S   0.0  0.0   0:07.70 watchdog/1                    
    15 root      rt   0       0      0      0 S   0.0  0.0   0:01.63 migration/1                   
    16 root      20   0       0      0      0 S   0.0  0.0   1:12.44 ksoftirqd/1                   
                      
[email protected]
:~$

第一部分 -- 最上部的 系統資訊欄 :

  第一行(top):

    “00:11:04”為系統當前時刻;

    “3:35”為系統啟動後到現在的運作時間;

    “2 users”為當前登入到系統的使用者,更確切的說是登入到使用者的終端數 -- 同一個使用者同一時間對系統多個終端的連線將被視為多個使用者連線到系統,這裡的使用者數也將表現為終端的數目;

    “load average”為當前系統負載的平均值,後面的三個值分別為1分鐘前、5分鐘前、15分鐘前程序的平均數,一般的可以認為這個數值超過 CPU 數目時,CPU 將比較吃力的負載當前系統所包含的程序;

  第二行(Tasks):

    “59 total”為當前系統程序總數;

    “1 running”為當前執行中的程序數;

    “58 sleeping”為當前處於等待狀態中的程序數;

    “0 stoped”為被停止的系統程序數;

    “0 zombie”為被複原的程序數;

  第三行(Cpus):

    分別表示了 CPU 當前的使用率;

  第四行(Mem):

    分別表示了記憶體總量、當前使用量、空閒記憶體量、以及緩衝使用中的記憶體量;

  第五行(Swap):

    表示類別同第四行(Mem),但此處反映著交換分割槽(Swap)的使用情況。通常,交換分割槽(Swap)被頻繁使用的情況,將被視作實體記憶體不足而造成的。

第二部分 -- 中間部分的內部命令提示欄:

  top 執行中可以通過 top 的內部命令對程序的顯示方式進行控制。內部命令如下表:

  s- 改變畫面更新頻率

  l - 關閉或開啟第一部分第一行 top 資訊的表示

  t - 關閉或開啟第一部分第二行 Tasks 和第三行 Cpus 資訊的表示

  m - 關閉或開啟第一部分第四行 Mem 和 第五行 Swap 資訊的表示

  N - 以 PID 的大小的順序排列表示程序列表(第三部分後述)

  P - 以 CPU 佔用率大小的順序排列程序列表 (第三部分後述)

  M - 以記憶體佔用率大小的順序排列程序列表 (第三部分後述)

  h - 顯示幫助

  n - 設定在程序列表所顯示程序的數量

  q - 退出 top

  s -改變畫面更新週期

第三部分 -- 最下部分的程序列表欄:

  以 PID 區分的程序列表將根據所設定的畫面更新時間定期的更新。通過 top 內部命令可以控制此處的顯示方式

mpstat命令 

    使用命令: mpstat 1 5 可以每一秒列印一次CPU狀態,共列印5次,詳細引數可以檢視man文件

~ # mpstat 1 5
Linux 3.10.0 ((none))   09/12/18        _armv7l_        (1 CPU)

18:56:33     CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest   %idle
18:56:34     all   50.00    0.00    3.75    1.25    0.00    1.25    0.00    0.00   43.75

18:56:34     CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest   %idle
18:56:35     all   40.51    0.00   13.92    6.33    0.00    1.27    0.00    0.00   37.97

18:56:35     CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest   %idle
18:56:36     all   51.28    0.00    5.13    0.00    0.00    0.00    0.00    0.00   43.59

18:56:36     CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest   %idle
18:56:37     all   46.15    0.00   10.26    0.00    0.00    0.00    0.00    0.00   43.59

18:56:37     CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest   %idle
18:56:38     all   51.85    0.00    3.70    2.47    0.00    0.00    0.00    0.00   41.98

Average:     CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest   %idle
Average:     all   47.98    0.00    7.32    2.02    0.00    0.51    0.00    0.00   42.17
~ # 

pmap命令

可以根據程序檢視程序相關資訊佔用的記憶體情況,如下所示:
  $ pmap -d 24603

[email protected]:~$ pmap -d 24603 
24603:   -bash
Address           Kbytes Mode  Offset           Device    Mapping
0000000000400000     976 r-x-- 0000000000000000 008:00001 bash
00000000006f3000       4 r---- 00000000000f3000 008:00001 bash
00000000006f4000      36 rw--- 00000000000f4000 008:00001 bash
00000000006fd000      24 rw--- 0000000000000000 000:00000   [ anon ]
0000000001714000    1948 rw--- 0000000000000000 000:00000   [ anon ]
00007fa64e1f2000      44 r-x-- 0000000000000000 008:00001 libnss_files-2.23.so
00007fa64e1fd000    2044 ----- 000000000000b000 008:00001 libnss_files-2.23.so
00007fa64e3fc000       4 r---- 000000000000a000 008:00001 libnss_files-2.23.so
00007fa64e3fd000       4 rw--- 000000000000b000 008:00001 libnss_files-2.23.so
00007fa64e3fe000      24 rw--- 0000000000000000 000:00000   [ anon ]
00007fa64e404000      44 r-x-- 0000000000000000 008:00001 libnss_nis-2.23.so
00007fa64e40f000    2044 ----- 000000000000b000 008:00001 libnss_nis-2.23.so
00007fa64e60e000       4 r---- 000000000000a000 008:00001 libnss_nis-2.23.so
00007fa64e60f000       4 rw--- 000000000000b000 008:00001 libnss_nis-2.23.so
00007fa64e610000      88 r-x-- 0000000000000000 008:00001 libnsl-2.23.so
00007fa64e626000    2044 ----- 0000000000016000 008:00001 libnsl-2.23.so
00007fa64e825000       4 r---- 0000000000015000 008:00001 libnsl-2.23.so
00007fa64e826000       4 rw--- 0000000000016000 008:00001 libnsl-2.23.so
00007fa64e827000       8 rw--- 0000000000000000 000:00000   [ anon ]
00007fa64e829000      32 r-x-- 0000000000000000 008:00001 libnss_compat-2.23.so
00007fa64e831000    2044 ----- 0000000000008000 008:00001 libnss_compat-2.23.so
00007fa64ea30000       4 r---- 0000000000007000 008:00001 libnss_compat-2.23.so
00007fa64ea31000       4 rw--- 0000000000008000 008:00001 libnss_compat-2.23.so
00007fa64ea32000    2912 r---- 0000000000000000 008:00001 locale-archive
00007fa64ed0a000    1792 r-x-- 0000000000000000 008:00001 libc-2.23.so
00007fa64eeca000    2048 ----- 00000000001c0000 008:00001 libc-2.23.so
00007fa64f0ca000      16 r---- 00000000001c0000 008:00001 libc-2.23.so
00007fa64f0ce000       8 rw--- 00000000001c4000 008:00001 libc-2.23.so
00007fa64f0d0000      16 rw--- 0000000000000000 000:00000   [ anon ]
00007fa64f0d4000      12 r-x-- 0000000000000000 008:00001 libdl-2.23.so
00007fa64f0d7000    2044 ----- 0000000000003000 008:00001 libdl-2.23.so
00007fa64f2d6000       4 r---- 0000000000002000 008:00001 libdl-2.23.so
00007fa64f2d7000       4 rw--- 0000000000003000 008:00001 libdl-2.23.so
00007fa64f2d8000     148 r-x-- 0000000000000000 008:00001 libtinfo.so.5.9
00007fa64f2fd000    2044 ----- 0000000000025000 008:00001 libtinfo.so.5.9
00007fa64f4fc000      16 r---- 0000000000024000 008:00001 libtinfo.so.5.9
00007fa64f500000       4 rw--- 0000000000028000 008:00001 libtinfo.so.5.9
00007fa64f501000     152 r-x-- 0000000000000000 008:00001 ld-2.23.so
00007fa64f705000      16 rw--- 0000000000000000 000:00000   [ anon ]
00007fa64f71d000      28 r--s- 0000000000000000 008:00001 gconv-modules.cache
00007fa64f724000       8 rw--- 0000000000000000 000:00000   [ anon ]
00007fa64f726000       4 r---- 0000000000025000 008:00001 ld-2.23.so
00007fa64f727000       4 rw--- 0000000000026000 008:00001 ld-2.23.so
00007fa64f728000       4 rw--- 0000000000000000 000:00000   [ anon ]
00007ffcd1c34000     132 rw--- 0000000000000000 000:00000   [ stack ]
00007ffcd1d62000       8 r---- 0000000000000000 000:00000   [ anon ]
00007ffcd1d64000       8 r-x-- 0000000000000000 000:00000   [ anon ]
ffffffffff600000       4 r-x-- 0000000000000000 000:00000   [ anon ]
mapped: 22872K    writeable/private: 2252K    shared: 28K

ps

  如下例所示:
  $ ps -e -o 'pid,comm,args,pcpu,rsz,vsz,stime,user,uid'  其中rsz是是實際記憶體

[email protected]:~$ ps -e -o 'pid,comm,args,pcpu,rsz,vsz,stime,user,uid' 
   PID COMMAND         COMMAND                     %CPU   RSZ    VSZ STIME USER       UID
     1 systemd         /sbin/init auto noprompt     0.0  3264 185236 Aug26 root         0
  
  1465 smbd            /usr/sbin/smbd -D            0.0   700 329808 Aug26 root         0
  1468 lightdm         lightdm --session-child 12   0.0  1456 230304 Aug26 root         0
  1476 smbd            /usr/sbin/smbd -D            0.0  1868 337920 Aug26 root         0
  1516 rtkit-daemon    /usr/lib/rtkit/rtkit-daemon  0.0   776 183544 Aug26 rtkit      118
  1551 upowerd         /usr/lib/upower/upowerd      0.0  1292 347088 Aug26 root         0
  1568 colord          /usr/lib/colord/colord       0.0  1508 313564 Aug26 colord     113
  1583 systemd         /lib/systemd/systemd --user  0.0   828  45248 Aug26 biao      1000
  1586 (sd-pam)        (sd-pam)                     0.0    68  63316 Aug26 biao      1000
  1622 gnome-keyring-d /usr/bin/gnome-keyring-daem  0.0  1064 205216 Aug26 biao      1000
  1631 upstart         /sbin/upstart --user         0.0  2180  46460 Aug26 biao      1000
  1712 upstart-udev-br upstart-udev-bridge --daemo  0.0   812  32860 Aug26 biao      1000
  1720 dbus-daemon     dbus-daemon --fork --sessio  0.0  1804  43848 Aug26 biao      1000
  1732 window-stack-br /usr/lib/x86_64-linux-gnu/h  0.0   856  86348 Aug26 biao      1000
  1752 upstart-dbus-br upstart-dbus-bridge --daemo  0.0   344  32796 Aug26 biao      1000
  1756 upstart-dbus-br upstart-dbus-bridge --daemo  0.0   116  32796 Aug26 biao      1000
  1768 upstart-file-br upstart-file-bridge --daemo  0.0   840  41288 Aug26 biao      1000
  1769 ibus-daemon     /usr/bin/ibus-daemon --daem  0.0  1692 358328 Aug26 biao      1000
  1778 gvfsd           /usr/lib/gvfs/gvfsd          0.0   568 274520 Aug26 biao      1000
  1793 gvfsd-fuse      /usr/lib/gvfs/gvfsd-fuse /r  0.0   912 419960 Aug26 biao      1000
  1804 ibus-dconf      /usr/lib/ibus/ibus-dconf     0.0  1100 277544 Aug26 biao      1000
  1805 ibus-ui-gtk3    /usr/lib/ibus/ibus-ui-gtk3   0.0  2028 479724 Aug26 biao      1000
  1814 bamfdaemon      /usr/lib/x86_64-linux-gnu/b  0.1  5032 525904 Aug26 biao      1000
  1815 gpg-agent       gpg-agent --homedir /home/b  0.0   160 166540 Aug26 biao      1000
  1817 ibus-x11        /usr/lib/ibus/ibus-x11 --ki  0.0  2576 429916 Aug26 biao      1000
  1826 at-spi-bus-laun /usr/lib/at-spi2-core/at-sp  0.0  1392 353736 Aug26 biao      1000
  1835 dbus-daemon     /usr/bin/dbus-daemon --conf  0.0   768  43032 Aug26 biao      1000
  1838 at-spi2-registr /usr/lib/at-spi2-core/at-sp  0.0  1232 206976 Aug26 biao      1000
  1850 ibus-engine-sim /usr/lib/ibus/ibus-engine-s  0.0   620 201680 Aug26 biao      1000
  1851 hud-service     /usr/lib/x86_64-linux-gnu/h  0.0  2140 646584 Aug26 biao      1000
  1853 unity-settings- /usr/lib/unity-settings-dae  0.0  5700 928664 Aug26 biao      1000
  1871 gnome-session-b /usr/lib/gnome-session/gnom  0.0   672 560568 Aug26 biao      1000
  1875 unity-panel-ser /usr/lib/x86_64-linux-gnu/u  0.0 10024 640236 Aug26 biao      1000
  1894 indicator-messa /usr/lib/x86_64-linux-gnu/i  0.0  1856 370080 Aug26 biao      1000
  1895 indicator-bluet /usr/lib/x86_64-linux-gnu/i  0.0  1192 349052 Aug26 biao      1000
  1896 indicator-power /usr/lib/x86_64-linux-gnu/i  0.0  1568 359572 Aug26 biao      1000
  1897 indicator-datet /usr/lib/x86_64-linux-gnu/i  0.0  2740 1239784 Aug26 biao     1000
  1898 indicator-keybo /usr/lib/x86_64-linux-gnu/i  0.0  2972 649540 Aug26 biao      1000
  1901 indicator-sound /usr/lib/x86_64-linux-gnu/i  0.0  2168 749532 Aug26 biao      1000
  1906 indicator-print /usr/lib/x86_64-linux-gnu/i  0.0  2668 549388 Aug26 biao      1000
  1909 indicator-sessi /usr/lib/x86_64-linux-gnu/i  0.0  1976 570720 Aug26 biao      1000
  1914 indicator-appli /usr/lib/x86_64-linux-gnu/i  0.0  1468 476884 Aug26 biao      1000
  1936 dconf-service   /usr/lib/dconf/dconf-servic  0.0  1440 178664 Aug26 biao      1000
  1965 pulseaudio      /usr/bin/pulseaudio --start  0.0  1372 434796 Aug26 biao      1000
  1968 compiz          compiz                       6.2 168016 1700932 Aug26 biao    1000
  1973 evolution-sourc /usr/lib/evolution/evolutio  0.0  2276 1310660 Aug26 biao     1000
  2016 evolution-calen /usr/lib/evolution/evolutio  0.0  1456 869796 Aug26 biao      1000
  2023 vmtoolsd        /usr/bin/vmtoolsd -n vmusr   0.1  1076 503608 Aug26 biao      1000
  2025 polkit-gnome-au /usr/lib/policykit-1-gnome/  0.0  4028 639008 Aug26 biao      1000
  2027 gnome-software  /usr/bin/gnome-software --g  0.0 35136 1357648 Aug26 biao     1000
  2028 nm-applet       nm-applet                    0.0  2084 665244 Aug26 biao      1000
  2029 unity-fallback- /usr/lib/unity-settings-dae  0.0  2444 576876 Aug26 biao      1000
  2043 nautilus        nautilus -n                  0.0  8368 1223100 Aug26 biao     1000
  2050 fwupd           /usr/lib/x86_64-linux-gnu/f  0.0 10328 635456 Aug26 root         0
  2059 gvfs-udisks2-vo /usr/lib/gvfs/gvfs-udisks2-  0.0   692 296248 Aug26 biao      1000
  2068 udisksd         /usr/lib/udisks2/udisksd --  0.0  3104 382264 Aug26 root         0
  2076 gvfs-mtp-volume /usr/lib/gvfs/gvfs-mtp-volu  0.0  1000 259524 Aug26 biao      1000
  2081 gvfs-afc-volume /usr/lib/gvfs/gvfs-afc-volu  0.0  1292 403608 Aug26 biao      1000
  2096 gvfs-goa-volume /usr/lib/gvfs/gvfs-goa-volu  0.0  1084 257532 Aug26 biao      1000
  2103 gvfs-gphoto2-vo /usr/lib/gvfs/gvfs-gphoto2-  0.0   924 271720 Aug26 biao      1000
  2113 evolution-calen /usr/lib/evolution/evolutio  0.0   636 814620 Aug26 biao      1000
  2123 evolution-addre /usr/lib/evolution/evolutio  0.0  1228 697292 Aug26 biao      1000
  2125 evolution-calen /usr/lib/evolution/evolutio  0.0  1556 807076 Aug26 biao      1000
  2151 evolution-addre /usr/lib/evolution/evolutio  0.0  1544 772772 Aug26 biao      1000
  2183 gvfsd-trash     /usr/lib/gvfs/gvfsd-trash -  0.0   764 363648 Aug26 biao      1000
  2198 zeitgeist-datah zeitgeist-datahub            0.0   388 571676 Aug26 biao      1000
  2208 sh              /bin/sh -c /usr/lib/x86_64-  0.0   400  12528 Aug26 biao      1000
  2215 zeitgeist-daemo /usr/bin/zeitgeist-daemon    0.0  1360 423504 Aug26 biao      1000
  2224 zeitgeist-fts   /usr/lib/x86_64-linux-gnu/z  0.0  1144 321468 Aug26 biao      1000
  2271 update-notifier update-notifier              0.0  7956 526288 Aug26 biao      1000
  2319 deja-dup-monito /usr/lib/x86_64-linux-gnu/d  0.0   764 441296 Aug26 biao      1000
  6526 gnome-terminal- /usr/lib/gnome-terminal/gno  0.0  6928 683692 Aug26 biao      1000
  6533 bash            bash                         0.0   612  22764 Aug26 biao      1000
  8609 bash            bash                         0.0   580  22764 Aug26 biao      1000
 13240 smbd            /usr/sbin/smbd -D            0.0 12384 353060 Sep11 root         0
 13642 sshd            sshd: biao [priv]            0.0   740  97464 Sep11 root         0
 13691 sshd            sshd: [email protected]/17            0.0   960  97464 Sep11 biao      1000
 13692 bash            -bash                        0.0  4284  25796 Sep11 biao      1000
 13878 smbd            /usr/sbin/smbd -D            0.0 10800 359080 Sep11 root         0
 16970 python3         python3 /usr/lib/software-p  0.0  5972 201920 Sep11 root         0
 16993 unity-scope-hom /usr/lib/x86_64-linux-gnu/u  0.0  1532 646992 Sep11 biao      1000
 17005 unity-scope-loa /usr/bin/unity-scope-loader  0.0  2452 576120 Sep11 biao      1000
 17006 unity-files-dae /usr/lib/x86_64-linux-gnu/u  0.0  1512 556848 Sep11 biao      1000
 17086 gvfsd-metadata  /usr/lib/gvfs/gvfsd-metadat  0.0  1336 185980 Sep11 biao      1000
 18606 unity-panel-ser /usr/lib/x86_64-linux-gnu/u  0.0  8960 550668 Sep11 biao      1000
 23887 cups-browsed    /usr/sbin/cups-browsed       0.0  2040 274820 07:36 root         0
 24552 sshd            sshd: biao [priv]            0.0  5128  97464 08:20 root         0
 24602 sshd            sshd: [email protected]/20            0.0  3860  97464 08:20 biao      1000
 24603 bash            -bash                        0.0  5188  22868 08:20 biao      1000
 26961 kworker/0:0     [kworker/0:0]                0.0     0      0 17:25 root         0
 27026 kworker/u256:2  [kworker/u256:2]             0.0     0      0 17:45 root         0
 27050 kworker/1:2     [kworker/1:2]                0.0     0      0 17:51 root         0
 27076 kworker/u256:0  [kworker/u256:0]             0.0     0      0 18:01 root         0
 27094 kworker/0:2     [kworker/0:2]                0.0     0      0 18:05 root         0
 27095 kworker/1:1     [kworker/1:1]                0.0     0      0 18:05 root         0
 27143 kworker/u256:1  [kworker/u256:1]             0.0     0      0 18:13 root         0
 27157 cupsd           /usr/sbin/cupsd -l           0.0  7276  93236 18:16 root         0
 27158 dbus            /usr/lib/cups/notifier/dbus  0.0  5760  81244 18:16 lp           7
 27159 dbus            /usr/lib/cups/notifier/dbus  0.0  5640  81244 18:16 lp           7
 27166 ps              ps -e -o pid,comm,args,pcpu  0.0  3268  37364 18:17 biao      1000

  $ ps -e -o 'pid,comm,args,pcpu,rsz,vsz,stime,user,uid' | grep oracle |  sort -nrk

  其中rsz為實際記憶體,上例實現按記憶體排序,由大到小

free命令

在Linux下檢視記憶體我們一般用free命令:

[[email protected] tmp]# free
             total       used       free     shared    buffers     cached
Mem:       3266180    3250004      16176          0     110652    2668236
-/+ buffers/cache:     471116    2795064
Swap:      2048276      80160    1968116

下面是對這些數值的解釋:
total:總計實體記憶體的大小。
used:已使用多大。
free:可用有多少。
Shared:多個程序共享的記憶體總額。
Buffers/cached:磁碟快取的大小。
第三行(-/+ buffers/cached):
used:已使用多大。
free:可用有多少。
第四行就不多解釋了。

第二行(mem)的used/free與第三行(-/+ buffers/cache) used/free的區別:

    這兩個的區別在於使用的角度來看,第二行是從OS的角度來看,因為對於OS,buffers/cached 都是屬於被使用,所以他的可用記憶體是16176KB,已用記憶體是3250004KB,其中包括,核心(OS)使用+Application(X, oracle,etc)使用的+buffers+cached。第三行所指的是從應用程式角度來看,對於應用程式來說,buffers/cached 是等於可用的,因為buffer/cached是為了提高檔案讀取的效能,當應用程式需在用到記憶體的時候,buffer/cached會很快地被回收,所以從應用程式的角度來說,可用記憶體=系統free memory+buffers+cached
如上例:
     2795064=16176+110652+2668236

  當可用記憶體少於額定值的時候,就會開始進行交換,交換區的記憶體將被使用。
如何看額定值:

cat /proc/meminfo

[[email protected] tmp]# cat /proc/meminfo
MemTotal:      3266180 kB
MemFree:         17456 kB
Buffers:        111328 kB
Cached:        2664024 kB
SwapCached:          0 kB
Active:         467236 kB
Inactive:      2644928 kB
HighTotal:           0 kB
HighFree:            0 kB
LowTotal:      3266180 kB
LowFree:         17456 kB
SwapTotal:     2048276 kB
SwapFree:      1968116 kB
Dirty:               8 kB
Writeback:           0 kB
Mapped:         345360 kB
Slab:           112344 kB
Committed_AS:   535292 kB
PageTables:       2340 kB
VmallocTotal: 536870911 kB
VmallocUsed:    272696 kB
VmallocChunk: 536598175 kB
HugePages_Total:     0
HugePages_Free:      0
Hugepagesize:     2048 kB

用free -m檢視的結果:
[[email protected] tmp]# free -m 

             total       used       free     shared    buffers     cached
Mem:          3189       3173         16          0        107       2605
-/+ buffers/cache:        460       2729
Swap:         2000         78       1921
#free -b -s5

使用這個命令後終端會連續不斷地報告記憶體使用情況(以位元組為單位),每5秒更新一次。

 檢視/proc/kcore檔案的大小(記憶體映象):

[[email protected] tmp]# ll -h /proc/kcore 
-r-------- 1 root root 4.1G Jun 12 12:04 /proc/kcore

備註:

佔用記憶體的測量

測量一個程序佔用了多少記憶體,linux為我們提供了一個很方便的方法,/proc目錄為我們提供了所有的資訊,實際上top等工具也通過這裡來獲取相應的資訊。

/proc/meminfo 機器的記憶體使用資訊

/proc/pid/maps pid為程序號,顯示當前程序所佔用的虛擬地址。

/proc/pid/statm 程序所佔用的記憶體

[[email protected] ~]# cat /proc/self/statm

654 57 44 0 0 334 0

輸出解釋

CPU 以及CPU0。。。的每行的每個引數意思(以第一行為例)為:

引數 解釋 /proc//status

Size (pages) 任務虛擬地址空間的大小 VmSize/4

Resident(pages) 應用程式正在使用的實體記憶體的大小 VmRSS/4

Shared(pages) 共享頁數 0

Trs(pages) 程式所擁有的可執行虛擬記憶體的大小 VmExe/4

Lrs(pages) 被映像到任務的虛擬記憶體空間的庫的大小 VmLib/4

Drs(pages) 程式資料段和使用者態的棧的大小 (VmData+ VmStk )4

dt(pages) 04

檢視機器可用記憶體

/proc/28248/>free

total used free shared buffers cached

Mem: 1023788 926400 97388 0 134668 503688

-/+ buffers/cache: 288044 735744

Swap: 1959920 89608 1870312

我們通過free命令檢視機器空閒記憶體時,會發現free的值很小。這主要是因為,在linux中有這麼一種思想,記憶體不用白不用,因此它儘可能的cache和buffer一些資料,以方便下次使用。但實際上這些記憶體也是可以立刻拿來使用的。

所以 空閒記憶體=free+buffers+cached=total-used

相關推薦

Linux檢視CPU記憶體使用情況(top mpstat pmap free ps命令使用)

    在linux系統中,一般使用系統自帶的top和mpstat命令檢視CPU的效能和使用情況,使用free和pmap命令檢視系統的記憶體使用情況。這裡就這幾個命令的使用做詳細的介紹。 top命令     在系統維護的過程中,隨時可能有需要檢視 CPU 使用率,並根據相

Linux檢視CPU記憶體使用情況 top

top的各項內容解釋  PID:程序的ID   USER:程序所有者   PR:程序的優先級別,越小越優先被執行   NInice:值   VIRT:程序佔用的虛擬記憶體   RES:程序佔用的實體記憶體   SHR:程序使用的共享記憶體   S:程序的狀態。S表示休眠,R表

Linux檢視CPU記憶體使用情況

在系統維護的過程中,隨時可能有需要檢視 CPU 使用率,並根據相應資訊分析系統狀況的需要。在 CentOS 中,可以通過 top 命令來檢視 CPU 使用狀況。執行 top 命令後,CPU 使用狀態會以全屏的方式顯示,並且會處在對話的模式 -- 用基於 top 的命令,可以

linux 檢視cpugpu的使用情況

1.檢視cpu 命令列輸入: top 則會輸出: 上圖第三行就是cpu的使用情況. 引數解釋: us:使用者空間程式的cpu使用率 sy:系統空間的cpu使用率,主要是核心程式 ni:使用者空間且通過nice排程過的程式的cpu使用率

Android 測試資料監控程式-壓力測試-檢視CPU記憶體等指標使用情況

Android 測試資料監控程式 功能說明 Android 下 top 資料監控 Android 下 memin

彙編實驗一 檢視CPU記憶體,用機器指令組合語言指令程式設計

在裝完DosBox環境之後,就可以用debug模式進行彙編指令的程式設計了。 實驗內容:      首先用a指令進行資料的儲存,然後用t命令進行除錯。     可以發現ax,bx在不同的命令下發

實驗1檢視CPU記憶體,用機器指令組合語言指令程式設計

(1)實驗截圖如下:   (2).將下面3條指令寫入從2000:0開始的記憶體單元中,利用這3條指令計算2的8次方。     mov ax,1     add ax,ax     jmp 2000:0003 給出第一次和第16次t命令結果截圖 (3)檢視日期並嘗試修改其值。 (4)向

Linux 檢視程序消耗記憶體情況總結

在Linux中,有很多命令或工具檢視記憶體使用情況,今天我們來看看如何檢視程序消耗、佔用的記憶體情況,Linux的記憶體管理和相關概念要比Windows複雜一些。在此之前,我們需要了解一下Linux系統下面有關記憶體的專用名詞和專業術語概念: 實體記憶體和虛擬記

Linux資源監控檢視命令top—實時檢視cpu記憶體、程序情況

top命令相當於window系統的工作管理員,這個命令可以讓我們輕鬆的檢視到linux當前負載的實時資料,便於我們更好的管理系統合理作出調整; top命令比window系統工作管理員更強大,通過相應引數可以更直觀快速輸出我們想要的資料,更加詳細便捷的提供給我們l

Linux檢視CPUGPU使用情況

Linux下檢視CPU和GPU使用情況 本文記錄瞭如何在Linux系統(以Ubuntu 16.04為例)檢視電腦的GPU和CPU使用情況,包括命令和查詢得到的介面。更新於2018.10.18。 CPU使用情況檢視 動態檢視 開啟終端,輸入: top 即可看到實時

Linux ps命令檢視程序cpu記憶體佔用率排序

linux ps命令,檢視程序cpu和記憶體佔用率排序 使用以下命令檢視: ps -aux | sort -k4,4n ps auxw --sort=rss ps auxw --sort=%cpu linux 下的ps命令 %CPU 程序的cpu佔用率 %MEM 程序的記憶

linux檢視cpu核數記憶體指令

# 總核數 = 物理CPU個數 X 每顆物理CPU的核數 # 總邏輯CPU數 = 物理CPU個數 X 每顆物理CPU的核數 X 超執行緒數 # 檢視物理CPU個數 cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l或grep 'p

檢視當前應用cpu記憶體使用情況

adb shell top -m 10 -s cpu      //查詢當前cpu佔用前十的應用 dumpsys meminfo  //檢視手機上所有的記憶體資訊 dumpsys battery     //檢視電量資訊 dumpsys meminfo “要檢視的應用的包

linux檢視cpu記憶體硬碟大小

轉載至:http://blog.sina.com.cn/s/blog_535aa0930100ltz8.html 查cpu #dmesg |grep -i xeon CPU0: Intel(R) Xeon(R) CPU           E5520  @ 2.27G

[工作筆記之三] 通過adb檢視android手機CPU記憶體佔用情況

      最近邱同學讓我整理一下快看測試的效能指標,問了一下老大,他跟我說了響應時間、資源利用率和吞吐量這些。這裡先了解一下手機的CPU和記憶體的檢視方法,不過測試效能裡的資源利用率好像說的是伺服器端的,不知道有沒有搞錯。先記錄一下手機端的吧。 1. 開啟DOS視窗,進入

Linux檢視伺服器的cpu記憶體的硬體資訊

每個cpu是幾核(假設cpu配置相同) more /proc/cpuinfo |grep "physical id"|grep "0"|wc -l cat /proc/cpuinfo | grep processor 1. 檢視物理CPU的個數 #cat /proc

linux 檢視各個程序記憶體使用情況 top 命令解釋

參考 :https://www.cnblogs.com/zhuiluoyu/p/6154898.html ps aux --sort -rss或者:https://www.cnblogs.com/sparkbj/p/6148817.htmllinux下獲取佔用CPU資源最多的

windows下使用adb工具檢視android程式cpu記憶體消耗情況

       今天在除錯android程式時,發現程式有點卡,覺得應該看看程式的cpu和記憶體消耗,一直以來都在windows下程式設計,已經習慣了windows工作管理員或者資源監視器,此時猛然發現

linux系統下檢視CPU記憶體負載情況

$ vmstat procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------ r b swpd free buff cache si so

linux檢視cpu使用情況檢視記憶體使用情況

今天我們呢來聊聊效能的問題。。。咳咳~ 有時候呢我們的伺服器執行的好好的突然就變的痴呆了。。到底是咋麼個回事? 當然檢視一下它的使用情況就知道了呀。。。 真相只有一個 首