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命令詳解