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