熟悉計算機的小夥伴都知道,我們常說的主機三大件分別是主機板,cpu,記憶體,可見內存在計算機主機中的角色也非同一般,喜歡 diy 主機的小夥伴對這三大件的了解更是精益求精。
編寫過程式的小夥伴對於程式的執行過程,也是耳熟能詳了,先從硬碟載入到記憶體,然後 cpu 與記憶體進行資料交換與處理,完成相應的操作(真實執行細節相當複雜),從而實現相應的功能。
但是記憶體的容量非常有限,由於記憶體的造價較高(目前常用的記憶體為雙倍速 sdram ),計算機使用者公升級記憶體容量也是一筆不小的開支。
那麼良許就和大家來討論下計算機的記憶體如果不夠用了, 虛擬記憶體技術的應用,虛擬記憶體的出現,讓機器記憶體不夠的情況得到部分解決,大家需要注意的是有些資料也將虛擬記憶體稱之為交換記憶體。
1. 討論虛擬記憶體前的熱身
我們需要知道的是計算機對記憶體分為物理記憶體與虛擬記憶體(注意虛擬記憶體和虛擬位址空間的區別)。物理記憶體就是計算機的實際記憶體大小,由 ram 晶元組成的。虛擬記憶體則是虛擬出來的、使用磁碟代替記憶體。
2. 虛擬記憶體的工作原理
正如前面所描述的,當系統的物理記憶體不夠用的時候,就需要將物理記憶體中的一部分空間釋放出來,以供當前執行的程式使用。
那些被釋放的空間可能來自一些很長時間沒有什麼操作的程式,這些被釋放的空間被臨時儲存到交換空間中,等到那些程式要執行時,再從交換空間中恢復儲存的資料到記憶體中。
3. linux 虛擬記憶體的實現方式
linux 系統實現虛擬記憶體有兩種方法,分別是交換分割槽(swap分割槽)和交換檔案。
交換分割槽
交換分割槽其實就是新建乙個分割槽,然後將該分割槽掛載作為交換空間,方法步驟與傳統的新建分割槽一樣。只不過格式化分割槽和掛載分割槽分別採用mkswap和swapon命令。
交換檔案
硬碟驅動器中沒有足夠的空間來建立交換分割槽,我們就會手動建立乙個交換檔案以將 ram 的非活動內容交換到其中。
4. 理想的交換權重
linux 允許我們自行設定交換的權重,也就是說我們可以設定交換過程發生的頻率。小夥伴們可以根據需要在0到100之間設定交換的權重。值越小則代表會讓核心盡量少用交換,值越大會使核心更多的去使用交換空間。
5.使用虛擬記憶體的好處
6. 結論
在本文中,我們學習了交換記憶體以及它的許多好處,ram 空間不足時,它將作為 ram 的擴充進行使用,避免我們的應用程式因記憶體不足而崩潰。
其實,swap的調整對 linux 伺服器,特別是 web 伺服器的效能至關重要。通過調整swap,有時可以越過系統效能瓶頸,節省系統公升級費用。
→ 精選技術資料共享
→ 高手如雲交流社群
m 」獲取!
推薦閱讀:
到底是什麼讓it人如此苦逼???
no code革命為什麼現在爆發?
ubuntu使用者都應該了解的快捷鍵
Linux (ubuntu)設定虛擬記憶體
swap空間就是虛擬記憶體,在物理記憶體不足時,有較大的用處。檢視記憶體空間大小 free m m表示顯示的位元組單位是m megabytes 下面我們就來增加系統的 swap 大小。1.首先用命令free檢視系統內 swap 分割槽大小。free m total used free shared ...
Linux 設定虛擬記憶體
很多人的linux是安裝在虛擬機器上,或者執行在一些嵌入式裝置上,沒有足夠的物理記憶體,如果在執行一些消耗記憶體的任務,比如編譯軟體,可能會造成系統崩潰,解決方法就是設定虛擬記憶體。這裡採用設定交換檔案的方法,執行以下命令 cd var sudo swapoff var swapfile sudo ...
什麼是虛擬記憶體?伺服器虛擬記憶體怎麼設定最好?
一 什麼是虛擬記憶體?虛擬 記憶體有什麼用處 作業系統中所執行所有的程式全部都是經過記憶體提交給cpu然後才執行的,不過若是執行的程式占用記憶體很多或很大 則會導致記憶體消耗殆盡 為解決內在消耗殆盡的問題 windows作業系統運用了虛擬記憶體技術 簡單的說就是把一部分硬碟空間充當記憶體使用,雖然硬...