UNIX系統交換區的管理(轉)

amyz發表於2007-08-10
UNIX系統交換區的管理(轉)[@more@]

  交換區(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等對交換區進行圖形化介面監控,從而實施更有效的管理。因此係統管理員對交換區概念的充分理解和熟練使用具有很強的現實意義

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752019/viewspace-941427/,如需轉載,請註明出處,否則將追究法律責任。

相關文章