0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Linux釋放內(nèi)存的方法

h1654155282.3538 ? 來源:運維小筆記 ? 作者:運維小筆記 ? 2021-02-21 10:34 ? 次閱讀

一般系統(tǒng)是不會自動釋放內(nèi)存的 關(guān)鍵的配置文件/proc/sys/vm/drop_caches。這個文件中記錄了緩存釋放的參數(shù),默認值為0,也就是不釋放緩存。它的值可以為0~3之間的任意數(shù)字,代表著不同的含義:

0:0是系統(tǒng)默認值,默認情況下表示不釋放內(nèi)存,由操作系統(tǒng)自動管理

1:釋放頁緩存

2:釋放dentries和inodes

3:釋放所有緩存

實操:

所以根據(jù)上面的說明,分別將1,2,3這3個數(shù)字重定向到drop_caches中可以實現(xiàn)內(nèi)存的釋放,一般釋放內(nèi)存都是重定向3到文件中,釋放所有的緩存

那么下面舉個例子,比如這里只釋放頁緩存,首先使用 free -h 查看當前內(nèi)存剩余

當前內(nèi)存剩余570M左右,另外buff/cache是1.3G,根據(jù)上面說的現(xiàn)在真正的剩余內(nèi)存應(yīng)該是1.8G左右,首先寫緩存到文件系統(tǒng):

sync

然后執(zhí)行下面命令釋放內(nèi)存(頁緩存buff/cache):

echo 1 》 /proc/sys/vm/drop_caches

執(zhí)行完之后,再次查看內(nèi)存剩余:

會發(fā)現(xiàn)內(nèi)存被釋放了,可用內(nèi)存確實變?yōu)?.8G左右

到這里內(nèi)存就釋放完了,現(xiàn)在drop_caches中的值為1,如果現(xiàn)在想讓操作系統(tǒng)重新分配內(nèi)存,那么設(shè)置drop_caches的值為0即可:

echo 0 》 /proc/sys/vm/drop_caches

另外需要注意的是,在生產(chǎn)環(huán)境中的服務(wù)器我們不要頻繁的去釋放內(nèi)存,只在必要時候清理內(nèi)存即可,更重要的是我們應(yīng)該從應(yīng)用程序?qū)用嫒?yōu)化內(nèi)存的利用和釋放,經(jīng)常清理內(nèi)存可能只是暫時屏蔽的應(yīng)用程序中的一些bug,所以更重要的是程序的調(diào)優(yōu),其他的交給操作系統(tǒng)來管理
責任編輯人:CC

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11123

    瀏覽量

    207910
  • 內(nèi)存
    +關(guān)注

    關(guān)注

    8

    文章

    2903

    瀏覽量

    73536
收藏 人收藏

    評論

    相關(guān)推薦

    Linux服務(wù)器性能查看方法

    Linux服務(wù)器性能查看是系統(tǒng)管理員和開發(fā)人員在日常工作中經(jīng)常需要進行的任務(wù),以確保系統(tǒng)穩(wěn)定運行并優(yōu)化資源使用。以下將詳細介紹多種Linux服務(wù)器性能查看的方法,這些方法涵蓋了CPU、
    的頭像 發(fā)表于 09-02 11:15 ?247次閱讀

    ESP32CE MQTT斷線重連后內(nèi)存釋放怎么解決?

    idf v5.2.1 開啟mqtt 連接手機wifi 然后關(guān)閉數(shù)據(jù)流量和打開數(shù)據(jù)流量(模擬網(wǎng)絡(luò)超時)esp_get_free_heap_size 獲取到的內(nèi)存越來越小 ,只有wifi重連才會釋放
    發(fā)表于 07-19 07:12

    使用espconn_set_opt設(shè)置了TCP斷開連接后立刻釋放內(nèi)存,好像不生效,怎么解決?

    在使用espconn_set_opt設(shè)置了TCP斷開連接后立刻釋放內(nèi)存,好像不生效。我用的是以下的設(shè)置方法: err=espconn_set_opt(conn,ESPCONN_REUSEADDR
    發(fā)表于 07-10 07:21

    linux下查詢進程占用的內(nèi)存方法有哪些?

    linux下查詢進程占用的內(nèi)存方法
    發(fā)表于 04-08 06:03

    Linux內(nèi)核內(nèi)存管理架構(gòu)解析

    內(nèi)存管理子系統(tǒng)可能是linux內(nèi)核中最為復(fù)雜的一個子系統(tǒng),其支持的功能需求眾多,如頁面映射、頁面分配、頁面回收、頁面交換、冷熱頁面、緊急頁面、頁面碎片管理、頁面緩存、頁面統(tǒng)計等,而且對性能也有很高
    的頭像 發(fā)表于 01-04 09:24 ?554次閱讀
    <b class='flag-5'>Linux</b>內(nèi)核<b class='flag-5'>內(nèi)存</b>管理架構(gòu)解析

    如何在Ubuntu Linux釋放/boot分區(qū)中的空間

    在Ubuntu Linux上,/boot分區(qū)是用于存儲啟動相關(guān)的文件的。隨著時間的推移,這個分區(qū)可能會變滿,導(dǎo)致系統(tǒng)無法安裝新的內(nèi)核和更新。本文將介紹如何釋放/boot分區(qū)中的空間,并提供詳細的步驟。
    的頭像 發(fā)表于 11-28 10:04 ?676次閱讀

    如何發(fā)現(xiàn)內(nèi)存泄漏

    檢測兩個角度介紹在 Linux 環(huán)境進行內(nèi)存泄漏檢測的方法,并重點介紹靜態(tài)分析工具 BEAM、動態(tài)監(jiān)測工具 Valgrind 和 rational purify 的使用方法。相信通過本
    的頭像 發(fā)表于 11-13 15:41 ?485次閱讀

    查看Linux系統(tǒng)內(nèi)存使用情況的幾種方法

    Linux系統(tǒng)中,內(nèi)存監(jiān)控是優(yōu)化系統(tǒng)性能的關(guān)鍵。本文為你介紹12種方法,幫助你全面掌握Linux系統(tǒng)的內(nèi)存使用情況。這些
    的頭像 發(fā)表于 11-13 09:30 ?9868次閱讀
    查看<b class='flag-5'>Linux</b>系統(tǒng)<b class='flag-5'>內(nèi)存</b>使用情況的幾種<b class='flag-5'>方法</b>

    常用的解決內(nèi)存錯誤的方法

    :同一塊內(nèi)存釋放兩次 ? use after free:內(nèi)存釋放后使用 ? wild free:釋放內(nèi)存
    的頭像 發(fā)表于 11-10 15:29 ?1294次閱讀
    常用的解決<b class='flag-5'>內(nèi)存</b>錯誤的<b class='flag-5'>方法</b>

    Linux 內(nèi)存管理總結(jié)

    一、Linux內(nèi)存管理概述 Linux內(nèi)存管理是指對系統(tǒng)內(nèi)存的分配、釋放、映射、管理、交換、壓縮
    的頭像 發(fā)表于 11-10 14:58 ?431次閱讀
    <b class='flag-5'>Linux</b> <b class='flag-5'>內(nèi)存</b>管理總結(jié)

    內(nèi)存釋放free步驟

    內(nèi)存釋放free Public_fREe() void public_fREe (Void_t* mem) { mstate ar_ptr; mchunkptr p; /* chunk
    的頭像 發(fā)表于 11-09 11:31 ?680次閱讀

    嵌入式系統(tǒng)動態(tài)內(nèi)存的使用技巧

    一種比較好的方法是建立日志塊,即每次分配內(nèi)存時記錄該內(nèi)存塊的指針和大小,釋放時再去除該日志塊,如果有內(nèi)存泄露就會有對應(yīng)的日志塊記錄這些
    發(fā)表于 10-12 15:22 ?262次閱讀

    freertos怎么釋放任務(wù)的內(nèi)存空間?

    freertos怎么釋放任務(wù)的內(nèi)存空間
    發(fā)表于 10-12 07:20

    什么是內(nèi)存碎片Linux

    什么是內(nèi)存碎片? 內(nèi)存碎片在Linux很早的時候就已經(jīng)出現(xiàn)了,了解早期內(nèi)存碎片產(chǎn)生的歷史,有利于我們對它的理解。 假設(shè)現(xiàn)在有一塊32MB大小的內(nèi)存
    的頭像 發(fā)表于 10-08 10:12 ?609次閱讀
    什么是<b class='flag-5'>內(nèi)存</b>碎片<b class='flag-5'>Linux</b>

    Linux驅(qū)動模塊.ko內(nèi)存精簡優(yōu)化過程

    Linux 驅(qū)動模塊可以獨立的編譯成 .ko 文件,雖然大小一般只有幾 MB,但對總內(nèi)存只有幾十 MB 的小型 Linux 系統(tǒng)來說,常常也是一個非常值得優(yōu)化的點。本文以一個實際例子,詳細描述 .ko
    發(fā)表于 09-25 09:23 ?1136次閱讀