我仍然看到系统管理员使用旧的经验法则,即交换应该是内存的两倍,即使在具有 32GB 内存的服务器中也是如此。
这些系统具有相对昂贵的磁盘(附带 200GB 驱动器),分配 64GB 用于交换似乎有点过多。
我想知道您为 Solaris 服务器分配了多少交换空间,为什么?
我看到还有其他类似的问题,但主要集中在 Linux 上。对于 Solaris,决定交换空间还有另一个考虑因素,因为 /tmp 文件系统通常与交换共享。
我仍然看到系统管理员使用旧的经验法则,即交换应该是内存的两倍,即使在具有 32GB 内存的服务器中也是如此。
这些系统具有相对昂贵的磁盘(附带 200GB 驱动器),分配 64GB 用于交换似乎有点过多。
我想知道您为 Solaris 服务器分配了多少交换空间,为什么?
我看到还有其他类似的问题,但主要集中在 Linux 上。对于 Solaris,决定交换空间还有另一个考虑因素,因为 /tmp 文件系统通常与交换共享。
swap = 2 * memory 来自过去,在内核崩溃期间,内核将内存转储到交换设备,您可以检查重新启动系统后发生的情况。现在,例如 linux 完全跳过了这个,而且我没有在启用转储文件设置的情况下运行我的系统。因此,获得交换的内存大小的两倍不再有效,因为您拥有 16/32/64GB 的内存并不少见,然后当磁盘很多时,您显然会按照这个老故事浪费磁盘空间比 RAM 大。长话短说,如果您不想在生产中转储和分析内核崩溃,那么没有合乎逻辑的理由来保持这个原则,只给您的系统几个 G 交换,通常我给 2/4 G,因为我想避免交换造成的巨大 IO 负载。
不再需要在 Solaris 中进行交换。如果您知道您的系统将完全在内存中运行,那么您可以将其设置为零。除非磁盘空间真的是一个问题,否则将其设置为您可以逃脱的最大空间,因为在危急情况下您将需要一些。
Solaris 常见问题解答神话和事实
我通常将该值设置为与 RAM 相同,除非系统可能需要更多。
建议为所有应用程序积极使用的内存提供足够的 RAM 以适应它,并且仍然有足够的空间来允许各种内核管理的缓存和其他动态缓冲区保持最佳性能。否则你会有太多的分页,系统会表现不佳。
另一方面,必须有一个足够大的交换空间才能兑现所有的内存预留。否则,您的应用程序将随机崩溃。这与 RAM 使用无关。请注意,与 Linux 和其他系统不同,Solaris 不会过度使用内存。
根本不使用 Solaris 分配交换区域是一种不好的做法,因为您的 RAM 的一部分只会被浪费。通常有 50% 的保留但未使用的虚拟内存,所以我建议根据经验,交换区域的大小在 RAM 的 50% 到 100% 之间。在某些特定用途中,大量分页可能有意义,因此也有更大的交换空间。
我不同意不再需要交换的论点。如果您正在使用繁重的应用程序,例如 EDA、空间、石油、天气预报。应用程序通常运行物理内存。因此,这取决于您运行的应用程序类型,简而言之,不幸的是,没有适合所有人的单一规则。您必须根据您的应用程序要求来决定交换大小。
这在很大程度上取决于您的应用程序。
因为 Solaris 似乎无法过度使用内存,所以即使没有实际使用,您也可能不得不添加大量交换。