作為一名 Linux 管理員,知道如何獲取當前可用的和已經使用的資源情況,比如內存、CPU、磁盤等,是相當重要的。--
Linux 并不像 ,你經常不會有圖形界面可供使用,特別是在服務器環境中。
作為一名 Linux 管理員,知道如何獲取當前可用的和已經使用的資源情況,比如內存、CPU、磁盤等,是相當重要的。如果某一應用在你的系統上占用了太多的資源,導致你的系統無法達到最優狀態,那么你需要找到并修正它。
如果你想找到消耗內存前十名的進程,你需要去閱讀這篇文章:。
在 Linux 中,命令能做任何事,所以使用相關命令吧。在這篇教程中,我們將會給你展示 8 個有用的命令來即查看在 Linux 系統中內存的使用情況,包括 RAM 和交換分區。
創建交換分區在 Linux 系統中是非常重要的,如果你想了解如何創建,可以去閱讀這篇文章:。
下面的命令可以幫助你以不同的方式查看 Linux 內存使用情況。
?free命令?/proc/文件?命令?命令?smem命令?top命令?htop命令?命令
1)如何使用 free 命令查看 Linux 內存使用情況
是被 Linux 管理員廣泛使用的主要命令。但是它提供的信息比/proc/文件少。
free命令會分別展示物理內存和交換分區內存中已使用的和未使用的數量,以及內核使用的緩沖區和緩存。
這些信息都是從/proc/文件中獲取的。
# free -m
total used free shared buff/cache available
Mem: 15867 9199 1702 3315 4965 3039
Swap: 17454 666 16788
?total:總的內存量?used:被當前運行中的進程使用的內存量(used=total–free–buff/cache)?free:未被使用的內存量(free=total–used–buff/cache)?:在兩個或多個進程之間共享的內存量?:內存中保留用于內核記錄進程隊列請求的內存量?cache:在 RAM 中存儲最近使用過的文件的頁緩沖大小?buff/cache:緩沖區和緩存總的使用內存量?:可用于啟動新應用的可用內存量(不含交換分區)
2) 如何使用 /proc/ 文件查看 Linux 內存使用情況
/proc/文件是一個包含了多種內存使用的實時信息的虛擬文件。它展示內存狀態單位使用的是 kB,其中大部分屬性都難以理解。然而它也包含了內存使用情況的有用信息。
# cat /proc/meminfo
MemTotal: 16248572 kB
MemFree: 1764576 kB
MemAvailable: 3136604 kB
Buffers: 234132 kB
Cached: 4731288 kB
SwapCached: 28516 kB
Active: 9004412 kB
Inactive: 3552416 kB
Active(anon): 8094128 kB
Inactive(anon): 2896064 kB
Active(file): 910284 kB
Inactive(file): 656352 kB
Unevictable: 80 kB
Mlocked: 80 kB
SwapTotal: 17873388 kB
SwapFree: 17191328 kB
Dirty: 252 kB
Writeback: 0 kB
AnonPages: 7566736 kB
Mapped: 3692368 kB
Shmem: 3398784 kB
Slab: 278976 kB
SReclaimable: 125480 kB
SUnreclaim: 153496 kB
KernelStack: 23936 kB
PageTables: 73880 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 25997672 kB
Committed_AS: 24816804 kB
VmallocTotal: 34359738367 kB
VmallocUsed: 0 kB
VmallocChunk: 0 kB
Percpu: 3392 kB
HardwareCorrupted: 0 kB
AnonHugePages: 0 kB
ShmemHugePages: 0 kB
ShmemPmdMapped: 0 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
Hugetlb: 0 kB
DirectMap4k: 1059088 kB
DirectMap2M: 14493696 kB
DirectMap1G: 2097152 kB
3) 如何使用 命令查看 Linux 內存使用情況
是另一個報告虛擬內存統計信息的有用工具。
報告的信息包括:進程、內存、頁面映射、塊 I/O、陷阱、磁盤和 CPU 特性信息。不需要特殊的權限,并且它可以幫助診斷系統瓶頸。
# vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
1 0 682060 1769324 234188 4853500 0 3 25 91 31 16 34 13 52 0 0
如果你想詳細了解每一項的含義linux查看進程狀態命令,閱讀下面的描述。
?procs:進程?r:可以運行的進程數目(正在運行或等待運行)?b:處于不可中斷睡眠中的進程數目?:內存?swpd:使用的虛擬內存數量?free:空閑的內存數量?buff:用作緩沖區內存的數量?cache:用作緩存內存的數量?inact:不活動的內存數量(使用-a選項)?:活動的內存數量(使用-a選項)?Swap:交換分區?si:每秒從磁盤交換的內存數量?so:每秒交換到磁盤的內存數量?IO:輸入輸出?bi:從一個塊設備中收到的塊(塊/秒)?bo:發送到一個塊設備的塊(塊/秒)?:系統?in:每秒的中斷次數,包括時鐘。?cs:每秒的上下文切換次數。?CPU:下面這些是在總的 CPU 時間占的百分比?us:花費在非內核代碼上的時間占比(包括用戶時間linux查看進程狀態命令,調度時間)?sy:花費在內核代碼上的時間占比 (系統時間)?id:花費在閑置的時間占比。在 Linux 2.5.41 之前,包括 I/O 等待時間?wa:花費在 I/O 等待上的時間占比。在 Linux 2.5.41 之前,包括在空閑時間中?st:被虛擬機偷走的時間占比。在 Linux 2.6.11 之前,這部分稱為