use*_*137 11 memory linux swap
当我们想要设置一个 linux 系统时,有一个常见的建议是将交换空间设置为物理内存的两倍。我想知道我们为什么需要这个,以及这个建议是如何形成的?
小智 8
简短的回答是“你不会有来”。
根据内核/系统类型,像这样调整交换空间的大小可能是有意义的,例如在 FreeBSD 的tuning(7)联机帮助页中,我们发现交换大小至少是物理内存大小的 2 倍背后的基本原理:
对于 RAM 少于 2GB 的系统,您通常应该将交换空间调整为大约 2 倍主内存,或者如果您有更多内存,则大约为 1 倍主内存。但是,如果您没有大量 RAM,则通常需要更多交换空间。不建议您在系统上配置任何小于 256M 的交换空间,并且在调整交换分区大小时应该记住将来的内存扩展。内核的 VM 分页算法经过调整以在与主内存相比至少有 2 倍交换时执行最佳。配置太少的交换会导致 VM 页面扫描代码效率低下,并且如果向机器添加更多内存,也会在以后产生问题。最后,在具有多个 SCSI 磁盘(或在不同控制器上运行的多个 IDE 磁盘)的较大系统上,我们强烈建议您在每个驱动器上配置交换。驱动器上的交换分区大小应大致相同。内核可以处理任意大小,但内部数据结构可扩展到最大交换分区的 4 倍。保持交换分区接近相同的大小将允许内核在 N 个磁盘上优化条带交换空间。不要担心过度使用,交换空间是 UNIX 的优势,即使您通常不使用太多交换空间,它也可以让您有更多时间从失控的程序中恢复,然后再被迫重新启动。保持交换分区接近相同的大小将允许内核在 N 个磁盘上优化条带交换空间。不要担心过度使用,交换空间是 UNIX 的优势,即使您通常不使用太多交换空间,它也可以让您有更多时间从失控的程序中恢复,然后再被迫重新启动。保持交换分区接近相同的大小将允许内核在 N 个磁盘上优化条带交换空间。不要担心过度使用,交换空间是 UNIX 的优势,即使您通常不使用太多交换空间,它也可以让您有更多时间从失控的程序中恢复,然后再被迫重新启动。
当您决定分配多少交换空间、将其分配到何处等时,其他因素可能很重要。例如,如果您要安装具有 128 GB 物理内存的大型服务器,最好避免为永远不会使用的交换预先分配 256 GB 的磁盘空间。
另一方面,拥有一些交换空间通常可以获取内核转储(例如在 Open-、Net- 和 FreeBSD 中)。因此,最好至少有足够的交换空间来在恐慌时获取完整的内核转储。
没有适合所有情况的绝对规则。您必须阅读特定系统的行为,了解它是如何工作的,考虑系统的预期用途并确定适合您需要的最佳交换空间大小。
你根本不需要。旧版本的 Windows 会将分配的内存的每一页本质上视为交换文件上的 mmap,因此您至少需要交换中的总物理 RAM 大小才能使其有用 - 今天不再是这种情况,而且从来都不是Linux 中的情况,但谣言仍然存在。
但是,在某些情况下,需要至少与 RAM 一样多的交换 - 休眠。由于 Linux 使用交换文件进行休眠(也称为挂起到磁盘),因此您需要足够的交换空间来保存 RAM 中的所有数据,以及已换出的所有数据(减去缓存 RAM)。当然,这仅适用于需要休眠的机器,例如笔记本电脑。
最后,尽管其他人可能会这么说,但交换过多可能是一件坏事。想一想 - 如果您有 4G 的 RAM,并且除此之外还需要额外的 8G 交换空间,您认为您的系统是否仍然可用,它正在执行的所有与磁盘之间的交换是什么?当内存不足时,立即终止占用内存的进程通常会更好,而不是在整个系统开始花费所有时间将数据编组进出交换时让整个系统慢到无法使用的程度。
| 归档时间: |
|
| 查看次数: |
8444 次 |
| 最近记录: |