交換空間是磁碟的保留區域,Oracle Solaris 作業系統軟體和應用程式軟體會使用交換空間來進行暫時儲存。當系統沒有足夠的實體記憶體可處理目前執行中的程序時,會使用交換空間來作為虛擬記憶體儲存區域。在 Oracle Solaris 10 中,UFS 根環境會為交換與傾印裝置提供一個磁碟片段。在 Oracle Solaris 11 中,會建立兩個獨立的磁碟區作為交換裝置與傾印裝置。在 ZFS 根檔案系統中,為交換保留的磁碟空間為 ZFS 磁碟區。依下列方式使用 dumpadm 指令來顯示此資訊:
# dumpadm Dump content: kernel pages Dump device: /dev/zvol/dsk/rpool/dump (dedicated) Savecore directory: /var/crash Savecore enabled: yes Save compressed: on
# swap -l swapfile dev swaplo blocks free /dev/zvol/dsk/rpool/swap 182,2 8 4061176 4061176
顯示交換與傾印磁碟區名稱及大小的相關資訊,如下所示:
# zfs list -t volume -r rpool NAME USED AVAIL REFER MOUNTPOINT rpool/dump 4.13G 51.6G 4.00G - rpool/swap 4.13G 51.6G 4.00G -
您可以使用易於閱讀的格式來顯示交換空間大小,如此範例所示:
# swap -sh total: 1.4G allocated + 227M reserved = 1.6G used, 432G available # swap -lh swapfile dev swaplo blocks free /dev/zvol/dsk/rpool/swap 285,2 8K 4.0G 4.0G
管理 ZFS 交換與傾印磁碟區的方式和管理 UFS 交換與傾印裝置之單一片段的方式不同,其差異如下:
在 ZFS 根環境中,無法同時在交換與傾印裝置使用單一磁碟區。
在 ZFS 根環境中,無法使用單一檔案作為交換裝置。
系統要求的傾印裝置大約為實體記憶體大小的 1/2 至 3/4。若傾印裝置太小,將會出現類似以下的錯誤:
# dumpadm -d /dev/zvol/dsk/rpool/dump dumpadm: dump device /dev/zvol/dsk/rpool/dump is too small to hold a system dump dump size 36255432704 bytes, device size 34359738368 bytes
您可以藉由增加磁碟區的 volsize 特性來輕鬆增加傾印裝置的大小,如下列範例所示,但是重新初始化磁碟區需要花費一些時間。
# zfs get volsize rpool/dump NAME PROPERTY VALUE SOURCE rpool/dump volsize 1.94G local # zfs set volsize=3g rpool/dump # zfs get volsize rpool/dump NAME PROPERTY VALUE SOURCE rpool/dump volsize 3G local
若交換裝置正在使用中,則變更交換磁碟區的大小較為困難。請考慮使用下列方式建立第二個交換磁碟區,並將它新增為交換裝置:
# zfs create -V 3G rpool/swap2 # swap -a /dev/zvol/dsk/rpool/swap2 # swap -l swapfile dev swaplo blocks free /dev/zvol/dsk/rpool/swap 182,2 8 4061176 4061176 /dev/zvol/dsk/rpool/swap2 182,4 8 6291448 6291448
之後,在 /etc/vfstab 檔案中為新的交換裝置新增一個項目。例如:
/dev/zvol/dsk/rpool/swap2 - - swap - no -
如需有關交換空間與傾印裝置配置的詳細資訊,請參閱Managing File Systems in Oracle Solaris 11.2 中的About Swap Space。