Solaris 可调参数参考手册

常规 I/O 参数

maxphys

说明

定义最大物理 I/O 请求大小。如果驱动程序遇到大于此大小的请求,则会将此请求分为几个大小为 maxphys 的块。文件系统可以并且确实会强加其自己的限制。

数据类型

带符号整数

缺省值

131,072 (Sun-4u) 或 57,344 (x86)。 如果 sd 驱动程序支持广泛传输,则使用值 1,048,576。ssd 驱动程序缺省情况下使用 1,048,576。

范围

特定于计算机的页大小到 MAXINT

单位

字节

是否为动态

是,但是挂载文件系统时,很多文件系统都将此值装入每挂载点数据结构。许多驱动程序都在将设备连接到特定于驱动程序的数据结构时装入此值。

验证

何时更改

在原始设备上执行大量 I/O 操作时(包括输入和输出)。请注意,执行 OLTP 操作的 DBMS 会导致大量的较小 I/O 操作。在这种情况下,更改 maxphys 不会提高性能。

在随时要读取或写入大量数据(大于 64 KB)的 UFS 文件系统上执行进出 I/O 操作时,也要考虑更改此参数。应优化此文件系统以改善邻接性。例如,增加柱面组的大小并减小每柱面组的 inode 数。UFS 对其传输的最大 I/O 大小强加 1 MB 的内部限制。

承诺级别

不稳定

rlim_fd_max

说明

指定对单个进程可以打开的文件描述符设置的“硬”限制。覆盖此限制需要超级用户权限。

数据类型

带符号整数

缺省值

65,536

范围

1 到 MAXINT

单位

文件描述符

是否为动态

验证

何时更改

某个进程的最大已打开文件数不足时。系统功能中的其他限制表示更多的文件描述符并不会起到可能具有的作用。例如:

  • 使用标准 I/O 的 32 位程序最多可以使用 256 个文件描述符。使用标准 I/O 的 64 位程序最多可以使用 20 亿个描述符。具体而言,标准 I/O 是指 libc(3LIB) 中的 stdio(3C) 函数。

  • 缺省情况下,会将 select 限制为每 fd_set 使用 1024 个描述符。有关更多信息,请参见 select(3C)。从 Solaris 7 发行版开始,可以使用较大的 fd_set 大小(小于或等于 65,536)来重新编译 32 位应用程序代码。64 位应用程序使用的 fd_set 大小为 65,536(无法更改)。

在系统范围内更改此参数的一种备用方法是使用 plimit(1) 命令。如果父进程使用 plimit 更改了其限制,则所有子进程都会继承增大的限制。此备用方法对于 inetd 之类的守护进程非常有用。

承诺级别

不稳定

更改历史记录

有关信息,请参见rlim_fd_max(Solaris 8 发行版)

rlim_fd_cur

说明

定义对单个进程可以打开的文件描述符设置的“软”限制。进程可能会在运行任何 shell 期间通过使用 setrlimit() 调用或发出 limit 命令,将其文件描述符限制调整到最多为 rlim_fd_max 定义的“硬”限制的任何值。无需超级用户权限即可将此限制调整到小于或等于硬限制的任何值。

数据类型

带符号整数

缺省值

256

范围

1 到 MAXINT

单位

文件描述符

是否为动态

验证

rlim_fd_max 进行比较。如果 rlim_fd_cur 大于 rlim_fd_max,则将 rlim_fd_cur 重置为 rlim_fd_max

何时更改

某个进程的缺省已打开文件数不足时。增大此值只表示程序可能没有必要使用 setrlimit 来增加其可用的最大文件描述符数。

承诺级别

不稳定