交換區(swap)是存在於高速存儲設備上的一塊區域,是虛擬內存系統重要的組成部分。通過交換區,我們不再局限於有限的物理內存空間,理論上可以無限地擴大虛擬內存系統,從而運行更多的程序,進行更多的業務交易,更充分地發揮硬件資源。交換區采用換入換出技術和存儲器間互相交換進程或數據頁面。根據一定的調度原則,內存中部分不常用的進程或數據頁定期交換到交換區中,以便為需要運行的程序留出更多的可用空間。交換出去的進程或數據頁根據需要時再交換進來,這樣一來就實現了大量並發進程的管理。不適當的交換區設置不僅使換頁守護進程忙於交換頁面進出而消耗時間,而且使進程運行的速度、系統效率都大大降低,很大程度上影響了操作系統的性能。當前,應用程序的日益龐大,運行業務的急劇增加,高性能數據庫如Informix Online Dynamic Server為響應對數據的快速存取而使用的共享內存技術等,都對有限的物理內存空間提出了更高的要求,因此實施對交換區的有效管理具有重要作用。
交換區容量的計算
交換區一般在操作系統初始安裝時要求設定,大多數程序要求最少所需的交換區容量以正常運轉。一般來說,當物理內存不超過256M時,主交換區容量設置為內存的兩倍,超過256M時,則選擇與物理內存的容量相同。操作系統安裝完畢後,隨著應用程序的不斷增加和業務的變化,原有的交換區設置可能滿足不了需要,對系統的性能也產生影響,系統管理員可增加新的交換區作為輔助交換區與主交換區配套使用。管理員還應經常監視交換區的使用情況,根據需要及時作出必要的調整。
交換區的類型
交換區分主要分以下四種類型:
1.設備交換
即使用連續物理空間的整個磁盤或部分磁盤區域作為交換區,這樣速度比較快。在HP-UX中使用先進的邏輯卷技術實現對物理磁盤的動態可伸縮管理,因此管理員可使用一個或多個邏輯卷作為設備交換,而在SCO OpenServer中,則使用占據一定磁盤空間區域的塊設備作為設備交換。
2.文件系統交換
文件系統交換是一種輔交換,僅在設備交換不敷使用時才被考慮以滿足換頁需求,特點是配置簡單方便並可動態設置。因為文件系統交換只使用它需要的部分文件系統,所以使用空間的大小是變化的,同時該文件系統中還有許多應用程序和數據需要頻繁存取,因而很大程度上降低了系統運行的效率。管理員可將文件系統交換限制在一個固定的范圍內以防止它占用不必要的空間,並且最好建立在較少使用的文件系統上。
對UNIX系統而言,當啟動文件系統交換時,將在文件系統的根目錄下創建\"/paging\"目錄,文件系統為被使用的每一個交換塊都創建一個文件,交換塊默認為2MB。
3.主交換
系統啟動時至少需要一個設備交換可用,這就是主交換區域,默認與root文件系統共存於同一個磁盤中。
4.輔交換
指主交換之外的其他交換。文件系統交換總是輔交換,如果使用設備交換作為輔交換,盡量設定在非root文件系統盤上以獲得更好的性能。輔交換可以在UNIX啟動時自動啟用或在系統運行時動態增加。
交換區動態設置
現實情況中我們經常遇到因操作系統安裝時交換區配置不當而無法滿足隨後日益增長的應用需要,重新安裝操作系統不僅費時,還會造成一定程度的業務風險,所以並不可取。大多數UNIX系統都提供了通過命令行實現交換區動態設置的方法,管理員應熟知了解。HP-UX中使用的命令是swapon,SCO OpenServer中使用的命令是swap。以下舉例說明:
1.對於HP-UX10.20/11.00:
# swapon -p 1 -f /dev/vg05/lvol7(啟用一個邏輯卷作為設備交換區使用,-p設置了該交換區的優先權, -f表示強制覆蓋原有文件系統結構)
# swapon -f /dev/dsk/c1t6d0(啟用整塊磁盤作為設備交換區使用)
# swapon -p 4 -l 50M /fs1 (在文件系統/fs1上建立交換區,該交換區的優先權為4,最多使用50M的空間)
2.對於SCO OpenServer 3.X/5.X:
# swap -a /dev/swap1(啟用一個邏輯設備作為設備交換區使用,命名為swap1)
# swap -a /dev/dsk/1s0(啟用整塊物理盤作為設備交換區使用)
# swap -a /dev/dsk/1s1 100 100000(啟用物理盤的一塊區域作為設備交換區使用,100、100000表示偏移值和容量,單位為塊,即512字節,所以實際容量為50M)
# swap -a /tmp/swaptmp 64000(在普通文件/tmp/swaptmp上建立交換區,容量為32M)
監控交換區的使用情況
業務總是處於一定的變化和發展中,因此管理員需要定期監控交換區的使用情況,如果可用容量不足,就要進行合理的增加。在HP-UX系統中,常用swapinfo來監控交換區的使用狀況, 在SCO OpenServer中則使用swap命令,它們均可顯示所有的交換區信息。HP-UX更以百分比的形式直觀顯示使用狀況,如果使用比超過80%,管理員要及時分析原因,制定策略,謹慎調整,確保所有用戶均可正常使用他們的應用程序,也使整個系統處於良好的運行狀態。
交換區的優先權設置
在HP-UX中設置交換區時指定數字0-10作為可用的優先權值,默認值是1。數字越小,優先權越高,即優先被操作系統使用。如果設備交換與文件系統交換的優先權相同,設備交換先於文件系統交換使用。建議對所有的設備交換都設置相同的優先權,這樣可以並行處理多個交換請求。因為減少了磁頭的來回移動,系統性能得以迅速提高。
選用交換區的指導方針
1.對於設備交換
(1)盡量在多個磁盤上建立多個交換區。實踐表明,兩個在不同磁盤上的交換區從性能上要優於一個同樣大小空間的交換區在一個磁盤上。處於同樣考慮,不要在一個磁盤上建立多個交換區段。
(2)分布在多個磁盤上的多個交換區要置於相同的優先權,從而實現以交叉存取的方式並列使用。
(3)為獲取最佳性能,應在多個磁盤上建立多個相同大小的設備交換區,否則當所有其他較小的交換區的空間被用完時,大的交換區就是唯一可以使用的,無法進行交叉存取。
(4)交換區盡量建立在運轉速度快的磁盤上。在一定程度物理內存大於操作系統可管理的有效內存的情況下,選擇物理內存的一部分區域作為設備交換是一個相當好的選擇。
2.對於文件系統交換
(1)除非無法使用設備交換,否則最好不要使用文件系統交換。
(2)將文件系統交換設置在不經常使用的文件系統上。
(3)不要在同一個物理磁盤上建立兩個文件系統交換,這樣一來會導致磁頭的過量移動,妨礙系統性能。
(4)啟用文件系統交換時,也應設置多個,分布在不同的磁盤上,賦予相同的優先級以實現交叉存取。
結束語
實踐證明,良好的交換區配置不僅使應用程序執行的數目更多,計算機硬件的性能和效率也得到了充分的發揮。尤其對於目前國內無論是大型數據中心還是企業內部應用,硬件配置相當高如小型機及高檔PC服務器,但因交換區設置不合理導致硬件資源使用不均衡、應用效果差,從而制約業務的提升尤其有實用價值。UNIX系統交換區的應用原理目前已廣泛采納到了Win9X、WinNT、Win2000等十分流行的桌面系統中,盡管它們采用的是文件系統交換,但UNIX系統大部分的交換區應用原則同樣適用。我們可以通過WinNT、Win2000內置的任務管理器或運行在Win9X上的第三方工具軟件如TechFacts等對交換區進行圖形化界面監控,從而實施更有效的管理。因此系統管理員對交換區概念的充分理解和熟練.