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 檢視cpu和gpu的使用情況
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下檢視CPU和GPU使用情況
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使用情況,檢視記憶體使用情況
今天我們呢來聊聊效能的問題。。。咳咳~ 有時候呢我們的伺服器執行的好好的突然就變的痴呆了。。到底是咋麼個回事? 當然檢視一下它的使用情況就知道了呀。。。 真相只有一個 首