linux虚拟内存当硬盘,linux里面虚拟内存和swap有什么不同?
為了提高磁盤存取效率, Linux做了一些精心的設(shè)計(jì), 除了對dentry進(jìn)行緩存(用于VFS,加速文件路徑名到inode的轉(zhuǎn)換), 還采取了兩種主要Cache方式:Buffer Cache和Page Cache.前者針對磁盤塊的讀寫,后者針對文件inode的讀寫.這些Cache有效縮短了I/O系統(tǒng)調(diào)用(比如 read,write,getdents)的時間.
內(nèi)存活動基本上可以用3個數(shù)字來量化:活動虛擬內(nèi)存總量,交換(swapping)率和調(diào)頁(paging)率.其中第一個數(shù)字表明內(nèi)存的總需求量,后兩個數(shù)字表示那些內(nèi)存中有多少比例正處在使用之中.目標(biāo)是減少內(nèi)存活動或增加內(nèi)存量,直到調(diào)頁率保持在一個可以接受的水平上為止.
活動虛擬內(nèi)存的總量(VM)=實(shí)際內(nèi)存大小(size of real memory)(物理內(nèi)存)+使用的交換空間大小(amount of swap space used)
當(dāng)程序運(yùn)行需要的內(nèi)存大于物理內(nèi)存時,Linux系統(tǒng)采用了調(diào)頁機(jī)制,即系統(tǒng)copy一些內(nèi)存中的頁面到磁盤上,騰出來空間供進(jìn)程使用。
大多數(shù)系統(tǒng)可以忍受偶爾的調(diào)頁,但是頻繁的調(diào)頁會使系統(tǒng)性能急劇下降。
Linux內(nèi)存管理:Linux系統(tǒng)通過2種方法進(jìn)行內(nèi)存管理,“調(diào)頁算法”,“交換技術(shù)”。
調(diào)頁算法是將內(nèi)存中最近不常使用的頁面換到磁盤上,把常使用的頁面(活動頁面)保留在內(nèi)存中供進(jìn)程使用。
交換技術(shù)是系統(tǒng)將整個進(jìn)程,而不是部分頁面,全部換到磁盤上。正常情況下,系統(tǒng)會發(fā)生一些交換過程。
當(dāng)內(nèi)存嚴(yán)重不足時,系統(tǒng)會頻繁使用調(diào)頁和交換,這增加了磁盤I/O的負(fù)載。進(jìn)一步降低了系統(tǒng)對作業(yè)的執(zhí)行速度,即系統(tǒng)I/O資源問題又會影響到內(nèi)存資源的分配。
Linux的虛擬內(nèi)存是一個十分復(fù)雜的子系統(tǒng),它實(shí)現(xiàn)了進(jìn)程間代碼與數(shù)據(jù)共享機(jī)制的透明性,并能夠分配比系統(tǒng)現(xiàn)有物理內(nèi)存更多的內(nèi)存,某些操作系統(tǒng)的虛存甚至能通過提供緩存功能影響到文件系統(tǒng)的性能,各種風(fēng)格的Linux的虛存的實(shí)現(xiàn)方式區(qū)別很大,但都離不開下面的4個概念。
1:實(shí)際內(nèi)存
實(shí)際內(nèi)存是指一個系統(tǒng)中實(shí)際存在的物理內(nèi)存,稱為RAM。實(shí)際內(nèi)存是存儲臨時數(shù)據(jù)最快最有效的方式,因此必須盡可能地分配給應(yīng)用程序,現(xiàn)在的RAM的形式有多種:SIMM、DIMM、Rambus、DDR等,很多RAM都可以使用糾錯機(jī)制(ECC)。
2:交換空間
交換空間是專門用于臨時存儲內(nèi)存的一塊磁盤空間,通常在頁面調(diào)度和交換進(jìn)程數(shù)據(jù)時使用,通常推薦交換空間的大小應(yīng)該是物理內(nèi)存的二到四倍。
3:頁面調(diào)度
頁面調(diào)度是指從磁盤向內(nèi)存?zhèn)鬏敂?shù)據(jù),以及相反的過程,這個過程之所以被稱為頁面調(diào)度,是因?yàn)長inux內(nèi)存被平均劃分成大小相等的頁面;通常頁面大小為 4KB和8KB(在Solaris中可以用pagesize命令查看)。當(dāng)可執(zhí)行程序開始運(yùn)行時,它的映象會一頁一頁地從磁盤中換入,與此類似,當(dāng)某些內(nèi)存在一段時間內(nèi)空閑,就可以把它們換出到交換空間中,這樣就可以把空閑的RAM交給其他需要它的程序使用。
4:交換
頁面調(diào)度通常容易和交換的概念混淆,頁面調(diào)度是指把一個進(jìn)程所占內(nèi)存的空閑部分傳輸?shù)酱疟P上,而交換是指當(dāng)系統(tǒng)中實(shí)際的內(nèi)存已不夠滿足新的分配需求時,把整個進(jìn)程傳輸?shù)酱疟P上,交換活動通常意味著內(nèi)存不足。
vmstat監(jiān)視內(nèi)存性能:該命令用來檢查虛擬內(nèi)存的統(tǒng)計(jì)信息,并可顯示有關(guān)進(jìn)程狀態(tài)、空閑和交換空間、調(diào)頁、磁盤空間、CPU負(fù)載和交換,cache刷新以及中斷等方面的信息。
取消
評論
總結(jié)
以上是生活随笔為你收集整理的linux虚拟内存当硬盘,linux里面虚拟内存和swap有什么不同?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux脚本重命名文件,shell脚本
- 下一篇: linux查看网卡传输,Linux下查看