我的內(nèi)存都去哪里了?

在疫情期間,小編不得不待在家中遠(yuǎn)程辦公。但變的是辦公方式,不變的是美創(chuàng)運(yùn)維的7*24小時(shí)不間斷支持。

這不,一位客戶發(fā)來(lái)了一條消息:

客戶:張工,好像我這個(gè)數(shù)據(jù)庫(kù)服務(wù)器的內(nèi)存使用率有點(diǎn)高啊,你幫我看看?

隨即發(fā)了個(gè)linux環(huán)境下的free -g的截圖過(guò)來(lái):

小編一看,按照這個(gè)截圖的顯示,的確在總共62Gb的內(nèi)存里,可使用內(nèi)存只剩1Gb了。但是,我們也可以觀察到,cached顯示的是55Gb,我們?cè)佾@取了一下top命令的截圖:

那為什么cached的內(nèi)存使用這么大呢?這樣的內(nèi)存使用情況是正常的嗎?

要回答這些問(wèn)題,我們需要了解一下buffer與cache的含義。buffer 和 cache 是兩個(gè)在計(jì)算機(jī)技術(shù)中被用濫的名詞,放在不同語(yǔ)境下會(huì)有不同的意義。我們這里都將其放在linux內(nèi)存這個(gè)語(yǔ)境中解釋。

什么是buffer

在 Linux 的內(nèi)存管理中,這里的buffer 指 Linux 內(nèi)存的:Buffer cache,中文可以解釋為:緩沖區(qū)緩存。Buffer cache 主要是設(shè)計(jì)用來(lái)在系統(tǒng)對(duì)塊設(shè)備進(jìn)行讀寫(xiě)的時(shí)候,對(duì)塊進(jìn)行數(shù)據(jù)緩存的系統(tǒng)來(lái)使用。

什么是cache

在Linux的內(nèi)存管理中,這里的 cache 指 Linux 內(nèi)存中的:Page cache,中文可以解釋為:頁(yè)面緩存。主要用來(lái)作為文件系統(tǒng)上的文件數(shù)據(jù)的緩存來(lái)用,尤其是針對(duì)當(dāng)進(jìn)程對(duì)文件有 read/write 操作的時(shí)候。在當(dāng)前的系統(tǒng)實(shí)現(xiàn)里, page cache 也被作為其它文件類(lèi)型的緩存設(shè)備來(lái)用,所以事實(shí)上 page cache 也負(fù)責(zé)了大部分的塊設(shè)備文件的緩存工作。

自動(dòng)回收 cache機(jī)制

Linux 內(nèi)核會(huì)在內(nèi)存將要耗盡的時(shí)候,觸發(fā)內(nèi)存回收的工作,以便釋放出內(nèi)存給急需內(nèi)存的進(jìn)程使用。一般情況下,在內(nèi)存壓力較大的情況下, buffer/cache 空間可以被釋放,以作為 free 空間分給相關(guān)進(jìn)程使用。

但是由于要回收緩存必須保證 cache 中的數(shù)據(jù)跟對(duì)應(yīng)文件中的數(shù)據(jù)一致,才能對(duì) cache 進(jìn)行釋放。所以在回收緩存時(shí)一般會(huì)造成IO使用較高的現(xiàn)象。因?yàn)閮?nèi)核要對(duì)比 cache 中的數(shù)據(jù)和對(duì)應(yīng)硬盤(pán)文件上的數(shù)據(jù)是否一致,如果不一致需要寫(xiě)回,之后才能回收。

所以一般情況下不需要特意去釋放已經(jīng)使用的cache。這些cache起來(lái)的內(nèi)容本來(lái)就是為了增加文件以及的讀寫(xiě)速度。

人工觸發(fā)回收cache

除了系統(tǒng)自己觸發(fā)回收緩存機(jī)制外,我們也可以通過(guò)下面這個(gè)腳本來(lái)清理緩存:

1. 查看目前內(nèi)存使用:

2. 執(zhí)行sync同步數(shù)據(jù),防止數(shù)據(jù)或操作丟失(重要),將未寫(xiě)的系統(tǒng)緩沖區(qū)寫(xiě)到磁盤(pán)中。包含已修改的 i-node、已延遲的塊 I/O 和讀寫(xiě)映射文件

12下一頁(yè)>

(免責(zé)聲明:本網(wǎng)站內(nèi)容主要來(lái)自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準(zhǔn)確性及可靠性,但不保證有關(guān)資料的準(zhǔn)確性及可靠性,讀者在使用前請(qǐng)進(jìn)一步核實(shí),并對(duì)任何自主決定的行為負(fù)責(zé)。本網(wǎng)站對(duì)有關(guān)資料所引致的錯(cuò)誤、不確或遺漏,概不負(fù)任何法律責(zé)任。
任何單位或個(gè)人認(rèn)為本網(wǎng)站中的網(wǎng)頁(yè)或鏈接內(nèi)容可能涉嫌侵犯其知識(shí)產(chǎn)權(quán)或存在不實(shí)內(nèi)容時(shí),應(yīng)及時(shí)向本網(wǎng)站提出書(shū)面權(quán)利通知或不實(shí)情況說(shuō)明,并提供身份證明、權(quán)屬證明及詳細(xì)侵權(quán)或不實(shí)情況證明。本網(wǎng)站在收到上述法律文件后,將會(huì)依法盡快聯(lián)系相關(guān)文章源頭核實(shí),溝通刪除相關(guān)內(nèi)容或斷開(kāi)相關(guān)鏈接。 )

贊助商
2020-08-19
我的內(nèi)存都去哪里了?
在疫情期間,小編不得不待在家中遠(yuǎn)程辦公。但變的是辦公方式,不變的是美創(chuàng)運(yùn)維的7*24小時(shí)不間斷支持。

長(zhǎng)按掃碼 閱讀全文