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 内核可调参数

3.  Oracle Solaris ZFS 可调参数

4.  NFS 可调参数

何处查找可调参数信息

调优 NFS 环境

NFS 模块参数

nfs:nfs3_pathconf_disable_cache

nfs:nfs4_pathconf_disable_cache

nfs:nfs_allow_preepoch_time

nfs:nfs_cots_timeo

nfs:nfs3_cots_timeo

nfs:nfs4_cots_timeo

nfs:nfs_do_symlink_cache

nfs:nfs3_do_symlink_cache

nfs:nfs4_do_symlink_cache

nfs:nfs_dynamic

nfs:nfs3_dynamic

nfs:nfs_lookup_neg_cache

nfs:nfs3_lookup_neg_cache

nfs:nfs4_lookup_neg_cache

nfs:nfs_max_threads

nfs:nfs3_max_threads

nfs:nfs4_max_threads

nfs:nfs_nra

nfs:nfs3_nra

nfs:nfs4_nra

nfs:nrnode

nfs:nfs_shrinkreaddir

nfs:nfs3_shrinkreaddir

nfs:nfs_write_error_interval

nfs:nfs_write_error_to_cons_only

nfs:nfs_disable_rddir_cache

nfs:nfs3_bsize

nfs:nfs4_bsize

nfs:nfs_async_clusters

nfs:nfs3_async_clusters

nfs:nfs4_async_clusters

nfs:nfs_async_timeout

nfs:nacache

nfs:nfs3_jukebox_delay

nfs:nfs3_max_transfer_size

nfs:nfs4_max_transfer_size

nfs:nfs3_max_transfer_size_clts

nfs:nfs3_max_transfer_size_cots

rpcmod 模块参数

rpcmod:clnt_max_conns

rpcmod:clnt_idle_timeout

rpcmod:svc_idle_timeout

rpcmod:svc_default_stksize

rpcmod:maxdupreqs

rpcmod:cotsmaxdupreqs

5.  Internet 协议套件可调参数

6.  系统工具参数

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

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

索引

NFS 模块参数

本节介绍了与 NFS 内核模块相关的参数。

nfs:nfs3_pathconf_disable_cache

说明

控制针对已挂载 NFS 版本 3 文件系统的 pathconf 信息的高速缓存。

数据类型

整数(32 位)

缺省值

0(启用高速缓存)

范围

0(启用高速缓存)或 1(禁用高速缓存)

单位

布尔值

动态?

验证

何时更改

pathconf 信息是基于每个文件缓存的。不过,如果服务器可以动态更改针对特定文件的信息,请使用该参数禁用高速缓存。客户机没有用于验证其高速缓存条目的机制。

交付级别

不稳定

nfs:nfs4_pathconf_disable_cache

说明

控制针对已挂载 NFS 版本 4 文件系统的 pathconf 信息的高速缓存。

数据类型

整数(32 位)

缺省值

0(启用高速缓存)

范围

0(启用高速缓存)或 1(禁用高速缓存)

单位

布尔值

动态?

验证

何时更改

pathconf 信息是基于每个文件缓存的。不过,如果服务器可以动态更改针对特定文件的信息,请使用该参数禁用高速缓存。客户机没有用于验证其高速缓存条目的机制。

交付级别

不稳定

nfs:nfs_allow_preepoch_time

说明

控制是否应在客户机上显示带有不正确的或负值时间戳的文件。

在过去,NFS 客户机和 NFS 服务器都不会对返回的文件时间执行任何范围检查。线上时间戳值是无符号的,且长度为 32 位。因此,所有值都合法。

64 位 Solaris 内核上的时间戳值是有符号的,且长度为 64 位。无法确定时间字段是表示完全 32 位时间还是负时间(即 1970 年 1 月 1 日前的时间)。

无法确定从 32 位转换至 64 位时,是否对时间值进行符号扩展。如果时间值确实为负数,则应进行符号扩展。不过,如果时间值确实表示完全 32 位时间值,则不应进行符号扩展。只需禁用完全 32 位时间值,即可解决该问题。

数据类型

整数(32 位)

缺省值

0(禁用 32 位时间戳)

范围

0(禁用 32 位时间戳)或 1(启用 32 位时间戳)

单位

布尔值

动态?

验证

何时更改

即使在常规操作期间,也可能会将某些文件的时间戳值设置为在将来或过去很远的时间。如果首选使用已挂载 NFS 文件系统访问这些文件,请将该参数设置为 1 以允许直接传递时间戳值(不检查值)。

交付级别

不稳定

nfs:nfs_cots_timeo

说明

控制使用面向连接的传输协议(如 TCP)的已挂载 NFS 版本 2 文件系统的缺省 RPC 超时。

数据类型

带符号整数(32 位)

缺省值

600(60 秒)

范围

0 至 231 - 1

单位

十分之一秒

动态?

是,但是文件系统的 RPC 超时是在挂载文件系统时设置的。要影响某个特定的文件系统,请在更改该参数后先卸载然后再挂载该文件系统。

验证

何时更改

TCP 在确保适当地传送请求和响应方面做得很好。不过,如果在速度特别慢的网络中往返时间很长,NFS 版本 2 客户机可能会提前超时。

增大该参数可以防止客户机不恰当地超时。值的范围很大,因此过度增大该值可能会导致长时间检测不到重新传输的情况。

交付级别

不稳定

nfs:nfs3_cots_timeo

说明

控制使用面向连接的传输协议(如 TCP)的已挂载 NFS 版本 3 文件系统的缺省 RPC 超时。

数据类型

带符号整数(32 位)

缺省值

600(60 秒)

范围

0 至 231 - 1

单位

十分之一秒

动态?

是,但是文件系统的 RPC 超时是在挂载文件系统时设置的。要影响某个特定的文件系统,请在更改该参数后先卸载然后再挂载该文件系统。

验证

何时更改

TCP 在确保适当地传送请求和响应方面做得很好。不过,如果在速度特别慢的网络中往返时间很长,NFS 版本 3 客户机可能会提前超时。

增大该参数可以防止客户机不恰当地超时。值的范围很大,因此过度增大该值可能会导致长时间检测不到重新传输的情况。

交付级别

不稳定

nfs:nfs4_cots_timeo

说明

控制使用面向连接的传输协议(如 TCP)的已挂载 NFS 版本 4 文件系统的缺省 RPC 超时。

NFS 版本 4 协议规范不允许通过同一 TCP 连接重新传输。因此,该参数主要控制客户机响应特定事件的速度,这些事件包括检测强制卸载操作或检测服务器故障转移到新服务器的速度。

数据类型

带符号整数(32 位)

缺省值

600(60 秒)

范围

0 至 231 - 1

单位

十分之一秒

动态?

是,但该参数是在挂载文件系统时设置的。要影响某个特定的文件系统,请在更改该参数后先卸载然后再挂载该文件系统。

验证

何时更改

TCP 在确保适当地传送请求和响应方面做得很好。不过,如果在速度特别慢的网络中往返时间很长,NFS 版本 4 客户机可能会提前超时。

增大该参数可以防止客户机不恰当地超时。值的范围很大,因此过度增大该值可能会导致长时间检测不到重新传输的情况。

交付级别

不稳定

nfs:nfs_do_symlink_cache

说明

控制是否为已挂载 NFS 版本 2 文件系统缓存符号链接文件的内容。

数据类型

整数(32 位)

缺省值

1(启用高速缓存)

范围

0(禁用高速缓存)或 1(启用高速缓存)

单位

布尔值

动态?

验证

何时更改

如果服务器更改了符号链接文件的内容,而没有更新文件上的修改时间戳,或如果时间戳的粒度过大,那么可能在很长的期间内对符号链接文件内容的更改在客户机上不可见。在这种情况下,请使用该参数禁用对符号链接内容的高速缓存。执行此操作会使更改立即对客户机上运行的应用程序可见。

交付级别

不稳定

nfs:nfs3_do_symlink_cache

说明

控制是否为已挂载 NFS 版本 3 文件系统缓存符号链接文件的内容。

数据类型

整数(32 位)

缺省值

1(启用高速缓存)

范围

0(禁用高速缓存)或 1(启用高速缓存)

单位

布尔值

动态?

验证

何时更改

如果服务器更改了符号链接文件的内容,而没有更新文件上的修改时间戳,或如果时间戳的粒度过大,那么可能在很长的期间内对符号链接文件内容的更改在客户机上不可见。在这种情况下,请使用该参数禁用对符号链接内容的高速缓存。执行此操作会使更改立即对客户机上运行的应用程序可见。

交付级别

不稳定

nfs:nfs4_do_symlink_cache

说明

控制是否为已挂载 NFS 版本 4 文件系统缓存符号链接文件的内容。

数据类型

整数(32 位)

缺省值

1(启用高速缓存)

范围

0(禁用高速缓存)或 1(启用高速缓存)

单位

布尔值

动态?

验证

何时更改

如果服务器更改了符号链接文件的内容,而没有更新文件上的修改时间戳,或如果时间戳的粒度过大,那么可能在很长的期间内对符号链接文件内容的更改在客户机上不可见。在这种情况下,请使用该参数禁用对符号链接内容的高速缓存。执行此操作会使更改立即对客户机上运行的应用程序可见。

交付级别

不稳定

nfs:nfs_dynamic

说明

控制是否为使用无连接传输协议(如 UDP)的已挂载 NFS 版本 2 文件系统启用称作动态重新传输的功能。该功能通过监视服务器响应时间,然后调整 RPC 超时以及读取和写入传输大小,从而尝试减少重新传输。

数据类型

整数(32 位)

缺省值

1(启用)

范围

0(禁用)或 1(启用)

动态?

是,但该参数是在挂载时针对每个文件系统设置的。要影响某个特定的文件系统,请在更改该参数后先卸载然后再挂载该文件系统。

验证

何时更改

不要修改该参数。

交付级别

不稳定

nfs:nfs3_dynamic

说明

控制是否为使用无连接传输协议(如 UDP)的已挂载 NFS 版本 3 文件系统启用称作动态重新传输的功能。该功能通过监视服务器响应时间,然后调整 RPC 超时以及读取和写入传输大小,从而尝试减少重新传输。

数据类型

整数(32 位)

缺省值

0(禁用)

范围

0(禁用)或 1(启用)

单位

布尔值

动态?

是,但该参数是在挂载时针对每个文件系统设置的。要影响某个特定的文件系统,请在更改该参数后先卸载然后再挂载该文件系统。

验证

何时更改

不要修改该参数。

交付级别

不稳定

nfs:nfs_lookup_neg_cache

说明

控制是否针对已挂载的 NFS 版本 2 文件系统使用负名称高速缓存。负名称高速缓存记录以前查询过但未找到的文件名称。使用该高速缓存可避免在整个网络中查询已知不存在的文件名称。

数据类型

整数(32 位)

缺省值

1(启用)

范围

0(禁用)或 1(启用)

单位

布尔值

动态?

验证

何时更改

为了正确执行高速缓存,在使用负向条目前必须对其进行严格验证。对于只读的已挂载文件系统,该一致性机制稍有放宽。假定服务器上的文件系统未更改或更改速度缓慢,并且允许此类更改缓慢地传播至客户机。在这种情况下,一致性机制转变成常规属性高速缓存机制。

如果文件系统以只读方式挂载到客户机上,但是预期文件系统将在服务器上发生更改,并且客户机需要立即看到这些更改,请使用该参数禁用负高速缓存。

如果禁用了 nfs:nfs_disable_rddir_cache 参数,则可能也应当禁用该参数。有关更多信息,请参见nfs:nfs_disable_rddir_cache

交付级别

不稳定

nfs:nfs3_lookup_neg_cache

说明

控制是否针对已挂载的 NFS 版本 3 只读文件系统使用负名称高速缓存。该负名称高速缓存记录已查询过但未找到的文件名称。使用该高速缓存可避免在整个网络中查询已知不存在的文件名称。

数据类型

整数(32 位)

缺省值

1(启用)

范围

0(禁用)或 1(启用)

单位

布尔值

动态?

验证

何时更改

为了正确执行高速缓存,在使用负向条目前必须对其进行严格验证。对于只读的已挂载文件系统,该一致性机制稍有放宽。假定服务器上的文件系统未更改或更改速度缓慢,并且允许此类更改缓慢地传播至客户机。在这种情况下,一致性机制转变成常规属性高速缓存机制。

负高速缓存条目仅用于只读的已挂载文件系统。如果假定服务器上的文件系统未更改或更改速度缓慢,则可允许此类更改缓慢地传播至客户机。在这种情况下,一致性机制转变成常规属性高速缓存机制。

如果文件系统以只读方式挂载到客户机上,但是预期文件系统将在服务器上发生更改,并且客户机需要立即看到这些更改,请使用该参数禁用负高速缓存。

如果禁用了 nfs:nfs_disable_rddir_cache 参数,则可能也应当禁用该参数。有关更多信息,请参见nfs:nfs_disable_rddir_cache

交付级别

不稳定

nfs:nfs4_lookup_neg_cache

说明

控制是否针对已挂载的 NFS 版本 4 文件系统使用负名称高速缓存。该负名称高速缓存记录已查询过但未找到的文件名称。使用该高速缓存可避免在整个网络中查询已知不存在的文件名称。

数据类型

整数(32 位)

缺省值

1(启用)

范围

0(禁用)或 1(启用)

单位

布尔值

动态?

验证

何时更改

为了正确执行高速缓存,在使用负向条目前必须对其进行严格验证。对于只读的已挂载文件系统,该一致性机制稍有放宽。假定服务器上的文件系统未更改或更改速度缓慢,并且允许此类更改缓慢地传播至客户机。在这种情况下,一致性机制转变成常规属性高速缓存机制。

如果文件系统以只读方式挂载到客户机上,但是预期文件系统将在服务器上发生更改,并且客户机需要立即看到这些更改,请使用该参数禁用负高速缓存。

如果禁用了 nfs:nfs_disable_rddir_cache 参数,则可能也应当禁用该参数。有关更多信息,请参见nfs:nfs_disable_rddir_cache

交付级别

不稳定

nfs:nfs_max_threads

说明

控制为 NFS 版本 2 客户机执行异步 I/O 的内核线程的数量。由于 NFS 基于 RPC,并且 RPC 本身是同步的,因此,执行来自调用线程的异步 NFS 操作时需要单独的执行上下文。

可以异步执行的操作包括:用于预读的读取、用于 readdir 预读的 readdir、用于 putpage 和 pageio 操作的写入,以及客户机停止使用某个文件时执行的提交和非活动清除操作。

数据类型

无符号短整型

缺省值

8

范围

0 至 215 - 1

单位

线程

动态?

是,但该参数是在挂载时针对每个文件系统设置的。要影响某个特定的文件系统,请在更改该参数后先卸载然后再挂载该文件系统。

验证

何时更改

要增大或减小任一时刻未处理的并发 I/O 操作数量时。例如,对于带宽很低的网络,可能需要减小该值,以免 NFS 客户机使网络过载。而对于带宽很高的网络,客户机和服务器具有足够的资源,可能需要增大该值。这样可以更加高效地利用可用网络带宽以及客户机和服务器资源。

交付级别

不稳定

nfs:nfs3_max_threads

说明

控制为 NFS 版本 3 客户机执行异步 I/O 的内核线程的数量。由于 NFS 基于 RPC,并且 RPC 本身是同步的,因此,执行来自调用线程的异步 NFS 操作时需要单独的执行上下文。

可以异步执行的操作包括:用于预读的读取、用于 readdir 预读的 readdir、用于 putpage 和 pageio 请求的写入以及提交。

数据类型

无符号短整型

缺省值

8

范围

0 至 215 - 1

单位

线程

动态?

是,但该参数是在挂载时针对每个文件系统设置的。要影响某个特定的文件系统,请在更改该参数后先卸载然后再挂载该文件系统。

验证

何时更改

要增大或减小任一时刻未处理的并发 I/O 操作数量时。例如,对于带宽很低的网络,可能需要减小该值,以免 NFS 客户机使网络过载。而对于带宽很高的网络,客户机和服务器具有足够的资源,可能需要增大该值。这样可以更加高效地利用可用网络带宽以及客户机和服务器资源。

交付级别

不稳定

nfs:nfs4_max_threads

说明

控制为 NFS 版本 4 客户机执行异步 I/O 的内核线程的数量。由于 NFS 基于 RPC,并且 RPC 本身是同步的,因此,执行来自调用线程的异步 NFS 操作时需要单独的执行上下文。

可以异步执行的操作包括:用于预读的读取、延迟写、目录预读以及客户机停止使用某个文件时执行的清理操作。

数据类型

无符号短整型

缺省值

8

范围

0 至 215 - 1

单位

线程

动态?

是,但该参数是在挂载时针对每个文件系统设置的。要影响某个特定的文件系统,请在更改该参数后先卸载然后再挂载该文件系统。

验证

何时更改

要增大或减小任一时刻未处理的并发 I/O 操作数量时。例如,对于带宽很低的网络,可能需要减小该值,以免 NFS 客户机使网络过载。而对于带宽很高的网络,客户机和服务器具有足够的资源,可能需要增大该值。这样可以更加高效地利用可用网络带宽以及客户机和服务器资源。

交付级别

不稳定

nfs:nfs_nra

说明

控制在发现对文件进行顺序存取时,由 NFS 版本 2 客户机排队的预读操作的数量。此类预读操作会增加并发性和读取吞吐量。每个预读请求通常针对文件数据的一个逻辑块。

数据类型

整数(32 位)

缺省值

4

范围

0 至 231 - 1

单位

逻辑块。

动态?

验证

何时更改

要增大或减小任一时刻针对特定文件的未处理预读请求数量时。例如,对于带宽很低的网络或内存较低的客户机,可能需要减小该值,以免 NFS 客户机使网络或系统内存过载。而对于带宽很高的网络,客户机和服务器具有足够的资源,可能需要增大该值。这样可以更加高效地利用可用网络带宽以及客户机和服务器资源。

交付级别

不稳定

nfs:nfs3_nra

说明

控制在发现对文件进行顺序存取时,由 NFS 版本 3 客户机排队的预读操作的数量。此类预读操作会增加并发性和读取吞吐量。每个预读请求通常针对文件数据的一个逻辑块。

数据类型

整数(32 位)

缺省值

4

范围

0 至 231 - 1

单位

逻辑块。(请参见nfs:nfs3_bsize。)

动态?

验证

何时更改

要增大或减小任一时刻针对特定文件的未处理预读请求数量时。例如,对于带宽很低的网络或内存较低的客户机,可能需要减小该值,以免 NFS 客户机使网络或系统内存过载。而对于带宽很高的网络,客户机和服务器具有足够的资源,可能需要增大该值。这样可以更加高效地利用可用网络带宽以及客户机和服务器资源。

交付级别

不稳定

nfs:nfs4_nra

说明

控制在发现对文件进行顺序存取时,由 NFS 版本 4 客户机排队的预读操作的数量。此类预读操作会增加并发性和读取吞吐量。每个预读请求通常针对文件数据的一个逻辑块。

数据类型

整数(32 位)

缺省值

4

范围

0 至 231 - 1

单位

逻辑块。(请参见nfs:nfs4_bsize。)

动态?

验证

何时更改

要增大或减小任一时刻针对特定文件的未处理预读请求数量时。例如,对于带宽很低的网络或内存较低的客户机,可能需要减小该值,以免 NFS 客户机使网络或系统内存过载。而对于带宽很高的网络,客户机和服务器具有足够的资源,可能需要增大该值。这样可以更加高效地利用可用网络带宽以及客户机和服务器资源。

交付级别

不稳定

nfs:nrnode

说明

控制 NFS 客户机上 rnode 高速缓存的大小。

rnode 是描述 NFS 客户机上文件的核心数据结构,NFS 版本 2、3、4 客户机都使用该结构。rnode 包含标识服务器上的文件的文件句柄。rnode 还包含指向各个高速缓存的指针,NFS 客户机使用这些高速缓存来避免对服务器的网络调用。每个 rnodevnode 一对一关联。vnode 用来高速缓存文件数据。

NFS 客户机尽量使维护的 rnode 数量最少,以努力避免销毁高速缓存的数据和元数据。重用或释放 rnode 时,必须销毁高速缓存的数据和元数据。

数据类型

整数(32 位)

缺省值

该参数的缺省设置为 0,这表示应将 nrnode 的值设置为 ncsize 参数的值。实际上,任何非正的 nrnode 值都会导致将 nrnode 的值设置为 ncsize 的值。

范围

1 至 231 - 1

单位

rnode

动态?

否。只能通过在 /etc/system 文件中添加或更改参数,然后重新引导系统来更改该值。

验证

系统强制设置一个最大值,使得 rnode 高速缓存只能消耗 25% 的可用内存。

何时更改

因为 rnode 是动态创建和销毁的,所以系统倾向于设置一个大小为 nrnode 的高速缓存,并在系统内存压力增大或同时访问的文件数量增加时自动调整高速缓存大小。不过,在特定情况下,如果可以提前预测要访问的文件组合,则您可以自己设置 nrnode 的值。例如,如果 NFS 客户机将访问少量非常大的文件,可以将 nrnode 的值设置为较小的数值,以便由系统内存高速缓存文件数据,而不使用 rnode。如果客户机将访问大量小文件,则可以增大 nrnode 的值来优化对文件元数据的存储,从而减少对元数据的网络调用次数。

nrnode 的值设置为 1 可以有效地禁用 rnode 高速缓存,但不推荐这样做。该值指示客户机仅高速缓存 1 个 rnode,这表示将频繁重新使用它。

交付级别

不稳定

nfs:nfs_shrinkreaddir

说明

某些早期的 NFS 服务器可能无法正确处理目录信息超过 1024 字节的 NFS 版本 2 READDIR 请求。此问题是由服务器实现中的一个错误导致的。不过,该参数在 NFS 版本 2 客户机中包含了一个解决方法。

启用该参数后,客户机将不生成目录信息超过 1024 字节的 READDIR 请求。如果禁用该参数,则会将线上大小设置为使用 getdents 系统调用传递的大小和使用 NFS_MAXDATA 传递的大小(即 8192 字节)中的较小值。有关更多信息,请参见 getdents(2)

数据类型

整数(32 位)

缺省值

0(禁用)

范围

0(禁用)或 1(启用)

单位

布尔值

动态?

验证

何时更改

如果使用的是早期的 NFS 版本 2 服务器,并且该服务器尝试读取目录时发生互操作性问题,请检查该参数的值。启用该参数可能导致读取目录的应用程序的性能稍微降低。

交付级别

不稳定

nfs:nfs3_shrinkreaddir

说明

某些早期的 NFS 服务器可能无法正确处理目录信息超过 1024 字节的 NFS 版本 3 READDIR 请求。此问题是由服务器实现中的一个错误导致的。不过,该参数在 NFS 版本 3 客户机中包含了一个解决方法。

启用该参数后,客户机将不生成目录信息超过 1024 字节的 READDIR 请求。如果禁用该参数,则会将线上大小设置为使用 getdents 系统调用传递的大小或使用 MAXBSIZE 传递的大小(即 8192 字节)中的较小值。有关更多信息,请参见 getdents(2)

数据类型

整数(32 位)

缺省值

0(禁用)

范围

0(禁用)或 1(启用)

单位

布尔值

动态?

验证

何时更改

如果使用的是早期的 NFS 版本 3 服务器,并且该服务器尝试读取目录时发生互操作性问题,请检查该参数的值。启用该参数可能导致读取目录的应用程序的性能稍微降低。

交付级别

不稳定

nfs:nfs_write_error_interval

说明

控制记录 NFS 客户机收到的 ENOSPC EDQUOT 写入错误的持续时间。该参数影响 NFS 版本 2、3、4 客户机。

数据类型

长整数(64 位)

缺省值

5 秒

范围

0 至 263 - 1

单位

动态?

验证

何时更改

可增大或减小该参数以应对由客户机记录的消息量。通常,当服务器上的整个文件系统都处于活跃状态时,您可能希望增大该参数值以减少输出的空间不足消息的数量。

交付级别

不稳定

nfs:nfs_write_error_to_cons_only

说明

控制是将 NFS 写入错误同时记录到系统控制台和 syslog 中,还是只记录到系统控制台中。该参数影响 NFS 版本 2、3、4 客户机的消息。

数据类型

整数(32 位)

缺省值

0(系统控制台和 syslog

范围

0(系统控制台和 syslog)或 1(系统控制台)

单位

布尔值

动态?

验证

何时更改

要避免包含 syslogd 守护进程记录的消息的文件系统被填满,请检查该参数的值。启用该参数后,将仅在系统控制台上输出消息,而不会将消息复制到 syslog 消息文件中。

交付级别

不稳定

nfs:nfs_disable_rddir_cache

说明

控制是否使用高速缓存来保留对 READDIR READDIRPLUS 请求的响应。该高速缓存可避免对服务器进行线上调用来检索目录信息。

数据类型

整数(32 位)

缺省值

0(启用高速缓存)

范围

0(启用高速缓存)或 1(禁用高速缓存)

单位

布尔值

动态?

验证

何时更改

如果在目录中创建或删除文件或目录时服务器不更新该目录的修改时间,因而导致互操作性问题,请检查该参数的值。症状表现为,新名称在添加到目录中后没有显示在目录列表中,或者旧名称在从目录中删除后仍不消失。

该参数控制针对已挂载的 NFS 版本 2、3、4 文件系统的高速缓存。该参数应用于所有已挂载 NFS 文件系统,无法逐个对文件系统禁用或启用高速缓存。

如果禁用该参数,还应禁用以下参数以防止 DNLC 负高速缓存中出现错误的条目。

交付级别

不稳定

nfs:nfs3_bsize

说明

控制 NFS 版本 3 客户机使用的逻辑块大小。该块大小表示客户机需要执行 I/O 时尝试从服务器读取或写入到服务器的数据量。

数据类型

无符号整数(32 位)

缺省值

32,768 (32 KB)

范围

0 至 231 - 1

单位

字节

动态?

是,但文件系统的块大小是在挂载该文件系统时设置的。要影响某个特定的文件系统,请在更改该参数后先卸载然后再挂载该文件系统。

验证

无。将该参数设置得过低或过高可能会导致系统异常。不要将该参数设置为低于特定平台的 PAGESIZE 的值。也不要将该参数值设置得过高,因为那样可能会导致系统在等待内存分配时挂起。

何时更改

尝试更改最大数据传输大小时,请检查该参数的值。更改该参数时请结合 nfs:nfs3_max_transfer_size 参数。如果希望使用更大的传输大小,请增大这两个参数。如果希望使用更小的传输大小,则只需减小该参数即可。

交付级别

不稳定

nfs:nfs4_bsize

说明

控制 NFS 版本 4 客户机使用的逻辑块大小。该块大小表示客户机需要执行 I/O 时尝试从服务器读取或写入到服务器的数据量。

数据类型

无符号整数(32 位)

缺省值

32,768 (32 KB)

范围

0 至 231 - 1

单位

字节

动态?

是,但文件系统的块大小是在挂载该文件系统时设置的。要影响某个特定的文件系统,请在更改该参数后先卸载然后再挂载该文件系统。

验证

无。将该参数设置得过低或过高可能会导致系统异常。不要将该参数设置为低于特定平台的 PAGESIZE 的值。也不要将该参数值设置得过高,因为那样可能会导致系统在等待内存分配时挂起。

何时更改

尝试更改最大数据传输大小时,请检查该参数的值。在更改该参数时请结合 nfs:nfs4_max_transfer_size 参数。如果希望使用更大的传输大小,请增大这两个参数。如果希望使用更小的传输大小,则只需减小该参数即可。

交付级别

不稳定

nfs:nfs_async_clusters

说明

控制 NFS 版本 2 客户机生成的异步请求的组合。四种异步请求类型分别为 read-ahead、putpage、pageio 和 readdir-ahead。客户机试图循环使用这四种不同的请求类型,力图做到公平,不偏向某一种请求类型而牺牲另一种请求类型。

不过,某些 NFS 版本 2 服务器中的功能(如写入收集)依赖于现有 NFS 版本 2 客户机的特定行为。具体而言,该功能依赖于客户机能够几乎在同一时间发出多个 WRITE 请求。如果客户机每次从队列中取出一个请求,就会妨碍这一用于增强客户机性能的服务器功能。

因此,请使用该参数控制在切换类型之前发出的每种请求类型的请求数量。

数据类型

无符号整数(32 位)

缺省值

1

范围

0 至 231 - 1

单位

异步请求

动态?

是,但文件系统的群集设置是在挂载该文件系统时设置的。要影响某个特定的文件系统,请在更改该参数后先卸载然后再挂载该文件系统。

验证

无。不过,将该参数的值设置为 0 将导致某个特定请求类型的所有已排队请求在切换到下一类型前才得到处理。这可以有效地禁用算法的公平部分。

何时更改

要增大在切换到下一类型前生成的每种类型的异步请求数量时。执行此操作可能对依赖于来自客户机的请求群的服务器功能有帮助。

交付级别

不稳定

nfs:nfs3_async_clusters

说明

控制 NFS 版本 3 客户机生成的异步请求的组合。五种异步请求类型分别为 read-ahead、putpage、pageio、readdir-ahead 和 commit。客户机试图循环使用这四种不同的请求类型,力图做到公平,不偏向某一种请求类型而牺牲另一种请求类型。

不过,某些 NFS 版本 3 服务器中的功能(如写入收集)依赖于现有 NFS 版本 3 客户机的特定行为。具体而言,该功能依赖于客户机能够几乎在同一时间发出多个 WRITE 请求。如果客户机每次从队列中取出一个请求,就会妨碍这一用于增强客户机性能的服务器功能。

因此,请使用该参数控制在切换类型之前发出的每种请求类型的请求数量。

数据类型

无符号整数(32 位)

缺省值

1

范围

0 至 231 - 1

单位

异步请求

动态?

是,但文件系统的群集设置是在挂载该文件系统时设置的。要影响某个特定的文件系统,请在更改该参数后先卸载然后再挂载该文件系统。

验证

无。不过,将该参数的值设置为 0 将导致某个特定请求类型的所有已排队请求在切换到下一类型前才得到处理。该值可以有效地禁用算法的公平部分。

何时更改

要增大在切换到下一类型前生成的每种类型的异步请求数量时。执行此操作可能对依赖于来自客户机的操作群的服务器功能有帮助。

交付级别

不稳定

nfs:nfs4_async_clusters

说明

控制 NFS 版本 4 客户机生成的异步请求的组合。六种异步请求类型分别为 read-ahead、putpage、pageio、readdir-ahead、commit 和 inactive。客户机试图循环使用这四种不同的请求类型,力图做到公平,不偏向某一种请求类型而牺牲另一种请求类型。

不过,某些 NFS 版本 4 服务器中的功能(如写入收集)依赖于现有 NFS 版本 4 客户机的特定行为。具体而言,该功能依赖于客户机能够几乎在同一时间发出多个 WRITE 请求。如果客户机每次从队列中取出一个请求,就会妨碍这一用于增强客户机性能的服务器功能。

因此,请使用该参数控制在切换类型之前发出的每种请求类型的请求数量。

数据类型

无符号整数(32 位)

缺省值

1

范围

0 至 231 - 1

单位

异步请求

动态?

是,但文件系统的群集设置是在挂载该文件系统时设置的。要影响某个特定的文件系统,请在更改该参数后先卸载然后再挂载该文件系统。

验证

无。不过,将该参数的值设置为 0 将导致某个特定请求类型的所有已排队请求在切换到下一类型前才得到处理。这可以有效地禁用算法的公平部分。

何时更改

要增大在切换到下一类型前生成的每种类型的异步请求数量时。执行此操作可能对依赖于来自客户机的请求群的服务器功能有帮助。

交付级别

不稳定

nfs:nfs_async_timeout

说明

控制执行异步 I/O 请求的线程因无事可做而退出前的休眠持续时间。当没有其他请求需要执行时,每个线程将进入休眠状态。如果在计时器到期前没有新请求进入,线程将从休眠状态唤醒并退出。如果确实有请求到达,线程将被唤醒以执行请求,直至执行完所有请求为止。然后,线程进入休眠状态等待下个请求到达,或等待计时器到期。

数据类型

整数(32 位)

缺省值

6000(1 分钟表示成 60 秒 * 100Hz)

范围

0 至 231 - 1

单位

Hz。(通常,时钟的运行频率为 100Hz。)

动态?

验证

无。不过,将该参数设置为非正值将导致这些线程在队列中没有请求需处理时立即退出。

何时更改

如果已明确了解系统中应用程序的行为,并可以预测异步 I/O 请求的速率,则有可能采用以下两种方式之一调整该参数以稍微优化性能:

  • 通过让线程更快到期,可以更快地释放内核资源

  • 通过让线程更慢到期,可以避免产生线程创建和销毁开销

交付级别

不稳定

nfs:nacache

说明

调整访问 NFS 客户机上的文件访问高速缓存的散列队列数量。文件访问高速缓存存储用户对他们尝试访问的文件的文件访问权限。该高速缓存自身是动态分配的。不过,用来将高速缓存编入索引的散列队列是静态分配的。该算法假定每个活动文件有一个访问高速缓存条目,并且每个散列桶有四个这样的访问高速缓存条目。因此,缺省情况下,会将该参数的值设置为 nrnode 参数的值。

数据类型

整数(32 位)

缺省值

该参数的缺省设置为 0。该值表示应将 nacache 参数的值设置为 nrnode·参数的值。

范围

1 至 231 - 1

单位

访问高速缓存条目

动态?

否。只能通过在 /etc/system 文件中添加或更改参数,然后重新引导系统来更改该值。

验证

无。不过,将该参数设置为负值将有可能导致系统尝试分配非常大的一组散列队列。尝试执行此操作时,系统可能会挂起。

何时更改

如果会违反基本假设(即每个文件有一个访问高速缓存条目),请检查该参数的值。对于处于分时共享模式的系统(其中多个用户几乎同时访问同一个文件),可能会发生此违规。在这种情况下,增大访问高速缓存的预期大小可能有所帮助,从而让对高速缓存的散列访问保持高效。

交付级别

不稳定

nfs:nfs3_jukebox_delay

说明

控制 NFS 版本 3 客户机在从以前的 NFS3ERR_JUKEBOX 请求收到错误后等待传送新请求的持续时间。由于某种原因导致文件暂时不可用时,服务器通常会返回 NFS3ERR_JUKEBOX 错误。该错误通常与分层存储和 CD 或磁带自动换带机有关。

数据类型

长整数(64 位)

缺省值

1000(10 秒表示为 10 sec * 100Hz)

范围

0 - 263 - 1(在 64 位平台上)

单位

Hz。(通常,时钟的运行频率为 100Hz。)

动态?

验证

何时更改

检查该参数的值,可以调整该值使其符合服务器展现出的行为。如果在使该文件可用时延迟较长,可以增大该值,以减少重复重新传输导致的网络开销。减小该值可降低在发现文件变得重新可用时的延迟。

交付级别

不稳定

nfs:nfs3_max_transfer_size

说明

控制 NFS 版本 3 READWRITEREADDIRREADDIRPLUS 请求的数据部分的最大大小。该参数控制服务器返回的请求和客户机生成的请求的最大大小。

数据类型

整数(32 位)

缺省值

1,048,576 (1 MB)

范围

0 至 231 - 1

单位

字节

动态?

是,但该参数是在挂载时针对每个文件系统设置的。要影响某个特定的文件系统,请在更改该参数后先卸载然后再挂载该文件系统。

验证

无。不过,将服务器上的最大传输大小设置为 0 可能导致客户机出现故障,或决定不尝试与服务器对话。

通过 UDP 传输使用 NFS 时,对最大传输大小也有限制。UDP 对每个数据报有 64 KB 的硬限制。64 KB 除了包括请求的数据部分外,还必须包括 RPC 标头和其他 NFS 信息。将限制设置得过高可能会导致 UDP 出错,还会导致在客户机和服务器之间发生通信故障。

何时更改

要调整通过网络传输的数据大小时。通常情况下,还应更新 nfs:nfs3_bsize 参数才能反映该参数中的更改。

例如,试图将传输大小增至 32 KB 以上时,请更新 nfs:nfs3_bsize 以反映增大后的值。否则,将不会观察到线上请求大小的更改。有关更多信息,请参见nfs:nfs3_bsize

如果要使用小于缺省传输大小的传输大小,请针对每个文件系统使用 mount 命令的 -wsize- rsize 选项。

交付级别

不稳定

nfs:nfs4_max_transfer_size

说明

控制 NFS 版本 4 READWRITEREADDIRREADDIRPLUS 请求的数据部分的最大大小。该参数控制服务器返回的请求和客户机生成的请求的最大大小。

数据类型

整数(32 位)

缺省值

32, 768 (32 KB)

范围

0 至 231 - 1

单位

字节

动态?

是,但该参数是在挂载时针对每个文件系统设置的。要影响某个特定的文件系统,请在更改该参数后先卸载然后再挂载该文件系统。

验证

无。不过,将服务器上的最大传输大小设置为 0 可能导致客户机出现故障,或决定不尝试与服务器对话。

通过 UDP 传输使用 NFS 时,对最大传输大小也有限制。有关针对 UDP 的最大值的更多信息,请参见nfs:nfs3_max_transfer_size

何时更改

要调整通过网络传输的数据大小时。通常情况下,还应更新 nfs:nfs4_bsize 参数才能反映该参数中的更改。

例如,试图将传输大小增至 32 KB 以上时,请更新 nfs:nfs4_bsize 以反映增大后的值。否则,将不会观察到线上请求大小的更改。有关更多信息,请参见nfs:nfs4_bsize

如果要使用小于缺省传输大小的传输大小,请针对每个文件系统使用 mount 命令的 -wsize- rsize 选项。

交付级别

不稳定

nfs:nfs3_max_transfer_size_clts

说明

控制基于 UDP 的 NFS 版本 3 READWRITEREADDIRREADDIRPLUS 请求的数据部分的最大大小。该参数控制服务器返回的请求和客户机生成的请求的最大大小。

数据类型

整数(32 位)

缺省值

32, 768 (32 KB)

范围

0 至 231 - 1

单位

字节

动态?

是,但该参数是在挂载时针对每个文件系统设置的。要影响某个特定的文件系统,请在更改该参数后先卸载然后再挂载该文件系统。

验证

无。不过,将服务器上的最大传输大小设置为 0 可能导致客户机出现故障,或决定不尝试与服务器对话。

何时更改

不要修改该参数。

交付级别

不稳定

nfs:nfs3_max_transfer_size_cots

说明

控制基于 TCP 的 NFS 版本 3 READWRITEREADDIRREADDIRPLUS 请求的数据部分的最大大小。该参数控制服务器返回的请求和客户机生成的请求的最大大小。

数据类型

整数(32 位)

缺省值

1,048,576 字节

范围

0 至 231 - 1

单位

字节

动态?

是,但该参数是在挂载时针对每个文件系统设置的。要影响某个特定的文件系统,请在更改该参数后先卸载然后再挂载该文件系统。

验证

无。不过,将服务器上的最大传输大小设置为 0 可能导致客户机出现故障,或决定不尝试与服务器对话。

何时更改

请勿更改该值,除非希望使用大于 1 MB 的传输大小。

交付级别

不稳定