当前位置:首页 > Linux系统管理员工具包 交换空间管理和技巧
介绍来准备它。
如果没有空余的分区可用,您可以创建一个或多个文件,并将它们临时添加到可用交换池中。大多数系统甚至允许您在 NFS 安装的文件系统上使用交换文件,当您没有本地磁盘空间可用时,就可以使用这样的文件系统。
若要将文件用于交换空间,请首先创建一个适当的文件。mkfile> 命令在这里最合适,因为它提供了创建大型文件的简单方法。您可以在命令行指定文件名和文件大小:
1. $ mkfile 512m /export/data/swapfile
复制代码
然后可以像添加分区一样添加该文件:
1. $ swap -a /export/data/swapfile 2. or
3. $ swapon /export/data/swapfile
复制代码
以这种方式使用的交换文件通常决不是针对交换空间问题的长期解决方案。您应该尽快为交换空间配置专用分区。
监视交换空间使用情况
交换空间及其使用情况的监视包括两个方面:当前使用情况和活动使用情况。您可以在各种 UNIX 变体中找到一批不同的工具,它们报告可用空闲内存和 VM 使用情况以及当前使用情况。
在 Solaris 下,swap 工具提供了大多数交换接口功能,包括报告使用情况和可用设备。例如,若要获得已配置的交换设备列表,可参见清单 4。
清单 4. 在 Solaris 下监视交换空间使用情况
1. $ swap -l
2. swapfile dev swaplo blocks free 3. /dev/dsk/c0d0s1 102,1 8 1220928 1220928
复制代码
在 清单 4 中,您可以看到您有一个完全未使用的交换设备。
在 AIX 下,您可以使用 lsps 工具来获得同样的信息(请参见清单 5)。
清单 5. 在 AIX 下使用 lsps 来监视交换空间
1. $ lsps -a 2.
3. Page Space Physical Volume Volume Group Size %Used Active Auto 4. hd6 hdisk0 rootvg 2048MB 3 yes yes
复制代码
在 Linux 下,您可以使用 swapon 工具,如清单 6 所示。
清单 6. 在 Linux 下使用 swapon 工具
1. $ swapon -s
2. Filename Type Size Used Priority 3. /dev/sda2 partition 1004052 319744 -1
复制代码
对于 HP-UX,您可以使用 swapinfo,如清单 7 所示。
清单 7. 使用 swapinfo 来监视交换空间
1. swapinfo -t
2. Kb Kb Kb PCT START/ Kb
3. TYPE AVAIL USED FREE USED LIMIT RESERVE PRI NAME
4. dev 2097152 0 2097152 0% 0 - 1 /dev/vg00/lvol2 5. reserve - 1468224 -1468224 6. memory 3299740 1220268 2079472 37%
7. 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 时,这提供了支持超快速磁盘访问的理想方法;未使用的文件将交换到磁盘上。其结果是实现了快速访问最常用文件的高效解决方案,并且它可以显著提高应用程序速度,例如软件开发,其中要在编译过程期间创建大量的临时文件。
总结
正确配置交换空间可以对计算机效率产生巨大的影响。大多数人设置并遗忘他们的交换空间设置,不过在本文中,您研究了几种添加和调整交换空间的方法。您还看到了如何向您的配置永久地添加交换空间,以及如何在内存不足时紧急添加交换空间。
共分享92篇相关文档