JavaScript is required to for searching.
跳过导航链接
退出打印视图
Oracle Solaris 11.1 可调参数参考手册     Oracle Solaris 11.1 Information Library (简体中文)
search filter icon
search icon

文档信息

前言

1.  Oracle Solaris 系统调优概述

2.  Oracle Solaris 内核可调参数

何处查找可调参数信息

常规内核及内存参数

physmem

default_stksize

lwp_default_stksize

logevent_max_q_sz

segkpsize

noexec_user_stack

fsflush 和相关参数

fsflush

tune_t_fsflushr

autoup

dopageflush

doiflush

进程大小调整参数

maxusers

reserved_procs

pidmax

max_nprocs

maxuprc

ngroups_max

分页相关参数

lotsfree

desfree

minfree

throttlefree

pageout_reserve

pages_pp_maximum

tune_t_minarmem

fastscan

slowscan

min_percent_cpu

handspreadpages

pages_before_pager

maxpgio

与交换相关的参数

swapfs_reserve

swapfs_minfree

内核内存分配器

kmem_flags

kmem_stackinfo

常规驱动程序参数

moddebug

ddi_msix_alloc_limit

网络驱动程序参数

igb 参数

mr_enable

intr_force

ixgbe 参数

tx_queue_number

rx_queue_number

intr_throttling

rx_limit_per_intr

tx_ring_size

rx_ring_size

tx_copy_threshold

rx_copy_threshold

常规 I/O 参数

maxphys

rlim_fd_max

rlim_fd_cur

常规文件系统参数

ncsize

dnlc_dir_enable

dnlc_dir_min_size

dnlc_dir_max_size

dnlc_dircache_percent

TMPFS 参数

tmpfs:tmpfs_maxkmem

tmpfs:tmpfs_minfree

伪终端

pt_cnt

pt_pctofmem

pt_max_pty

STREAMS 参数

nstrpush

strmsgsz

strctlsz

System V 消息队列

System V 信号

System V 共享内存

segspt_minfree

调度

disp_rechoose_interval

计时器

hires_tick

timer_max

特定于 SPARC 系统的参数

tsb_alloc_hiwater_factor

default_tsb_size

enable_tsb_rss_sizing

tsb_rss_factor

地址组参数

lpg_alloc_prefer

lgrp_mem_pset_aware

3.  Oracle Solaris ZFS 可调参数

4.  NFS 可调参数

5.  Internet 协议套件可调参数

6.  系统工具参数

A.  可调参数变更历史记录

B.  本手册的修订历史记录

索引

常规内核及内存参数

本节介绍了与物理内存和栈配置相关的常规内核参数。与 ZFS 相关的内存参数已移至第 3 章

physmem

说明

在考虑 Oracle Solaris OS 和固件后,修改系统的物理内存页数配置。

数据类型

无符号长整数

缺省值

系统上可用物理内存的可用页数,不包括用于存储核心内核和数据的内存

范围

1 - 系统上的物理内存量

单位

动态?

验证

何时更改

要测试以较少的物理内存运行系统的效果时。因为此参数考虑核心内核和数据使用的内存以及启动进程中早期分配的各种其他数据结构使用的内存,因此 physmem 的值应该小于表示较少内存量的实际页数。

交付级别

不稳定

default_stksize

说明

指定所有线程的缺省栈大小。任何线程创建时具有的栈大小都不能小于 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 的缺省值。

何时更改

当系统因为用完栈空间而崩溃时。此问题的最佳解决方法是确定系统为何用完空间,然后进行纠正。

增大缺省栈大小意味着几乎每个内核线程都将具有更大的栈,从而导致内核内存消耗增加却没有合理原因。一般情况下,该空间将处于未使用状态。消耗增加意味着争用同一内存池的其他资源的可用空间将减少,从而可能降低系统执行工作的能力。其中一个负面影响是内核可以创建的线程数将减少。此解决方法只能作为在纠正根本原因之前采取的临时解决方法。

交付级别

不稳定

lwp_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 的缺省值。

何时更改

当系统因为用完栈空间而崩溃时。此问题的最佳解决方法是确定系统为何用完空间,然后进行纠正。

增大缺省栈大小意味着几乎每个内核线程都将具有更大的栈,从而导致内核内存消耗增加却没有合理原因。一般情况下,该空间将处于未使用状态。消耗增加意味着争用同一内存池的其他资源的可用空间将减少,从而可能降低系统执行工作的能力。其中一个负面影响是内核可以创建的线程数将减少。此解决方法只能作为在纠正根本原因之前采取的临时解决方法。

交付级别

不稳定

logevent_max_q_sz

说明

允许排队并等待传送到 syseventd 守护进程的最大系统事件数。一旦系统事件队列的大小达到此限制,队列中将不允许任何额外的系统事件。

数据类型

整数

缺省值

5000

范围

0 - MAXINT

单位

系统事件

动态?

验证

每次 ddi_log_syseventsysevent_post_event 生成系统事件时,系统事件框架都会检查该值。

有关更多信息,请参见 ddi_log_sysevent(9F)sysevent_post_event(3SYSEVENT)

何时更改

当错误日志消息指出无法记录、生成或发布系统事件时。

交付级别

不稳定

segkpsize

说明

指定可用的内核可分页内存量。此内存主要用于内核线程栈。增大该值将允许为相同数量的线程或更多线程使用更大的栈。

数据类型

无符号长整数

缺省值

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

noexec_user_stack

说明

将栈标记为不可执行的,这有助于更好地阻止缓冲区溢出攻击。

运行有 64 位内核的 Oracle Solaris 系统在缺省情况下使所有 64 位应用程序的栈成为不可执行的。要使 32 位应用程序成为不可执行的,需要设置此参数。

数据类型

带符号整数

缺省值

0(禁用)

范围

0(禁用)或 1(启用)

单位

切换(开/关)

动态?

是。不影响当前正在运行的进程,仅影响在设置该值后创建的进程。

验证

何时更改

应始终启用,除非应用程序故意将可执行代码放在栈上,且没有使用 mprotect 使栈成为可执行的。有关更多信息,请参见 mprotect(2)

交付级别

不稳定