要确定以下内容,应了解 SunOSTM 交换机制的功能:
交换空间要求
交换空间与 TMPFS 文件系统之间的关系
如何从与交换空间有关的错误消息恢复
Solaris 软件将一些磁盘片用于临时存储而不是用于文件系统。这些片称为交换片。当系统没有足够的物理内存来处理当前进程时,会将交换片用作虚拟内存存储区域。
虚拟内存系统将磁盘上文件的物理副本映射到内存中的虚拟地址。文件系统中的普通文件或交换空间可以备份包含这些映射的数据的物理内存页面。如果交换空间对内存进行了备份,则该内存称为匿名内存,因为没有为备份内存的磁盘空间指定标识。
Solaris OS 使用的虚拟交换空间概念是指,匿名内存页面和实际备份这些页面的物理存储(或磁盘备份交换空间)之间的层。系统的虚拟交换空间等于其所有物理(磁盘备份)交换空间与当前部分可用物理内存的和。
虚拟交换空间具有以下优点:
由于虚拟交换空间不必对应于物理(磁盘)存储,因此减少了对大量物理交换空间的需求。
称为 SWAPFS 的伪文件系统为匿名内存页面提供地址。由于 SWAPFS 可以控制内存页面的分配,因此它在确定要对页面执行的操作方面具有更大的灵活性。例如,SWAPFS 可以更改页面对磁盘备份交换存储的要求。
在 Solaris 环境中,TMPFS 文件系统由 /etc/vfstab 文件中的项自动激活。TMPFS 文件系统将文件及其关联信息存储在内存中(存储在 /tmp 目录中)而不是磁盘上,从而加快了访问这些文件的速度。对于大量使用 /tmp 的应用程序(例如编译器和 DBMS 产品),此功能可显著增强这些应用程序的性能。
TMPFS 文件系统从系统的交换资源分配 /tmp 目录中的空间。此功能意味着,用尽 /tmp 目录中的空间时,也就用尽了交换空间。因此,如果应用程序大量使用 /tmp 目录,而且您未监视交换空间使用情况,则系统可能会用尽交换空间。
如果要使用 TMPFS,但交换资源有限,请采用以下措施:
使用大小选项 (-o size) 挂载 TMPFS 文件系统,以便控制 TMPFS 可以使用的交换资源量。
使用编译器的 TMPDIR 环境变量以指向其他较大的目录。
使用编译器的 TMPDIR 变量仅可以控制编译器是否使用 /tmp 目录。此变量对其他程序是否使用 /tmp 目录没有影响。
转储设备通常是为存储系统崩溃转储信息而保留的磁盘空间。缺省情况下,会将系统的转储设备配置为交换片。如有可能,应将备用磁盘分区配置为专用转储设备,以便为崩溃转储提供增强的可靠性,并缩短系统出现故障后重新引导的时间。可以使用 dumpadm 命令配置专用转储设备。有关更多信息,请参见《系统管理指南:高级管理》中的第 24 章 “管理系统崩溃转储信息(任务)”。
如果使用卷管理器(例如 Solaris Volume Manager)管理磁盘,请勿将专用转储设备配置为受其控制。建议由 Solaris Volume Manager 控制交换区域。但是,出于可访问性和性能原因,应将另一个磁盘配置为不受 Solaris Volume Manager 控制的专用转储设备。
建议分配足够的交换空间,以便在动态重新配置期间支持出现故障的 CPU 或系统板。否则,CPU 或系统板故障可能会导致主机或域重新引导时内存不足。
如果此其他交换空间不可用,则一个或多个应用程序可能会因内存不足而无法启动。此问题需要进行手动干预,以便添加其他交换空间或重新配置这些应用程序的内存使用。
如果已分配其他交换空间来处理重新引导时内存的潜在不足,则所有需要大量内存的应用程序可照常启动。这意味着,用户可以使用系统,但系统速度可能会因一些其他交换而变慢。
有关更多信息,请参见硬件动态重新配置指南。