跳过导航链接 | |
退出打印视图 | |
Oracle Solaris 11.1 可调参数参考手册 Oracle Solaris 11.1 Information Library (简体中文) |
本节介绍了与物理内存和栈配置相关的常规内核参数。与 ZFS 相关的内存参数已移至第 3 章。
无符号长整数
系统上可用物理内存的可用页数,不包括用于存储核心内核和数据的内存
1 - 系统上的物理内存量
页
否
无
要测试以较少的物理内存运行系统的效果时。因为此参数不考虑核心内核和数据使用的内存以及启动进程中早期分配的各种其他数据结构使用的内存,因此 physmem 的值应该小于表示较少内存量的实际页数。
不稳定
指定所有线程的缺省栈大小。任何线程创建时具有的栈大小都不能小于 default_stksize。如果设置了 default_stksize,它会覆盖 lwp_default_stksize。另请参见lwp_default_stksize。
整数
在 SPARC 系统上为 3 x PAGESIZE
在 x64 系统上为 5 x PAGESIZE
最小值为缺省值:
在 SPARC 系统上为 3 x PAGESIZE
在 x64 系统上为 5 x PAGESIZE
最大值为缺省值的 32 倍。
getpagesize 参数返回的值的倍数字节。有关更多信息,请参见 getpagesize(3C)。
是。影响在变量更改后创建的线程。
必须大于或等于 8192 且小于或等于 262,144 (256 x 1024)。还必须是系统页大小的倍数。如果不满足这些条件,将显示以下消息:
Illegal stack size, Using N
N 的值是 default_stksize 的缺省值。
当系统因为用完栈空间而崩溃时。此问题的最佳解决方法是确定系统为何用完空间,然后进行纠正。
增大缺省栈大小意味着几乎每个内核线程都将具有更大的栈,从而导致内核内存消耗增加却没有合理原因。一般情况下,该空间将处于未使用状态。消耗增加意味着争用同一内存池的其他资源的可用空间将减少,从而可能降低系统执行工作的能力。其中一个负面影响是内核可以创建的线程数将减少。此解决方法只能作为在纠正根本原因之前采取的临时解决方法。
不稳定
整数
对于 SPARC 平台为 32,768
对于 x64 平台为 20,480
最小值为缺省值:
在 SPARC 系统上为 3 x PAGESIZE
在 x64 系统上为 5 x PAGESIZE
最大值为缺省值的 32 倍。
getpagesize 参数返回的值的倍数字节。有关更多信息,请参见 getpagesize(3C)。
是。影响在变量更改后创建的线程。
必须大于或等于 8192 且小于或等于 262,144 (256 x 1024)。还必须是系统页大小的倍数。如果不满足这些条件,将显示以下消息:
Illegal stack size, Using N
N 的值是 lwp_default_stksize 的缺省值。
当系统因为用完栈空间而崩溃时。此问题的最佳解决方法是确定系统为何用完空间,然后进行纠正。
增大缺省栈大小意味着几乎每个内核线程都将具有更大的栈,从而导致内核内存消耗增加却没有合理原因。一般情况下,该空间将处于未使用状态。消耗增加意味着争用同一内存池的其他资源的可用空间将减少,从而可能降低系统执行工作的能力。其中一个负面影响是内核可以创建的线程数将减少。此解决方法只能作为在纠正根本原因之前采取的临时解决方法。
不稳定
允许排队并等待传送到 syseventd 守护进程的最大系统事件数。一旦系统事件队列的大小达到此限制,队列中将不允许任何额外的系统事件。
整数
5000
0 - MAXINT
系统事件
是
每次 ddi_log_sysevent 和 sysevent_post_event 生成系统事件时,系统事件框架都会检查该值。
有关更多信息,请参见 ddi_log_sysevent(9F) 和 sysevent_post_event(3SYSEVENT)。
当错误日志消息指出无法记录、生成或发布系统事件时。
不稳定
指定可用的内核可分页内存量。此内存主要用于内核线程栈。增大该值将允许为相同数量的线程或更多线程使用更大的栈。
无符号长整数
nCPUs/128 或物理内存量/256 GB 中的较小者 x 2 GB
512 MB - 64 GB (SPARC)
200 MB - 8 GB (x86)
页
否
值将与最小大小和最大大小进行比较。如果小于最小值或大于最大值,会将该值重置为 2 GB。将显示一条消息来指示该结果。
在 SPARC 系统上,segkpsize 值不能超过物理内存大小的两倍。在 x86 系统上,该值不能超过物理内存的大小。
需要更改此参数以在系统上支持大量进程时。缺省大小 (2 GB) 允许为超过 65,536 个内核线程创建 24 KB 的栈。如果需要大于该值或需要增大栈大小,可以增大 segkpsize,前提是有足够的物理内存。
不稳定
有关信息,请参见segkpsize。
将栈标记为不可执行的,这有助于更好地阻止缓冲区溢出攻击。
运行有 64 位内核的 Oracle Solaris 系统在缺省情况下使所有 64 位应用程序的栈成为不可执行的。要使 32 位应用程序成为不可执行的,需要设置此参数。
带符号整数
0(禁用)
0(禁用)或 1(启用)
切换(开/关)
是。不影响当前正在运行的进程,仅影响在设置该值后创建的进程。
无
应始终启用,除非应用程序故意将可执行代码放在栈上,且没有使用 mprotect 使栈成为可执行的。有关更多信息,请参见 mprotect(2)。
不稳定