Linux學習筆記:free和top命令查看系統內存使用情況


free 命令

Linux free 命令用於顯示內存狀態。

free 指令會顯示內存的使用情況,包括實體內存,虛擬的交換文件內存,共享內存區段,以及系統核心使用的緩沖區等。

語法:

free [-bkmotV] [-s <間隔秒數>]

參數說明:

-b:以 Byte 為單位顯示內存使用情況
-k:以 KB 為單位顯示內存使用情況
-m:以 MB 為單位顯示內存使用情況
-h:以合適的單位顯示內存使用情況,最大為三位數,自動計算對應的單位值。單位有:

B = bytes
K = kilos
M = megas
G = gigas
T = teras

-s:持續觀察內存使用狀況
-t:顯示內存總和列
-V:顯示版本信息

其中,最常使用 free -h,以適於人類可讀方式顯示內存信息。-h 與其他命令最大不同是 -h 選項會在數字后面加上適於人類可讀的單位。

實例:

# free // 顯示內存使用情況
             total       used       free     shared    buffers     cached
Mem:      32948032   31913588    1034444          0     136048   28992904
-/+ buffers/cache:    2784636   30163396
Swap:      8193140    1071708    7121432
# free // 周期性查詢內存使用情況 每5s執行一次命令
             total       used       free     shared    buffers     cached
Mem:      32948032   31913588    1034444          0     136048   28992904
-/+ buffers/cache:    2784636   30163396
Swap:      8193140    1071708    7121432
root@:[/home/iod_etl/BDC]free -s 5
             total       used       free     shared    buffers     cached
Mem:      32948032   31914832    1033200          0     136256   29001032
-/+ buffers/cache:    2777544   30170488
Swap:      8193140    1071708    7121432

             total       used       free     shared    buffers     cached
Mem:      32948032   31915684    1032348          0     136268   29001020
-/+ buffers/cache:    2778396   30169636
Swap:      8193140    1071708    7121432

             total       used       free     shared    buffers     cached
Mem:      32948032   31915992    1032040          0     136280   29002476
-/+ buffers/cache:    2777236   30170796
Swap:      8193140    1071708    7121432
##  使用 -s 命令每隔一段時間輸出一次內存的使用情況
## 直到按下 ctrl + C 

結果解讀:

  • total:表示總計物理內存大小
  • used:表示已用內存
  • free:表示可用內存
  • shared:表示多個進程共享的內存總額
  • buffers/cached:表示磁盤緩存大小
  • avaiable:可用內存

free 命令背后是復雜的操作系統概念,有一定的了解即可。

top 命令

Linux top 命令用於實時顯示 process 的動態。

所有使用者都可以使用。

top 命令是 Linux 下常用的性能分析工具,能夠實時顯示系統中各個進程的資源占用狀況,類似於 Windows 的任務管理器。

語法:

top [-] [d delay] [q] [c] [S] [s] [i] [n] [b]

參數說明:

d : 改變顯示的更新速度,或是在交談式指令列 (interactive command) 按 s
q : 沒有任何延遲的顯示速度,如果使用者是有 superuser 的權限,則 top 將會以最高的優先序執行
c : 切換顯示模式,共有兩種模式,一是只顯示執行檔的名稱,另一種是顯示完整的路徑與名稱S : 累積模式,會將己完成或消失的子行程 ( dead child process ) 的 CPU time 累積起來
s : 安全模式,將交談式指令取消, 避免潛在的危機
i : 不顯示任何閑置 (idle) 或無用 (zombie) 的行程
n : 更新的次數,完成后將會退出 top
b : 批次檔模式,搭配 "n" 參數一起使用,可以用來將 top 的結果輸出到檔案內

實例:

# top // 顯示進程信息
root@:top
top - 17:39:37 up 1007 days,  7:38,  4 users,  load average: 0.30, 0.39, 0.46
Tasks: 691 total,   1 running, 689 sleeping,   0 stopped,   1 zombie
Cpu(s):  0.0%us,  0.1%sy,  0.0%ni, 99.6%id,  0.1%wa,  0.1%hi,  0.1%si,  0.0%st
Mem:  32948032k total, 31899900k used,  1048132k free,   139076k buffers
Swap:  8193140k total,  1071708k used,  7121432k free, 28981768k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                          
19666 xx  15   0 50908 1152  560 S  1.3  0.0 226:18.18 vsftpd                                                           
31288 root      15   0 13136 1572  808 R  1.0  0.0   0:00.18 top                                                              
 1917 xx  15   0 50908 1112  560 S  0.7  0.0  63:36.78 vsftpd                                                           
 1923 xx  15   0 50908 1156  560 S  0.7  0.0 225:32.57 vsftpd 

清除緩存

清理已使用緩存(buff/cache),可以使用以下命令:

## 清理 buff/cache

sync; echo 3 > /proc/sys/vm/drop_caches 

參考鏈接1:Linux free命令

參考鏈接2:linux free命令詳解(一)

參考鏈接3:linux下free命令詳解

參考鏈接4:Linux top命令

參考鏈接5:Linux top命令詳解


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM