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