掃二維碼與項(xiàng)目經(jīng)理溝通
我們在微信上24小時(shí)期待你的聲音
解答本文疑問/技術(shù)咨詢/運(yùn)營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流

物理內(nèi)存就是系統(tǒng)硬件提供的內(nèi)存大小,是真正的內(nèi)存。相對于物理內(nèi)存,在 linux 下還有一個(gè)虛擬內(nèi)存的概念,虛擬內(nèi)存是為了滿足物理內(nèi)存的不足而提出的策略,它是利用磁盤空間虛擬出的一塊邏輯內(nèi)存。用作虛擬內(nèi)存的磁盤空間被稱為
交換空間(又稱
swap 空間)。
作為物理內(nèi)存的擴(kuò)展,Linux 會(huì)在物理內(nèi)存不足時(shí),使用交換分區(qū)的虛擬內(nèi)存,更詳細(xì)地說,就是內(nèi)核會(huì)將暫時(shí)不用的內(nèi)存塊信息寫到交換空間,這樣一來,物理內(nèi)存得到了釋放,這塊內(nèi)存就可以用于其他目的,當(dāng)需要用到原始的內(nèi)容時(shí),這些信息會(huì)被重新從交換空間讀入物理內(nèi)存。
Linux 的內(nèi)存管理采取的是分頁存取機(jī)制,為了保證物理內(nèi)存能得到充分的利用,內(nèi)核會(huì)在適當(dāng)?shù)臅r(shí)候?qū)⑽锢韮?nèi)存中不經(jīng)常使用的數(shù)據(jù)塊自動(dòng)交換到虛擬內(nèi)存中,而將經(jīng)常使用的信息保留到物理內(nèi)存。
要深入了解 Linux 內(nèi)存運(yùn)行機(jī)制,需要知道下面提到的幾個(gè)方面:
有時(shí)我們會(huì)看到這么一個(gè)現(xiàn)象,Linux 物理內(nèi)存還有很多,但是交換空間也使用了很多,其實(shí)這并不奇怪。例如,一個(gè)占用很大內(nèi)存的進(jìn)程運(yùn)行時(shí),需要耗費(fèi)很多內(nèi)存資源,此時(shí)就會(huì)有一些不常用頁面文件被交換到虛擬內(nèi)存中,但后來這個(gè)占用很多內(nèi)存資源的進(jìn)程結(jié)束并釋放了很多內(nèi)存時(shí),剛才被交換出去的頁面文件并不會(huì)自動(dòng)交換進(jìn)物理內(nèi)存(除非有這個(gè)必要),那么此時(shí)系統(tǒng)物理內(nèi)存就會(huì)空閑很多,同時(shí)交換空間也在被使用,就出現(xiàn)了剛才所說的現(xiàn)象了。
最后,交換空間的頁面在使用時(shí)會(huì)首先被交換到物理內(nèi)存,如果此時(shí)沒有足夠的物理內(nèi)存來容納這些頁面,它們又會(huì)被馬上交換出去,如此一來,虛擬內(nèi)存中可能沒有足夠的空間來存儲(chǔ)這些交換頁面,最終會(huì)導(dǎo)致 Linux 出現(xiàn)假死機(jī)、服務(wù)異常等問題。Linux 雖然可以在一段時(shí)間內(nèi)自行恢復(fù),但是恢復(fù)后的系統(tǒng)己經(jīng)基本不可用了。
因此,合理規(guī)劃和設(shè)計(jì) Linux 內(nèi)存的使用是非常重要的,關(guān)于物理內(nèi)存和交換空間的大小設(shè)置問題,取決于實(shí)際所用的硬盤大小,但大致遵循這樣一個(gè)基本原則:

我們在微信上24小時(shí)期待你的聲音
解答本文疑問/技術(shù)咨詢/運(yùn)營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流