0?前言
在系統安全檢查中,內存使用情況也是一塊可以關注的內容。Linux提供了多個獲取內存信息的命令很多。今天我們先研究free命令。
1 free命令的功能、用法和選項說明
1.1?free命令的功能
free 命令可以顯示系統內存的使用情況,包括物理內存、交換內存(swap)和內核緩沖區內存。
[purpleendurer @ bash ~] free --helpUsage:free [options]Options:-b, --bytes show output in bytes-k, --kilo show output in kilobytes-m, --mega show output in megabytes-g, --giga show output in gigabytes--tera show output in terabytes--peta show output in petabytes-h, --human show human-readable output--si use powers of 1000 not 1024-l, --lohi show detailed low and high memory statistics-t, --total show total for RAM + swap-s N, --seconds N repeat printing every N seconds-c N, --count N repeat printing N times, then exit-w, --wide wide output--help display this help and exit-V, --version output version information and exitFor more details see free(1).
[purpleendurer @ bash ~]
1.2 free命令的用法
free [選項]
1.3 選項說明
?
選項 | 說明 |
---|---|
-b --bytes | 以字節為單位顯示輸出 |
-k --kilo | 以千字節為單位顯示輸出 |
-m --mega | 以兆字節為單位輸出 |
-g --giga | 以 GB 為單位輸出 |
--tera | 以 TB 為單位輸出 |
--peta | 以 PB 為單位輸出 |
-h --human | 顯示人類可讀的輸出 |
--si | 使用 1000 的冪而不是 1024 |
-l --lohi | 顯示詳細的低內存和高內存統計信息 |
-t --total | 顯示 RAM + 交換的總計 |
-s N --seconds N | 每 N 秒重復打印一次 |
-c N --count N | 重復打印 N 次,然后退出 |
-w --wide | 寬寬輸出 |
--help | 顯示此助信息并退出 |
-V --version | 輸出版本信息并退出 |
?2 free命令應用實例
2.1 free
[purpleendurer @ bash ~]freetotal used free shared buff/cache available Mem: 3855940 236804 2051384 360 1567752 3371200 Swap: 0 0 0 [purpleendurer @ bash ~]
?
?
命令返回的信息針對 Mem(內存)和Swap(交換空間)分別顯示了6列信息。
Mem(內存)比交內容理解。
swap space (交換空間)是磁盤上的一塊區域,當系統物理內存吃緊時,Linux 會將內存中不常訪問的數據保存到 swap 上,這樣系統就有更多的物理內存來使用,而當系統需要訪問 swap 上存儲的內容時,再將 swap 上的數據加載到內存中,這就是常說的換出和換入。
再來看6列信息的含義。
第1列?total? ? ? ? ? ? :系統總的可用物理內存和交換空間大小。
第2列?used? ? ? ? ? ?:已經被系統使用的物理內存和交換空間。
第3列?free? ? ? ? ? ???:還有多少物理內存和交換空間可用使用。
第4列?shared? ? ? ? :?顯示被共享使用的物理內存大小。
第5列?buff/cache??:被 buffer 和 cache 使用的物理內存大小。
第6列??available? ?: 可以被應用程序使用的物理內存大小。
buff?(?buffer cache),即 "緩沖區"。操作系統中文件系統的最小尋址單元是塊,每個塊包含一個或多個扇區。當一個塊被調入內存時,它要存儲在一個緩沖區中。每個緩沖區與一個塊對應。緩沖區只是把磁盤上的塊直接搬到內存中而不關心塊中究竟存放的是什么格式的文件。
cache?(page cache),即?"頁高速緩存"。頁高速緩存是內核實現的磁盤緩存。它通過把磁盤中的數據緩存到物理內存中,把對磁盤的訪問變為對物理內存的訪問,來減少對磁盤的 I/O 操作。頁高速緩存緩存的是內存頁面。緩存中的頁來自對普通文件、塊設備文件(即?buffer cache 呀)和內存映射文件的讀寫。
對于系統來說,buffer 和 cache 都屬于已經被使用的內存。當應用程序需要內存時,如果沒有足夠的 free 內存可以用,內核就會從 buffer 和 cache 中回收內存來滿足應用程序的請求。所以從應用程序的角度來說,available? = free + buffer + cache。
2.2 free -h :顯示人類可讀的輸出
?
[purpleendurer @ bash ~]free -htotal used free shared buff/cache available Mem: 3.7G 259M 1.9G 360K 1.5G 3.2G Swap: 0B 0B 0B [purpleendurer @ bash ~]
?
?2.3?free -h -s 5:每隔5秒顯示一次信息
[purpleendurer @ bash ~]free -h -s 5total used free shared buff/cache available Mem: 3.7G 259M 1.9G 360K 1.5G 3.2G Swap: 0B 0B 0Btotal used free shared buff/cache available Mem: 3.7G 258M 1.9G 360K 1.5G 3.2G Swap: 0B 0B 0Btotal used free shared buff/cache available Mem: 3.7G 259M 1.9G 360K 1.5G 3.2G Swap: 0B 0B 0Btotal used free shared buff/cache available Mem: 3.7G 259M 1.9G 360K 1.5G 3.2G Swap: 0B 0B 0B