首頁>Club>
4
回覆列表
  • 1 # 博學多才的軍迷作家

    linux記憶體清理caches是對記憶體之外的儲存空間,也就是系統自帶的快取記憶體進行清理的一種功能。

    當linux第一次讀取一個檔案執行時,一份放到一片記憶體中cache起來,另一份放入執行程式的記憶體中,正常執行,當程式執行完,關閉了,cache中的那一分卻沒有釋放,第二次執行的時候,系統先看看在記憶體中是否有一地次執行時存起來的cache中的副本,如果有的話,直接從記憶體中讀取,那樣,速度就快多了。

    說明這種情況的很典型的例子是啟動firefox,由於firefox程式很大,因此第一次讀取執行的時候很慢,尤其在速度不快的機器上,但是當你徹底關閉了firefox,ps看不到一個firefox程序,第二次再啟動的時候就比第一次明顯快很多,這是由於這次系統是直接從cache中讀取的firefox來執行,並不是從磁碟上讀取的。

    再有一個例子:我們頻繁使用的ls命令等基本命令,你執行的時候根本看不到硬碟燈閃,因為這些常用的命令都是再第一次執行後就儲存在cache中的,以後就一直從記憶體中讀出來執行。

    如果cache佔用的記憶體過多了,影響正常執行程式需要的記憶體,那麼會釋放掉一部分cache記憶體,但是總量會保持一個很高的值,所以,linux總是能最大限度的使用記憶體,就算加到16G,32G記憶體,也會隨著不斷的IO操作,記憶體的free值會慢慢減少到只有幾M,想要記憶體不發生這種情況,只有一個辦法:把記憶體加到比硬碟大。

  • 2 # Dufrense987

    當讀寫檔案的時候,Linux核心為了提高讀寫效率與速度,會將檔案在記憶體中進行快取,這部分記憶體就是Cache Memory(快取記憶體)。即使你的程式執行結束後,Cache Memory也不會自動釋放。快取記憶體(Cache Memory)在你需要使用記憶體的時候會自動釋放,所以不必擔心沒有記憶體可用。當然也可以手動釋放:

    echo 1 > /proc/sys/vm/drop_caches

    echo 2 > /proc/sys/vm/drop_caches

    echo 3 > /proc/sys/vm/drop_caches

    注意:生產環境請謹慎操作。

  • 中秋節和大豐收的關聯?
  • 雪中悍刀行宋軼的扮演者?