【Linux】命令每日一個:free

2021-03-06 光榮之路
說明:

接下來解釋什麼時候內存會被交換,以及按什麼方交換。

當可用內存少於額定值的時候,就會開會進行交換.如何看額定值:

命令:

cat /proc/meminfo

輸出:

[root@SF1150 service]# cat /proc/meminfo

MemTotal: 32940112 kB

MemFree: 2096700 kB

Buffers: 4545340 kB

Cached: 11364056 kB

SwapCached: 1896080 kB

Active: 22739776 kB

Inactive: 7427836 kB

HighTotal: 0 kB

HighFree: 0 kB

LowTotal: 32940112 kB

LowFree: 2096700 kB

SwapTotal: 32764556 kB

SwapFree: 30819572 kB

Dirty: 164 kB

Writeback: 0 kB

AnonPages: 14153592 kB

Mapped: 20748 kB

Slab: 590232 kB

PageTables: 34200 kB

NFS_Unstable: 0 kB

Bounce: 0 kB

CommitLimit: 49234612 kB

Committed_AS: 23247544 kB

VmallocTotal: 34359738367 kB

VmallocUsed: 278840 kB

VmallocChunk: 34359459371 kB

HugePages_Total: 0HugePages_Free: 0HugePages_Rsvd: 0Hugepagesize: 2048 kB

交換將通過三個途徑來減少系統中使用的物理頁面的個數: 

1.減少緩衝與頁面cache的大小,

2.將系統V類型的內存頁面交換出去, 

3.換出或者丟棄頁面。(Application 佔用的內存頁,也就是物理內存不足)。

事實上,少量地使用swap是不是影響到系統性能的。

那buffers和cached都是緩存,兩者有什麼區別呢?

為 了提高磁碟存取效率, Linux做了一些精心的設計, 除了對dentry進行緩存(用於VFS,加速文件路徑名到inode的轉換), 還採取了兩種 主要Cache方式:Buffer Cache和Page Cache。前者針對磁碟塊的讀寫,後者針對文件inode的讀寫。這些Cache有效縮短 了 I/O系統調用(比如read,write,getdents)的時間。

磁碟的操作有邏輯級(文件系統)和物理級(磁碟塊),這兩種Cache就是分別緩存邏輯和物理級數據的。

Page cache 實際上是針對文件系統的,是文件的緩存,在文件層面上的數據會緩存到page cache。文件的邏輯層需要映射到實際的物理磁碟,這種映射關係由文件系 統來完成。當page cache的數據需要刷新時,page cache中的數據交給buffer cache,因為Buffer Cache就是緩存 磁碟塊的。但是這種處理在2.6版本的內核之後就變的很簡單了,沒有真正意義上的cache操作。

Buffer cache是針對磁碟塊的緩存,也就是在沒有文件系統的情況下,直接對磁碟進行操作的數據會緩存到buffer cache中,例如,文件系統的元數據都會緩存到buffer cache中。

簡單說來,page cache用來緩存文件數據,buffer cache用來緩存磁碟數據。在有文件系統的情況下,對文件操作,那麼數據會緩存到page cache,如果直接採用dd等工具對磁碟進行讀寫,那麼數據會緩存到buffer cache。

所以我們看linux,只要不用swap的交換空間,就不用擔心自己的內存太少.如果常常swap用很多,可能你就要考慮加物理內存了.這也是linux看內存是否夠用的標準.

如果是應用伺服器的話,一般只看第二行,+buffers/cache,即對應用程式來說free的內存太少了,也是該考慮優化程序或加內存了。

相關焦點

  • 每天一個 Linux 命令(45):free 命令
    在Linux系統監控的工具中,free命令是最經常使用的命令之一。1.命令格式:free [參數]2.命令功能:free 命令顯示系統使用和空閒的內存情況,包括物理內存、交互區內存(swap)和內核緩衝區內存。
  • linux命令free詳解
    total= used + free 第2行 -/+ buffers/cached: used:也就是第一行中的used - buffers-cached 也是實際使用的內存總量。free:未被使用的buffers 與cache 和未被分配的內存之和,這就是系統當前實際可用內存。
  • free:一個在 Linux 中檢查內存使用情況的標準命令
    管理內存使用是 Linux 管理員又一個具有挑戰性的任務。free 是 Linux 中一個標準的並且被廣泛使用的命令,它被用來分析內存統計(空閒和已用)。今天,我們將要討論 free 命令以及它的一些有用選項。
  • 檢測Linux內存使用情況的free命令的10個
    確定物理內存和交換內存所有可用空間的最重要、也是唯一的方法是使用「free」命令。Linux 「free」命令可以給出類Linux/Unix作業系統中物理內存和交換內存的總使用量、可用量及內核使用的緩衝區情況。這篇文章提供一些各種參數選項的「free」命令,這些命令對於你更好地利用你的內存會有幫助。
  • linux系統下free命令內存計算邏輯
    本篇文章介紹下linux下free命令展示的內存相關計算邏輯。
  • Linux free 命令
    是一個很受系統管理員歡迎的命令,它是一個功能強大的工具,他能以一種易讀的方式把內存使用情況展示出來free 展示了系統中空閒和已經使用了的物理內存、交換內存以及內核的緩衝區和頁面緩存,所有展示的信息都是從 /proc/meminfo 文件解析出來的語法free命令的語法如下
  • Linux free 命令 - 顯示系統中空閒和已使用的內存
    其中一個重要的部分就是內存。當伺服器內存使用率過高時,它會降低伺服器的性能。Linux有一個稱為 free 的工具,來監控內存使用率。free 命令是什麼free 命令是一個顯示系統中空閒和已用內存大小的工具。free 命令的輸出和 top 命令相似。大多數Linux發行版已經含有 free 命令。
  • 6 個例子讓初學者掌握 free 命令 | Linux 中國
    在 Linux 系統上,有時你可能想從命令行快速地了解系統的已使用和未使用的內存空間。如果你是一個 Linux 新手,有個好消息:有一條系統內置的命令可以顯示這些信息:free。在本文中,我們會講到 free 命令的基本用法以及它所提供的一些重要的功能。文中提到的所有命令和用法都是在 Ubuntu 16.04LTS 上測試過的。
  • linux每日命令(4):pwd命令
    轉自盛邦校區高級講師田耀華每日分享linux每日命令(4):pwd命令Linux中用 pwd
  • 【玩轉Linux命令】free來了
    在Linux系統中,free命令是我們檢查系統內存情況(包括已使用內存、空閒內存、buffer等等)的一個有力工具,是Linux系統中最常用的命令之一。一、命令格式和參數free命令的格式非常簡單,直接跟參數即可:free命令的參數也比較簡單,常見的有如下的幾種:1.顯示內存使用情況
  • linux每日命令(19):locate 命令
    linux每日命令(19):locate 命令locate 讓使用者可以很快速的搜尋檔案系統內是否有指定的檔案
  • linux每日命令(31):tar命令
    linux每日命令(31):tar命令tar命令可以為linux的文件和目錄創建檔案。
  • 每天一個 Linux 命令(35):top 命令
    top命令是 Linux 下常用的性能分析工具,能夠實時顯示系統中各個進程的資源佔用狀況,類似於 Windows 的任務管理器。下面詳細介紹它的使用方法。top 是一個動態顯示過程,即可以通過用戶按鍵來不斷刷新當前狀態。
  • 每天一個 Linux 命令(60):scp命令
    1.命令格式:scp [參數] [原路徑] [目標路徑]2.命令功能:scp是 secure copy的縮寫, scp是linux系統下基於ssh登陸進行安全的遠程文件拷貝命令。linux的scp命令可以在linux伺服器之間複製文件和目錄。
  • linux的常用命令(四)
    -Chmod 查看文件詳情: ls -l file 權限類型: r 讀(4) w 寫(2) x 執行(1) - 無權限(0) 權限詳情: drwxr-xr-x 2 root root 6 Oct 16 19:14 dir 1.目錄 2.root對dir的權限:rwx:讀+寫+執行 3.root組對dir的權限:r
  • 【Linux】命令每日一個:Linux 目錄結構(續)
    至於核心原始碼則建議放置到/usr/src/linux/目錄下。 三. /var 的意義與內容:如果/usr是安裝時會佔用較大硬碟容量的目錄,那麼/var就是在系統運作後才會漸漸佔用硬碟容量的目錄。舉例來說,刻錄機正在刻錄一塊光碟,你想一下,會不會有兩個人同時在使用一個刻錄機燒片? 如果兩個人同時刻錄,那片子寫入的是誰的數據?所以當第一個人在刻錄時該刻錄機就會被上鎖, 第二個人就得要該裝置被解除鎖定(就是前一個人用完了)才能夠繼續使用/var/log/非常重要。這是登錄文件放置的目錄。
  • linux性能監控:內存監控命令之free命令
    free命令可以顯示當前系統未使用的和已使用的內存數目,還可以顯示被內核使用的內存緩衝區。顯示內存使用信息:命令:    free 輸出:以總和的形式查詢內存使用情況:命令:    free -t輸出:
  • linux每日命令(32):gzip命令
    linux每日命令(32):gzip命令減少文件大小有兩個明顯的好處,一是可以減少存儲空間
  • Linux中Tee命令使用實例
    下面例子使用free命令顯示系統內存使用信息,並使用tee命令將信息輸出到屏幕,並保存到文件mem.txt中。[root@localhost ~]# free -h | tee mem.txt              total        used        free      shared  buff/cache   availableMem:           1.8G        164M        1.2G        9.6M        387M
  • FreeSurfer 6 Linux 安裝教程
    license.txt,把他放到$FREESURFER_HOME (usr/local/freesurfer) 文件夾中7.測試是否安裝成功:運行命令recon-all --help沒有報錯的話 ,就說明基本安裝成功,但還是要給官方測試方法一點排面,下面有四個測試例子可供參考。