f-free 查看系统中空闲和使用的内存
文章目錄
- 前言
- 語法格式
- 以指定單位顯示內存占用情況
- 打印所有內存占用(RAM + SWAP)
- 打印間隔以及次數
- 打印所有的列(將buff和cache分開)
- free各個空間含義
- swap交換空間
- cache頁高速緩存
- free 與 available
前言
free 支持查看空閑的和已使用的物理內存和交換分區所占用的系統內存情況,改信息是通過解析/proc/meminfo文件中的內容進行獲取。
這里簡單描述一下展示幾列內容的含義:
total系統總內存 ,顯示的Mem和Swap為/proc/meminfo中的MemTotal and SwapTotal項used被使用的內存,通過total - free所得free未使用的內存,為/proc/meminfo中的MemFree and SwapFree項shared共享內存,大多被tmpfs使用的內存,為/proc/meminfo中的Shmem選項,內核版本2.6.32以上可用,如果不可用,則會顯示0buffers被內核使用的緩沖區,/proc/meminfo中的Bufferscache被操作系統頁緩存和slabs占用的內存,/proc/meminfo中的Cached和Slab。關于slab的介紹可以參考Linux內存管理中的slab分配器buff/cachebuffers和cache占用的內存之和available可用的內存
語法格式
free [options]
以指定單位顯示內存占用情況
-b指定輸出單位為Bytes-k指定輸出單位為KB-m指定輸出單位為MB-g指定輸出單位為GB,還可以指定--tera–TB,peta–PB 不過一般不會有這么大的單節點內存了-h以人性化的輸出查看內存,超過M的顯示為M,超過G的顯示為G
打印所有內存占用(RAM + SWAP)
free -t
free -th
打印間隔以及次數
free -s 1 -c 10 -h 每隔一秒打印一次,總共打印10次
打印所有的列(將buff和cache分開)
free -wh
free各個空間含義
swap交換空間
swap space 是磁盤上的一塊區域,可以是一個分區,也可以是一個文件。所以具體的實現可以是 swap 分區也可以是 swap 文件。當系統物理內存吃緊時,Linux 會將內存中不常訪問的數據保存到 swap 上,這樣系統就有更多的物理內存為各個進程服務,而當系統需要訪問 swap 上存儲的內容時,再將 swap 上的數據加載到內存中,這就是常說的換出和換入。交換空間可以在一定程度上緩解內存不足的情況,但是它需要讀寫磁盤數據,所以性能不是很高。
內核提供 swappiness 的參數,用于配置需要將內存中不常用的數據移到 swap 中去的緊迫程度,默認為60,表示內存可以將不常使用的數據60%遷移到swap分區。
使用/sbin/sysctl -a|grep swappiness 查看配置情況
在/etc/etc/sysctl.conf 修改配置 vm.swappiness = 70
使用/sbin/sysctl -p /etc/sysctl.conf 應用配置
cache頁高速緩存
參考linux 文件IO與內存映射:page cache頁高速緩存
free 與 available
free 是真正尚未被使用的物理內存數量,至于 available它是從應用程序的角度看到的可用內存數量,Linux 內核為了提升磁盤操作的性能,會消耗一部分內存去緩存磁盤數據,就是我們介紹的 buffer 和 cache。所以對于內核來說,buffer 和 cache 都屬于已經被使用的內存。當應用程序需要內存時,如果沒有足夠的 free 內存可以用,內核就會從 buffer 和 cache 中回收內存來滿足應用程序的請求。所以從應用程序的角度來說,available = free + buffer + cache。請注意,這只是一個很理想的計算方式,實際中的數據往往有較大的誤差
總結
以上是生活随笔為你收集整理的f-free 查看系统中空闲和使用的内存的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++的STL栈实现获取栈中最小元素的成
- 下一篇: 觉醒后会清除属性吗