跳过导航链接 | |
退出打印视图 | |
![]() |
Oracle Solaris 可调参数参考手册 Oracle Solaris 11 Information Library (简体中文) |
以下参数适用于 sun4v 和 SPARC M 系列 sun4u 平台。
在 UltraSPARC 平台上可以使用不同的页放置策略。页放置策略在分配物理页地址时将力图最大程度地利用 L2 高速缓存。无论哪种算法被选作缺省算法,对于某个特定的应用程序集,该算法提供的结果也有可能没有另一种算法好。此参数更改针对系统上的所有进程选择的放置算法。
内存将基于 L2 高速缓存的大小划分为多个容器。当已取消映射的页上首次发生缺页时,页放置代码将从某个容器中分配页。选择的页取决于使用的是三种可能算法中的哪一种:
页面染色-虚拟地址中的各个位用于确定从中选择页的容器。将 consistent_coloring 设置为 0 将使用此算法。此算法没有每进程历史记录。
Virtual addr=physical address-程序中的连续页从连续容器中选择页。将 consistent_coloring 设置为 1 将使用此算法。此算法没有每进程历史记录。
容器跳跃-程序中的连续页通常每隔一个容器从容器中分配页,但是该算法有时会跳过多个容器。将 consistent_coloring 设置为 2 将使用此算法。每个进程都从一个随机选择的容器开始,并且保留所分配的最后一个容器的每进程内存。
是
无。如果值大于 2,会导致在控制台上显示许多 WARNING: AS_2_BIN: bad consistent coloring value 消息。然后,系统立即挂起。需要关机并重新开机才能恢复。
当系统的主要工作负荷是一组长时间运行的高性能计算 (high-performance computing, HPC) 应用程序时。更改此值可能会提供更好的性能。文件服务器、数据库服务器和具有许多活动进程(例如,编译或时间共享服务器)的系统则不能从此更改受益。
不稳定
初始化 tsb_alloc_hiwater,对可以为转换存储缓冲区 (translation storage buffer, TSB) 分配的物理内存量设置上限,如下所述:
tsb_alloc_hiwater = 物理内存(字节)/ tsb_alloc_hiwater_factor
当分配给 TSB 的内存等于 tsb_alloc_hiwater 的值时,TSB 内存分配算法在页被取消映射时会尝试回收 TSB 内存。
使用此因子增大 tsb_alloc_hiwater 的值时,请务必小心。为防止系统挂起,得出的高水位值必须大大低于 swapfs_minfree 和 segspt_minfree 的值。
整数
32
1 - MAXINIT
请注意,该因子为 1 会使所有物理内存都可以分配给 TSB,这可能会导致系统挂起。该因子太高将导致没有内存可以分配给 TSB,从而降低系统性能。
是
无
如果系统的许多进程都附加到非常大的共享内存段,请更改此参数的值。大多数情况下,不需要对此变量进行调优。
不稳定
整数
缺省为 0 (8 KB),对应于 512 个条目
可能的值为:
|
是
无
一般情况下,不需要更改此值。但是,如果系统上的大部分进程具有的工作集都大于平均值,或者如果禁用了驻留集大小 (resident set size, RSS) 调整,更改此值可能会有一定好处。
不稳定
布尔值
1(可以调整 TSB 大小)
0(TSB 保持为 tsb_default_size)或 1(可以调整 TSB 大小)
如果设置为 0,则会忽略 tsb_rss_factor。
是
是
可以设置为 0 以阻止 TSB 增长。大多数情况下,此参数应保留缺省设置。
不稳定
控制 RSS 大小调整试探的 RSS 与 TSB 范围的比率。此系数除以 512 可以得到必须驻留在内存中的 TSB 范围所占百分比,只有满足此百分比后,才认为 TSB 的大小可以调整。
整数
384,得到值 75%。因此,当 TSB 处于 3/4 充满状态时,将增大其大小。请注意,某些虚拟地址通常映射到 TSB 中的同一个槽。因此,在 TSB 处于 100% 充满状态时,会发生冲突。
0 至 512
是
无
如果系统由于 TSB 未命中(例如,由于 TSB 中的虚拟地址冲突)而出现大量陷阱,您可以考虑减小此值,直至为 0。
例如,将 tsb_rss_factor 更改为 256(即 50%)而不是 384(即 75%),在某些情况下,可以帮助消除虚拟地址冲突,但是将会使用更多内核内存,特别是在负载非常重的系统上。
可以使用 trapstat - T 命令监视 TSB 活动。
不稳定