SA299學習筆記 第四章 管理交換配置(1)
管理交換配置
基本內容:
1、描述虛擬記憶體
2、配置交換空間
幾個基本概念:
虛擬記憶體 現代作業系統都實現了“虛擬記憶體”這一技術,不但在功能上突破了實體記憶體的限制,使程式可以操縱大於實際實體記憶體的空間,更重要的是,“虛擬記憶體”是隔離每個程式的安全保護網,使每個程式都不受其它程式的干擾。 Swap空間的作用 Swap空間的作用可簡單描述為:當系統的實體記憶體不夠用的時候,就需要將實體記憶體中的一部分空間釋放出來,以供當前執行的程式使用。那些被釋放的空間可能來自一些很長時間沒有什麼操作的程式,這些被釋放的空間被臨時儲存到Swap空間中,等到那些程式要執行時,再從Swap中恢復儲存的資料到記憶體中。這樣,系統總是在實體記憶體不夠時,才進行Swap交換。 需要說明一點,並不是所有從實體記憶體中交換出來的資料都會被放到Swap中(如果這樣的話,Swap就會不堪重負),有相當一部分資料被直接交換到檔案系統。例如,有的程式會開啟一些檔案,對檔案進行讀寫(其實每個程式都至少要開啟一個檔案,那就是執行程式本身),當需要將這些程式的記憶體空間交換出去時,就沒有必要將檔案部分的資料放到Swap空間中了,而可以直接將其放到檔案裡去。如果是讀檔案操作,那麼記憶體資料被直接釋放,不需要交換出來,因為下次需要時,可直接從檔案系統恢復;如果是寫檔案,只需要將變化的資料儲存到檔案中,以便恢復。但是那些用malloc和new函式生成的物件的資料則不同,它們需要Swap空間,因為它們在檔案系統中沒有相應的“儲備”檔案,因此被稱作“匿名”(Anonymous)記憶體資料。這類資料還包括堆疊中的一些狀態和變數資料等。所以說,Swap空間是“匿名”資料的交換空間。 什麼是匿名記憶體頁 使用者空間中未被對映到檔案中的頁都是匿名頁。堆和棧就是匿名頁。匿名頁最顯著的特點是能被交換到swap中.一般的來說就是程式中的私有資料或者堆疊資訊,這個都不能備對映到任何的檔案系統中。 Conversely, a page is said to be anonymous if it belongs to an anonymous memory region of a process (for instance, all pages in the User Mode heap or stack of a process are anonymous). In order to reclaim the page frame, the kernel must save the page contents in a dedicated disk partition or disk file called "swap area" (see the later section "Swapping"); therefore, all anonymous pages are swappable. Swap配置對效能的影響 分配太多的Swap空間會浪費磁碟空間,而Swap空間太少,則系統會發生錯誤。 如果系統的實體記憶體用光了,系統就會跑得很慢,但仍能執行;如果Swap空間用光了,那麼系統就會發生錯誤。例如,Web伺服器能根據不同的請求數量衍生出多個服務程式(或執行緒),如果Swap空間用完,則服務程式無法啟動,通常會出現“application is out of memory”的錯誤,嚴重時會造成服務程式的死鎖。因此Swap空間的分配是很重要的。 通常情況下,Swap空間應大於或等於實體記憶體的大小,最小不應小於64M,通常Swap空間的大小應是實體記憶體的2-2.5倍。但根據不同的應用,應有不同的配置:如果是小的桌面系統,則只需要較小的Swap空間,而大的伺服器系統則視情況不同需要不同大小的Swap空間。特別是資料庫伺服器和Web伺服器,隨著訪問量的增加,對Swap空間的要求也會增加,具體配置參見各伺服器產品的說明。 另外,Swap分割槽的數量對效能也有很大的影響。因為Swap交換的操作是磁碟IO的操作,如果有多個Swap交換區,Swap空間的分配會以輪流的方式操作於所有的Swap,這樣會大大均衡IO的負載,加快Swap交換的速度。如果只有一個交換區,所有的交換操作會使交換區變得很忙,使系統大多數時間處於等待狀態,效率很低。用效能監視工具就會發現,此時的CPU並不很忙,而系統卻慢。這說明,瓶頸在IO上,依靠提高CPU的速度是解決不了問題的。 系統效能監視 |
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/222350/viewspace-925956/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SA299學習筆記 第四章 管理交換配置(2)筆記
- SA299學習筆記 第四章 管理交換配置(3)筆記
- SA299學習筆記 第四章 管理交換配置(4)筆記
- SA299學習筆記 第六章 配置NFS(1)筆記NFS
- SA299學習筆記 第一章 描述介面配置(1)筆記
- [ITIL學習筆記]之配置管理(1)薦筆記
- SA299學習筆記 第五章 管理crash dumps 和core files(1)筆記
- SA299學習筆記 第六章 配置NFS(2)筆記NFS
- SA299學習筆記 第六章 配置NFS(3)筆記NFS
- SA299學習筆記 第六章 配置NFS(4)筆記NFS
- SA299學習筆記 第六章 配置NFS(5)筆記NFS
- SA299學習筆記 第六章 配置NFS(6)筆記NFS
- SA299學習筆記 第二章描述CS模式(1)筆記模式
- Golang學習筆記(1):包管理Golang筆記
- SA299學習筆記 第一章 描述介面配置(2)筆記
- SA299學習筆記 第一章 描述介面配置(3)筆記
- SA299學習筆記 第一章 描述介面配置(4)筆記
- nginx學習筆記(1):配置項的解析Nginx筆記
- Maven 學習筆記——Maven環境配置(1)Maven筆記
- 學習筆記1筆記
- 學習筆記-1筆記
- GoldenGate學習筆記(4)_程式配置與管理Go筆記
- SA299學習筆記 第五章 管理crash dumps 和core files(2)筆記
- SA299學習筆記 第五章 管理crash dumps 和core files(3)筆記
- SA299學習筆記 第五章 管理crash dumps 和core files(4)筆記
- Spring Boot 學習筆記(4):配置properties(1)Spring Boot筆記
- 【OCP學習筆記】配置網路環境 -- 1筆記
- 磁碟管理--學習筆記筆記
- swift學習筆記《1》Swift筆記
- Vue學習筆記1Vue筆記
- Numpy學習筆記 1筆記
- HTML學習筆記1HTML筆記
- flex:1學習筆記Flex筆記
- Numpy學習筆記(1)筆記
- SLAM學習筆記(1)SLAM筆記
- Oracle學習筆記1Oracle筆記
- mysql學習筆記-1MySql筆記
- Zynq學習筆記(1)筆記