aix_2
===========================================
AIX 5L V5.3 中的儲存管理
Shiv Dutta, 技術顧問, IBM
2005 年 4 月 14 日
2006 年 12 月 14 日 更新
AIX 5L? Version 5.3 整合了大量的特性,這使得它比以前的作業系統釋出版具有更強大的功能。IBM? 顧問 Shiv Dutta 關注於 AIX 5L Version 5.3 中的一些特性,這些特性增強了邏輯卷管理器 (LVM) 和 Enhanced Journal File System (JFS2) 的範圍、功能和效能。
引言
本文是對 2006 年 6 月釋出的“AIX 5L V5.3 中的儲存管理”這篇文章的更新。其中簡要介紹了邏輯卷管理器 (LVM) 的範圍、功能和效能,以及 Enhanced Journal Filesystem (JFS2) 的某些特性,Enhanced Journal Filesystem (JFS2) 在 5300-05 Technology Level (TL)(2006 年 8 月釋出)的 AIX 5L? 中可用。在下面的討論中,將對僅在 5300-05 TL 中可用的特性加以區分。
LVM 命令增強
在 AIX 5L Version 5.3 中,對下列的 LVM 命令進行了改進以增強它們的效能,比如與以前的 AIX? 發行版中的對應命令相比,它們需要的執行時間更短:
extendvg
importvg
mkvg
varyonvg
chlvcopy
mklvcopy
lslv
lspv
併發模式(經典的和增強的)
經典併發模式卷組 (Volumn Group, VG) 僅支援序列 DASD 和 SSA 磁碟以及 32 位核心。透過引入了所謂的增強併發模式 VG,AIX 5L Version 5.1 克服了所支援的磁碟型別的限制,增強併發模式對併發模式進行了擴充套件以支援所有其他的磁碟型別。儘管 AIX 5L Version 5.2 不允許建立經典併發模式 VG,但是的確提供了對它們的支援。而在 AIX 5L Version 5.3 中則徹底地刪除了對經典併發模式 VG 的支援。如果在 AIX 5L Version 5.3 中試圖匯入經典併發模式 VG,那麼將產生一個錯誤訊息以通知使用者將該 VG 轉換為增強併發模式。
VG(常規、大容量和可擴充套件)
通常稱為標準的或常規的 VG 型別,支援最多 32 個物理卷 (PV)。一個標準的或常規的 VG 是指每個 PV 不超過 1016 個物理分割槽 (PP),並且每個 VG 的邏輯卷的上限為 256。隨後引入了一種新的 VG 型別,即大容量 VG。一個大容量 VG 支援多達 128 個 PV 和最多 512 個 LV。
AIX 5L Version 5.3 引入了一種稱為可擴充套件的卷組(可擴充套件 VG)的新的 VG 型別。一個可擴充套件 VG 支援最多 1024 個 PV 和 4096 個 LV。PP 的最大數目適用於整個 VG,而不再根據每個磁碟對其進行定義。這使得我們能夠透過較大數量的 PP,以較少數量的磁碟和細粒度的儲存分配選項來配置 VG,其中這些 PP 的容量很小。可擴充套件 VG 可以容納多達 2,097,152 (2048 K) 個 PP。與舊的 VG 型別一樣,其大小使用兆位元組為單位,並且大小變數必須等於 2 的整數冪。PP 的大小範圍從 1 (1 MB) 開始,最大為 131,072 (128 GB)。這要比 AIX 5L Version 5.2 中的常規和大容量 VG 型別的最大值 1024 (1 GB) 大兩個數量級。新的最大 PP 大小提供了支援 256 PB 個磁碟的體系結構。
下面的表 1 介紹了不同 VG 型別的配置限制的差異。請注意,使用者可定義 LV 的最大數目等於每個 VG 的 LV 最大數目減 1,因為將保留一個 LV 給系統使用。因此,系統管理員可以在常規 VG、大容量 VG 和可擴充套件 VG 中分別配置 255、511 和 4095 個 LV。
表 1. VG 的配置限制
VG 型別 PV 最大數目 LV 最大數目 每個 VG 的 PP 最大數目 PP 最大容量
常規 VG 32 256 32,512 (1016 * 32) 1 GB
大容量 VG 128 512 130,048 (1016 * 128) 1 GB
可擴充套件 VG 1024 4096 2,097,152 128 GB
AIX 5L Version 5.3 中可擴充套件 VG 的實現,為給定的新 VG 型別的例項可以擁有的 PV 和 LV 數目提供了配置靈活性。該配置選項允許任何可擴充套件 VG 包含 32、64、128、256、512、768 或 1024 個磁碟以及 256、512、1024、2048 或 4096 個 LV。在為將來潛在的增長建立 VG 時,不需要配置 1024 個 PV 和 4096 個 LV 的最大值。通常可以在需要的時候增大初始設定。
System Management Interface Tool (SMIT) 和 Web-based System Manager Graphical User Interface 完全支援這種可擴充套件 VG。對現有的與 VG 管理任務相關的 SMIT 皮膚進行了更改,並且為可擴充套件 VG 型別新增了許多新的皮膚。例如,可以使用新的 SMIT 快速路徑 _mksvg 來直接訪問 Add a Scalable VG SMIT 選單。
對使用者命令 mkvg、chvg 和 lsvg 進行了增強以支援可擴充套件 VG 型別。
針對 LV 的 striped column 支援
AIX 5L Version 5.3 提供了針對 LV 的 striped column 支援。這個新的特性允許 striped column 的擴充套件,即使磁碟陣列中的一個 PV 已滿。在以前的 AIX 發行版中,只要定義磁碟陣列(獨立磁碟的冗餘陣列)的磁碟組中有足夠的 PP,您就可以使用 extendlv 命令來增大 stripe LV 的大小。要擴充套件 stripe LV 以超過磁碟容量所規定的硬限制,唯一的辦法就是重新構建整個 LV。您需要備份並刪除該 striped LV,然後使用更大的 stripe 寬度重新建立 LV,接下來還要對 LV 資料進行相應的還原操作。為了克服這個耗時的過程所帶來的缺點,AIX 5L Version 5.3 為 LV 引入了 striped column 的概念。
在 AIX 5L Version 5.3 以前,在建立 LV 時透過下列兩種方法來確定 stripe LV 的 stripe 寬度:
所有 PV 名稱的直接說明
分配給該 striped LV 的 PV 的最大數目的說明
在 AIX 5L 以前,對 striped LV 的配置不允許超過 stripe 寬度的上限。在 AIX 5L Version 5.3 中,該上限可以為 stripe寬度的倍數。由 stripe寬度確定的一組磁碟,將被看作一個 striped column 。請注意,如果您使用的是 RAID 10 配置,那麼這個上限值與映象副本的數目無關。
如果您使用 extendlv 命令將 stripe LV 擴充套件為超過第一個 striped column 的物理限制,那麼 AIX 使用一整組新的磁碟來實現對附加邏輯分割槽的分配請求。如果您需要進一步擴充套件 LV,那麼可以根據需要新增更多的 striped column ,只要不超過其上限。chlv -u 命令允許您增大這個上限,以便為 striped LV 的擴充套件提供附加的淨空。您還可以使用增強的 extendlv 命令的 -u 標誌,這樣可以在一項操作中同時完成增大上限並擴充套件 LV。
對使用者命令 mklv、chlv、extendlv 和 mklvcopy 進行了增強以支援 AIX 5L Version 5.3 中引入的 striped column 的特性。
卷組 pbuf 池
LVM 使用一個稱為 pbuf 的組成部件來控制掛起的磁碟 I/O。pbuf 是一個固定記憶體緩衝區。通常,LVM 為每個單獨的 I/O 請求使用一個 pbuf,而不管傳輸的資料量有多大。在向 VG 新增新的 PV 時,AIX 建立了額外的 pbuf。在以前的 AIX 發行版中,pbuf 池是一種系統範圍的資源,但是在 AIX 5L Version 5.3 中,LVM 為每個 VG 分配和管理一個 pbuf 池。對於那些具有大量 VG 的系統來說,這種增強可以支援高階的可擴充套件性和效能,並且適用於所有的 VG 型別。因為有了新的 pbuf 池的實現,AIX 可以顯示和管理附加的 LVM 統計資訊和調整引數。
現在,AIX 5L Version 5.3 中包括了 lvmo 命令。它為與新的 pbuf 池相關的管理任務提供了支援。您可以使用 lvmo 命令來顯示 pbuf 和阻塞 I/O 的統計資訊和 pbuf 可調引數的設定,不管該實體的範圍是系統範圍還是 VG 特定的。然而,lvmo 命令只允許更改專門用於特定 VG 的 LVM pbuf 可調引數的設定。ioo 命令繼續管理系統範圍的單獨的 pbuf 可調引數。另外,與以前的 AIX 發行版一樣,vmstat -v 命令仍用於顯示整個系統中由於缺少空閒 pbuf 而阻塞的 I/O 的數目。
可變的邏輯磁軌組
當 LVM 接收到一項 I/O 請求,在將請求傳遞到磁碟的裝置驅動程式之前,它將 I/O 分解為邏輯磁軌組 (LTG) 的大小。LTG 是 LV 的最大傳輸大小,並且對於 VG 中所有的 LV 都是一樣的。AIX 5L Version 5.2 接受 128 KB、256 KB、512 KB 和 1024 KB 的 LTG 值。然而,現在許多磁碟都支援大於 1 MB 的傳輸大小。為了利用更大的傳輸大小並獲得更好的磁碟 I/O 效能,AIX 5L Version 5.3 接受 128 KB、256 KB、512 KB、1 MB、2 MB、4 MB、8 MB 和 16 MB 的 LTG 大小值。
與以前的發行版相比,AIX 5L Version 5.3 還允許 LV 的 stripe大小大於所使用的 LTG 的大小,並且顯著地擴充套件了有效 stripe大小的範圍。Version 5.3 新增了對 2 MB、4 MB、8 MB、16 MB、32 MB、64 MB 和 128 MB 的 stripe大小的支援,以對以前的 AIX 發行版中 4 KB、8 KB、16 KB、32 KB、64 KB、128 KB、256 KB、512 KB 和 1 MB 的 stripe大小選項進行補充。
在 AIX 5L Version 5.2 中,透過 chvg 或 mkvg 命令的 -L 標誌來設定 LTG 大小。在 AIX 5L Version 5.3 中,透過 varyonvg 命令對其進行設定,並且使用 -M 標誌。因此,所建立的 LTG 大小稱為可變 LTG 大小。
下列命令將 tmpvg VG 的 LTG 大小設定為 512 KB: # varyonvg -M512K tmpvg
LTG 大小的單位指定為 K 或 M,分別表示 KB 或 MB。當使用 -M 標誌設定 LTG 大小時,如果磁碟的最大傳輸大小小於該 LTG 大小,那麼 varyonvg 和 extendvg 命令可能會執行失敗。要找出您的磁碟所支援的最大 LTG 大小,可以使用帶 -M 標誌的 lquerypv 命令。其輸出結果給出了以 KB 為單位的 LTG 大小,如下面的示例所示。 # /usr/sbin/lquerypv -M hdisk0
256
lspv 命令將這個相同的值顯示為 MAX REQUEST,如下面的清單 1 所示。
清單 1. lspv 命令
# lspv hdisk0
PHYSICAL VOLUME: hdisk0 VOLUME GROUP: rootvg
PV IDENTIFIER: 000bc6fdbff92812 VG IDENTIFIER 000bc6fd00004c00000000fda469279d
PV STATE: active
STALE PARTITIONS: 0 ALLOCATABLE: yes
PP SIZE: 16 megabyte(s) LOGICAL VOLUMES: 9
TOTAL PPs: 542 (8672 megabytes) VG DESCRIPTORS: 2
FREE PPs: 431 (6896 megabytes) HOT SPARE: no
USED PPs: 111 (1776 megabytes) MAX REQUEST: 256 kilobytes
FREE DISTRIBUTION: 108..76..30..108..109
USED DISTRIBUTION: 01..32..78..00..00
透過 lsvg 命令,可以列舉正在使用的 LTG 的值,如下面的清單 2 所示。
清單 2. lsvg 命令
# lsvg rootvg
VOLUME GROUP: rootvg VG IDENTIFIER:
000bc6fd00004c00000000fda469279d
VG STATE: active PP SIZE: 16 megabyte(s)
VG PERMISSION: read/write TOTAL PPs: 542 (8672 megabytes)
MAX Lvs: 256 FREE PPs: 431 (6896 Megabytes)
LVs: 9 USED PPs: 111 (1776 megabytes)
OPEN LVs: 8 QUORUM: 2
TOTAL PVs: 1 VG DESCRIPTORS: 2
STALE PVs: 0 STALE PPs: 0
ACTIVE PVs: 1 AUTO ON: yes
MAX PPs per VG: 32512
MAX PPs per PV: 1016 MAX PVs: 32
LTG size (Dynamic): 256 kilobyte(s) AUTO SYNC: no
HOT SPARE: no BB POLICY: relocatable
請注意,在 lsvg 命令的輸出結果中,將 AIX 5L Version 5.3 中建立的 VG 的 LTG 大小顯示為 Dynamic,如上面的清單 2 所示。
預設情況下,AIX 5L Version 5.3 將建立具有可變 LTG 大小的 VG。如果您需要將其匯入到以前的 AIX 發行版,您首先需要透過 mkvg 或 chvg 的 -I 選項禁用可變 LTG,然後依次使用 varyoffvg 和 exportvg 命令,否則對以前的發行版執行的 importvg 命令將會失敗。
Geographic Logical Volume Manager (GLVM)
它擴充套件了 LVM 的映象功能並支援使用 TCP/IP 網路連線的遠端 AIX 系統中的邏輯卷。應用程式資料完整的副本可以在遠端系統上快速地、輕鬆地重新聯機。
mirscan 命令
這個命令用來搜尋和修正無效的或無法執行 I/O 操作的物理分割槽。它在下列情況下非常有用:
基礎儲存上的物理分割槽無法執行 I/O 操作,但很長時間內並沒有對該物理分割槽進行 I/O 操作。客戶需要一種監測和修正這種情況的方法。
將要更換一塊磁碟。客戶需要確保不會從系統中刪除最近的有效資料副本。
單根卷組 (root volume group) 上 AIX 的多個例項 (multibos)。
該特性允許使用者在正在執行的 rootvg 中建立一個新的 AIX 基本作業系統 (BOS) 例項。建立於正在執行的 rootvg 上的這個新的例項,包含了私有的和共享的資料。備用磁碟安裝中也提供了類似的特性。儘管有些相似之處,但多個基本作業系統在下列一些非常重要的方面存在著區別:
新的例項構建於正在執行的根卷組(類似於 alt_disk_install 克隆操作)。
新的例項位於當前的根卷組(例如,相同的磁碟)中。
rootvg 中的某些資料可以在例項之間進行共享。
在 2006 年 8 月釋出的 5300-05 Technology Level 中,已對此特性的健壯性和使用者友好性進行了加強。透過指令碼控制增強了設定、自定義和驗證操作。改善了安全硬連線和檔案系統存根許可。
回滾功能(僅對 JFS2 檔案系統可用)
將整個檔案系統恢復到一個有效的指定時間點的快照(目標快照)。回滾操作嘗試恢復目標快照時刻的快照。該目標快照之後進行的快照將丟失。
JFS2 的磁碟配額支援
透過實現磁碟使用配額來控制永久儲存的使用,AIX 5L Version 5.3 擴充套件了 JFS2 的功能。
可以基於每個檔案系統為單獨的使用者和組設定磁碟配額。
版本 5.3 還引入了限制類的概念。它允許對每個檔案系統限制進行配置,提供了刪除舊的或失效的配額記錄的方法,並透過專用的 SMIT 皮膚提供了全面的支援。它還提供了一種方法來定義一組磁碟塊和檔案分配的硬、軟限制,以及軟限制強制實施為硬限制前的過渡期。
同一系統中可以同時使用 JFS2 和 JFS 的配額支援。
縮小檔案系統
AIX 5L Version 5.3 支援動態地縮小 JFS2 檔案系統。當檔案系統的大小減少時,該檔案系統所處的 LV 的大小也會減少。
JFS2 logredo 的可擴充套件性
AIX 5L Version 5.3 在 logredo 方面提供了下列增強,以改進效能並支援大量的檔案系統:
支援卷組中的次要編號大於 512
支援寫時複製和快取式更新,以減少 I/O 活動
支援縮小檔案系統
在 5300-05 Technology Level(2006 年 8 月釋出)中,JFS2 的效能得到了進一步增強。我們的目標是改善處於停頓狀態的檔案系統的重啟時間以及正常的重啟。
訪問時間 (atime) 更新
JFS 非同步提交 atime 更新 updates。在 5300-05 Technology Level(於 2006 年 8 月釋出)之前,JFS2 按照與其他提交相同的方式對待它們。已對 JFS2 進行修改,使其工作方式與 JFS 相同。這減少了對日誌進行 I/O 操作的數量。
JFS2 檔案系統檢查靈活性
AIX 5L Version 5.3 增強了 Helper 的實現,它專門為 JFS2 檔案系統執行檔案系統檢查。新的程式碼更好地利用了系統資源,並且包括了提高可擴充套件性和效能的演算法。
針對 NFS V4 的 JFS2 ACL 支援
從 AIX 5L Version 5.3 開始,Enhanced Journaled File System 支援 NFS version 4 的 ACL。這樣使得您可以為檔案系統物件建立細粒度的訪問控制,並且支援繼承特性。
結束語
AIX 5L Version 5.3 中具有許多本文中尚未介紹的特性。我希望本文已經很好地向您介紹了您將在最新版 AIX 中獲得的某些增強特性。有關這些增強的詳細描述,請訪問參考資料部分中列出的 Web 站點。
=================================================
系統管理員工具包: 交換空間管理和技巧
Martin C Brown (), 自由撰稿人和顧問, MCslp
2006 年 12 月 31 日
配置交換空間(包括在緊急情況下新增空間)以充分利用您的系統。在本文中,您將瞭解如何監視系統以確定有效的交換空間配置資料,並研究將交換空間不只是用作輔助隨機訪問儲存器 (RAM) 的方法。
關於本系列
典型的 UNIX? 管理員擁有一套經常用於輔助管理過程的關鍵實用工具、訣竅和系統。存在各種用於簡化不同過程的關鍵實用工具、命令列鏈和指令碼。其中一些工具來自於作業系統,而大部分的訣竅則來源於長期的經驗積累和減輕系統管理員工作壓力的要求。本系列文章主要專注於最大限度地利用各種 UNIX 環境中可用的工具,包括簡化異構環境中的管理任務的方法。
UNIX 如何使用交換空間
所有 UNIX 作業系統都支援某種虛擬記憶體 (VM) 系統。使用 VM 系統,您有兩個主要區域來儲存有關活動應用程式及其使用的資料的資訊——物理隨機訪問儲存器 (RAM) 和硬碟驅動器上分配的空間。
在具有 VM 的計算機中,可載入到記憶體中的應用程式和資料量可以大於物理 RAM,因為沒有活動地使用的應用程式和資訊被交換 到了磁碟上(交換空間 這個術語由此得名)。
VM 系統的優點在於,物理 RAM 得到了更有效的利用——這是因為它僅包含正在執行的應用程式和正在使用的資料。由於 RAM 比硬碟空間快,您從活動地載入的應用程式中獲得了所需的效能,同時還得益於能夠執行比通常所支援的更多的應用程式。
其結果是您獲得了大得多的可定址記憶體空間(在 32 為系統上為 4GB,在 64 位系統上則更大),從而使得應用程式開發更加容易,同時仍然提供高效能。
設定交換空間值
您在計算機上配置的交換空間量主要取決於應用程式和作業系統。如果交換空間太小,則可能無法執行您希望執行的所有應用程式,而如果交換空間太大,則可能在浪費那些從未使用的磁碟空間。您可能還會間接地使得系統過載,因為與太小的交換空間相比,太大的交換空間會導致糟糕的效能,這是由於與系統執行實際處理所花的時間相比,它在換入和換出頁面上所花的時間更多。
不同的 UNIX 變體以不同的方式使用它們的交換空間。有些變體僅在已經使用完實體記憶體時才使用交換空間。其他變體則對所有非活動的應用程式和未使用的頁面使用交換空間。有些變體保留所有應用程式中的資料副本——同時包括記憶體和交換空間中的應用程式。預設情況下,有些變體避免使用交換空間,並儘可能提供某種機制來允許您調整交換空間的使用方式。許多變體使用這些不同安排的組合來充分利用它們的交換空間。
例如在 Linux? 中,當您使用 2.6 核心時,可以透過設定 /etc/sysctl.conf 中的 vm.swappiness 值來調整系統的 swappiness。較高的值導致交換更多頁面,較低的值導致將更多應用程式保留在記憶體中(即使這些應用程式處於空閒狀態)。
除了這些基礎之外,還有許多關於應該如何配置 VM 和應該分配多少磁碟空間的觀點和規則。下面總結了其中一些方法:
有些管理員認為,您的交換空間決不應該少於物理 RAM。由於其中的 VM 使用方式,這是較舊的 UNIX 版本(尤其是 SunOS)的一個要求。從理論上講,擁有比物理 RAM 更多的 VM 可以使作業系統能夠在系統變得空閒時將所有當前程式換出到磁碟上,並且能夠提高系統的效能,因為可以將新程式直接載入到 RAM 中,而不必預先交換應用程式。
對於開發系統,許多管理員都贊成應該有與 RAM 一樣多的 VM。採用這種方法的原因在於,交換空間還在系統故障期間用作轉儲活動記憶體的位置;然後可以在啟動期間重新載入所儲存的記憶體轉儲,並將其儲存為核心核心檔案。如果所配置的交換空間小於物理 RAM,此類轉儲就無法實現。
在高效能部署環境中,由於您只希望將應用程式活動地保留在記憶體中,並且不需要大量的交換,您可以配置儘可能小的 VM。崩潰恢復不是必需的,而確定物理 RAM 的潛在缺乏(由於交換空間用盡)的能力可以提供警告,使您知道應用程式環境未得到最佳化或者您需要升級 RAM。
對於桌面環境,擁有非常大的 VM 分配可能對您有利,因為它使您能夠執行大量的應用程式(其中許多應用程式可能是空閒的,可以容易地交換,從而使更多 RAM 對活動應用程式可用)。
選擇正確的交換空間量很大程度上取決於您所配置的平臺——其預期用途和您希望如何處理可用 VM 缺乏的情況。
下面是一些保守值:
在桌面系統上,至少分配與物理 RAM 一樣多的交換空間。
在伺服器上,至少分配可用 RAM 的 50% 作為交換空間。一旦頭腦中有了大體數字,您就需要配置交換空間。
配置交換空間
所有 UNIX 系統都有多種型別的交換空間。主交換空間是通常在啟動時配置的交換空間,並且通常是作為作業系統安裝的一部分來設定的。所有 UNIX 系統通常都有一個主交換空間分配。
交換空間的建立和配置方式隨不同的系統而異。在 Linux 下,用於交換的磁碟分割槽是透過分割槽 ID 來標識的,該分割槽必須透過 mkswap 命令來初始化: $ mkswap /dev/sda2
在大多數傳統 UNIX 環境中,您可以使用任何可用分割槽而無需進行任何準備工作。在 HP-UX、AIX? 和 Linux 上,您可以使用 swapon 命令來將分割槽新增到可用的交換空間: $ swapon /dev/sda2
在 Solaris 上,您可以使用 swap 命令來將交換空間新增到系統: $ swap -a /dev/dsk/c0t0d0s2
請注意,以這種方式新增的交換空間在重新啟動後不會保留。若要永久地將交換空間新增到系統,您必須配置啟動配置檔案之一來自動啟用交換空間分配。
新增啟動時交換空間
在大多數 UNIX 變體下,交換空間都是作為核心初始化的一部分在啟動時自動新增的。大多數變體使用檔案系統安裝檔案(/etc/fstab、/etc/vfstab 或 /etc/filesystems)中的行來指定要用作交換空間的分割槽。您可以從 Solaris 的 /etc/vfstab 檔案中看到這樣一個示例(請參見清單 1)。
清單 1. 在 Solaris 中指定要用作交換空間的分割槽
#device device mount FS fsck mount mount
#to mount to fsck point type pass at boot options
#
fd - /dev/fd fd - no -
/proc - /proc proc - no -
/dev/dsk/c0d0s1 - - swap - no -
/dev/dsk/c0d0s0 /dev/rdsk/c0d0s0 / ufs 1 no -
/dev/dsk/c0d0s7 /dev/rdsk/c0d0s7 /export/home ufs 2 yes -
/devices - /devices devfs - no -
ctfs - /system/contract ctfs - no -
objfs - /system/object objfs - no -
swap - /tmp tmpfs - yes -
清單 2 顯示了 Linux 中的 /etc/fstab 檔案示例。
清單 2. 在 Linux 中指定要用作交換空間的分割槽
#
/dev/sda1 /boot ext2 noauto,noatime 1 1
/dev/sda3 / ext3 noatime 0 0
/dev/sda2 none swap sw 0 0
/dev/hda1 /var/lib/mysql ext3 noatime 1 2
/dev/hdb1 /export/data ext3 noatime 1 2
/dev/hde1 /export/home ext3 noatime 1 2
/dev/hde2 /var/tmp ext3 noatime 1 2
/dev/hde3 /usr/portage/distfiles ext3 noatime 1 2
/dev/hde4 /tmp ext3 noatime 1 2
/dev/cdroms/cdrom0 /mnt/cdrom iso9660 noauto,ro 0 0
none /proc proc defaults 0 0
最後,您可以在 AIX 中使用 /etc/swapspaces 檔案來配置交換空間分割槽(請參見清單 3)。
清單 3. 使用 /etc/swappspaces 檔案來配置交換空間分割槽
* This file is modified by the chps, mkps and rmps commands and referenced
* by the lsps and swapon commands.
hd6:
dev = /dev/hd6
paging00:
dev = /dev/paging00
paging01:
dev = /dev/paging01
您應該使用對應的命令或 Smitty 工具來修改該檔案內容,而不要直接編輯該檔案。
若要刪除額外的交換空間,您可以使用對應的 swapoff 或 swap -d 命令來禁用該交換分割槽。然而要注意,您只能禁用當前未使用的交換分割槽,並且不能禁用主交換分割槽。
新增臨時交換容量
有時您可能會用盡已配置的交換空間分割槽,從而在短時間內需要更多 VM,直到您能夠組織某種更永久性的解決方案。如果有某個分割槽可用,您可以按照上面在配置交換分割槽部分中的介紹來準備它。
如果沒有空餘的分割槽可用,您可以建立一個或多個檔案,並將它們臨時新增到可用交換池中。大多數系統甚至允許您在 NFS 安裝的檔案系統上使用交換檔案,當您沒有本地磁碟空間可用時,就可以使用這樣的檔案系統。
若要將檔案用於交換空間,請首先建立一個適當的檔案。mkfile> 命令在這裡最合適,因為它提供了建立大型檔案的簡單方法。您可以在命令列指定檔名和檔案大小: $ mkfile 512m /export/data/swapfile
然後可以像新增分割槽一樣新增該檔案: $ swap -a /export/data/swapfile
or
$ swapon /export/data/swapfile
以這種方式使用的交換檔案通常決不是針對交換空間問題的長期解決方案。您應該儘快為交換空間配置專用分割槽。
監視交換空間使用情況
交換空間及其使用情況的監視包括兩個方面:當前使用情況和活動使用情況。您可以在各種 UNIX 變體中找到一批不同的工具,它們報告可用空閒記憶體和 VM 使用情況以及當前使用情況。
在 Solaris 下,swap 工具提供了大多數交換介面功能,包括報告使用情況和可用裝置。例如,若要獲得已配置的交換裝置列表,可參見清單 4。
清單 4. 在 Solaris 下監視交換空間使用情況
$ swap -l
swapfile dev swaplo blocks free
/dev/dsk/c0d0s1 102,1 8 1220928 1220928
在 清單 4 中,您可以看到您有一個完全未使用的交換裝置。
在 AIX 下,您可以使用 lsps 工具來獲得同樣的資訊(請參見清單 5)。
清單 5. 在 AIX 下使用 lsps 來監視交換空間
$ lsps -a
Page Space Physical Volume Volume Group Size %Used Active Auto
hd6 hdisk0 rootvg 2048MB 3 yes yes
在 Linux 下,您可以使用 swapon 工具,如清單 6 所示。
清單 6. 在 Linux 下使用 swapon 工具
$ swapon -s
Filename Type Size Used Priority
/dev/sda2 partition 1004052 319744 -1
對於 HP-UX,您可以使用 swapinfo,如清單 7 所示。
清單 7. 使用 swapinfo 來監視交換空間
swapinfo -t
Kb Kb Kb PCT START/ Kb
TYPE AVAIL USED FREE USED LIMIT RESERVE PRI NAME
dev 2097152 0 2097152 0% 0 - 1 /dev/vg00/lvol2
reserve - 1468224 -1468224
memory 3299740 1220268 2079472 37%
total 5396892 2688492 2708400 50% - 0 -
在上述每個示例中,您都可以看到可用交換空間位置列表及其用途,並大致瞭解交換空間的當前使用量情況。
這些快照檢視非常有用,但它們僅顯示了當前使用情況。其中有關交換空間的定期或全面使用情況的資訊非常少。出於效能的考慮,或者在診斷您懷疑可能與交換空間有關的問題時,您通常需要記憶體和分頁使用情況的更加互動式的檢視。
活動 VM 監視
vmstat 命令可以提供虛擬記憶體使用情況的長期檢視,包括提供有關交換空間與 RAM 之間正在活動地交換的記憶體量的資訊。在命令列上,您需要指定要在報告統計資訊時使用的間隔(以秒為單位)。結果輸出顯示了大量的資訊,並且可用於做出有關 VM 配置和分配的決策。
清單 8 顯示了針對 Solaris 計算機的輸出示例(間隔為五秒)。
清單 8. 針對 Solaris 計算機的示例輸出
kthr memory page disk faults cpu
r b w swap free re mf pi po fr de sr cd cd cd cd in sy cs us sy id
0 0 0 945932 385632 9 36 13 0 1 0 100 3 0 0 0 413 172 87 0 36 63
0 0 0 944616 384068 0 8 3 0 0 0 0 0 0 0 0 654 21 51 0 1 99
0 0 0 944612 384064 0 0 0 0 0 0 0 0 0 0 0 596 21 52 0 1 99
0 0 0 944612 384064 0 0 0 0 0 0 0 0 0 0 0 694 12 48 0 1 99
0 0 0 944612 384064 0 0 0 0 0 0 0 5 0 0 0 658 11 50 0 1 99
0 0 0 944612 384064 0 0 0 0 0 0 0 0 0 0 0 576 18 52 0 1 99
0 0 0 944500 383988 115 850 1 0 0 0 0 0 0 0 0 612 1656 120 1 5 94
0 0 0 942060 382444 6 62 0 0 0 0 0 0 0 0 0 669 256 146 0 2 98
0 0 0 942048 382432 9 105 0 0 0 0 0 0 0 0 0 699 414 188 0 2 98
0 0 0 946188 388188 481 2400 10 10 10 0 0 5 0 0 0 595 12613 6082 6 18 76
0 0 0 944488 386308 769 4753 1 8 8 0 0 7 0 0 0 625 15705 6285 8 29 63
0 0 0 943128 385104 839 5194 176 9 9 0 0 14 0 0 0 579 16077 6304 8 32 60
0 0 0 937692 377628 32 209 2 0 0 0 0 2 0 0 0 654 403 131 0 2 97
0 0 0 937228 377208 0 0 0 0 0 0 0 0 0 0 0 647 38 63 0 1 99
0 0 0 937220 377200 121 980 0 0 0 0 0 0 0 0 0 623 1246 218 1 6 93
0 0 0 937348 377320 126 1044 2 1 1 0 0 3 0 0 0 667 1266 228 1 7 93
0 0 0 937428 377408 57 686 0 0 0 0 0 0 0 0 0 702 890 180 1 5 94
0 0 0 937436 377404 72 861 0 0 0 0 0 54 0 0 0 689 1113 295 1 6 93
其中存在許多列——有些列比另一些列更重要。關鍵的列包括:
swap——顯示可用的總交換空間
free——顯示空閒的交換空間量
pi——換入的千位元組數
po——換出的千位元組數
fr——空閒的千位元組數
非常低的空閒空間量和較高的換入或換出頁數可能表明 VM 不足,非常高的換入和換出頁數可能表明物理 RAM 不足。
將交換空間用於臨時儲存
在某些 UNIX 變體下,特別是 Solaris 和 Linux,您可以使用 tmpfs 檔案系統;該檔案系統使用 VM 作為儲存空間。當您有充足的 RAM 時,這提供了支援超快速磁碟訪問的理想方法;未使用的檔案將交換到磁碟上。其結果是實現了快速訪問最常用檔案的高效解決方案,並且它可以顯著提高應用程式速度,例如軟體開發,其中要在編譯過程期間建立大量的臨時檔案。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8806316/viewspace-1001440/,如需轉載,請註明出處,否則將追究法律責任。