liunx釋放快取

2021-10-23 01:38:43 字數 1551 閱讀 2623

1、檢視記憶體使用情況 free -m/free -g 

total:記憶體總數

used:已經使用的記憶體數

free:空閒的記憶體數

shared:當前已經廢棄不用

buffers buffer:快取記憶體數

cached page:快取記憶體數

第一行:

mem的 total=used+free used使用記憶體 free空閒記憶體

shared 表示被幾個程序共享的記憶體的。

buffer 緩衝 是用於存放要輸出到disk(塊裝置)的資料。

是根據磁碟的讀寫 設計的,把分散的寫操作集中進行,減少磁碟碎片和硬碟的反覆尋道,從而提高系統效能。

cache 快取 是存放從disk上讀出的資料。是把讀取過的資料儲存起來,重新讀取時若命中(找到需要的資料)就不要去讀硬碟了,若沒有命中就讀硬碟。

其中的資料會根據讀取頻率進行組織,把最頻繁讀取的內容放在最容易找到的位置,把不再讀的內容不斷往後排,直至從中刪除。

如果cache 的值很大,說明cache住的檔案數很多。如果頻繁訪問到的檔案都能被cache住,那麼磁碟的讀io bi會非常小。

第二行:

這一行表示兩項 -buffers/cache 和 + buffers/cache

-buffers/cache = used -(buffers+cache) 表示使用的記憶體中不計算buffers和cache,系統使用記憶體量

+ buffers/cache =free+( buffers+cache) 表示系統空閒記憶體與buffers、cache的和

第三行:

交換記憶體 使用量 空限量

linux伺服器執行一段時間後,由於其記憶體管理機制,會將暫時不用的記憶體轉為buff/cache,這樣在程式使用到這一部分資料時,能夠很快的取出,從而提高系統的執行效率,所以這也正是linux記憶體管理中非常出色的一點,所以乍一看記憶體剩餘的非常少,但是在程式真正需要記憶體空間時,linux會將快取讓出給程式使用,這樣達到對記憶體的最充分利用,所以真正剩餘的記憶體是free+buff/cache

但是有些時候大量的快取佔據空間,這時候應用程式回去使用swap交換空間,從而使系統變慢,這時候需要手動去釋放記憶體,釋放記憶體的時候,首先執行命令 sync 將所有正在記憶體中的緩衝區寫到磁碟中,其中包括已經修改的檔案inode、已延遲的塊i/o以及讀寫對映檔案,從而確保檔案系統的完整性
2、sync

手動執行sync命令(描述:sync 命令執行 sync 子例程。如果必須停止系統,則執行sync 命令以確保檔案系統的完整性。sync 命令將所有未寫的系統緩衝區寫到磁碟中,包含已修改的 i-node、已延遲的塊 i/o 和讀寫對映檔案)

3、釋放 echo 3 > /proc/sys/vm/drop_caches

0:0是系統預設值,預設情況下表示不釋放記憶體,由作業系統自動管理

1:釋放頁快取

2:釋放dentries和inodes

3:釋放所有快取

如果現在想讓作業系統重新分配記憶體,那麼設定drop_caches的值為0即可

echo 0 > /proc/sys/vm/drop_caches

centos 釋放快取

通過drop cache可以清理釋放很多pagecache,dentries and inodes。方法有以下幾種 1.to free pagecache echo 1 proc sys vm drop caches 2.to free dentries and inodes echo 2 proc...

如何為linux釋放快取

原文 在linux系統下,我們一般不需要去釋放記憶體,因為系統已經將記憶體管理的很好。但是凡事也有例外,有的時候記憶體會被快取占用掉,導致系統使用swap空間影響效能,此時就需要執行釋放記憶體 清理快取 的操作了。linux系統的快取機制是相當先進的,他會針對dentry 用於vfs,加速檔案路徑名...

zz 如何為linux釋放快取

在linux系統下,我們一般不需要去釋放記憶體,因為系統已經將記憶體管理的很好。但是凡事也有例外,有的時候記憶體會被快取占用掉,導致系統使用swap空間影響效能,此時就需要執行釋放記憶體 清理快取 的操作了。linux系統的快取機制是相當先進的,他會針對dentry 用於vfs,加速檔案路徑名到in...