我仍然看到系统pipe理员使用旧的经验法则,交换应该是内存的两倍,甚至在32GB的内存的服务器。
这些系统有相对昂贵的磁盘(200GB驱动器),并分配64GB的交换似乎有点过分。
我想知道你为Solaris服务器分配多less交换,为什么?
我看到还有其他类似的问题,但主要集中在Linux上。 对于Solaris,还有另外一个需要考虑交换空间的因素,因为/ tmp文件系统通常与swap共享。
内存崩溃时,内核将内存转储到交换设备,您可以检查重新启动系统后发生的情况。 现在,例如Linux正在跳过这一点,我不运行我的系统启用转储文件设置。 所以,这个内存大小的两倍是不能用的,因为你有16/32 / 64GB的ram是不正常的,然后你显然在这个老的故事之后浪费磁盘空间,当时磁盘很多大于内存。 所以长话短说,如果你不想在生产中倾倒和分析内核崩溃,那么就没有合乎逻辑的原因来保持这个原则,只是给你的系统对G交换,通常我给2/4 G,因为我想避免由交换引起的巨大的IO负载。
build议为所有应用程序提供足够的内存来适应内存,并且仍然有足够的空间让各种内核pipe理的caching和其他dynamiccaching保持性能最佳。 否则,你会有太多的分页,系统将performance不佳。
另一方面, 必须有足够大的交换空间才能保证所有的内存预留。 否则,你的应用程序将随机崩溃。 这与RAM使用率无关。 请注意,与Linux等不同,Solaris不会过度提交内存。
这是一个不好的做法,根本不分配Solaris的交换区域作为你的RAM的一部分,只是浪费。 通常有50%的保留但未使用的虚拟内存,所以我build议根据经验,交换区域的大小在RAM的50%到100%之间。 有很多具体的用途,分页很多也许是有意义的太大的交换空间。
在Solaris中不再需要交换。 如果您知道您的系统将在内存中完全运行,那么您可以将其设置为零。 除非磁盘空间真的成为一个问题,否则将其设置为最大,因为在危急情况下需要一些磁盘空间。
Solaris FAQ的神话和事实
我通常设定的值与RAM相同,除非系统可能需要更多。
我不同意交换不再需要的论点。 如果您正在使用重度应用程序,如EDA,空间,石油,天气预报。 应用程序通常运行物理内存。 所以,这取决于你运行的应用程序的types,总之,不幸的是没有一个适合每个人的单一规则。 您将必须根据您的应用程序要求决定交换大小。
这取决于你的应用程序。
由于Solaris似乎不能过量使用内存 ,因此即使未实际使用,也可能需要添加大量交换内存 。