nfso Command

Purpose

Manages the tuning parameters of the Network File System (NFS).

Syntax

nfso [ -p | -r ] [ -c ] { -o Tunable [ = newvalue ] }
nfso [ -p | -r ] { -d Tunable } 
nfso [ -p | -r ] -D
nfso [ -p | -r ] -a [ -F ] [ -c ]
nfso -h [ Tunable ] 
nfso -l [ hostname ] 
nfso [ -F ] -L [ Tunable ] 
nfso [ -F ] -x [ Tunable ] 
nfso [ -@ WparName ] [ -p | -r ] -a [ -c ]
nfso [ -@ WparName ] [ -p  |  -r ] [ -c ] { -o Tunable [ = newvalue ] }
nfso -H {ha operation}
Note: Multiple flags such as -o, -d, -x, and -L flags are allowed.

Description

The nfso command configures the NFS tuning parameters. The nfso command sets or displays the current or next boot values for NFS tuning parameters. This command can make permanent changes or defer the changes until the next restart. An accompanying flag determines whether the command sets or displays a parameter. The -o flag can either display the value of a parameter or set a new value for a parameter.

Effect of changing the tunable parameters
The misuse of the nfso command can make your system inoperable.

For more information on modifying any tunable parameter and its purpose, see the characteristics of the tunable parameter in the Tunable parameters section.

Make sure that the Diagnosis and Tuning sections of the tunable parameter applies to your situation. Changing the value of the tunable parameter might improve the performance of your system.

If the Diagnosis and Tuning sections both contain only N/A, do not change the tunable parameter unless directed by AIX development.

Flags

Table 1. Flags
Item Description
-a Displays the current value, reboot value when you use with the -r flag, or permanent value when you use with the -p flag for all the tunable parameters, one per line in pairs Tunable = Value. For the permanent option, a value is displayed for a tunable parameter only if its reboot and current values are equal. Otherwise, NONE displayed as the value.
-c Changes the output format of the nfso command to a colon-delineated format.
-d Tunable Resets the tunable variable to its default value. If the tunable parameter that must be changed because it is not set to its default value, meets one or more of the following sets of criterias, a warning message is displayed and no change is made to the tunable parameter:
  • The tunable parameter is of the type Bosboot or Reboot.
  • The tunable parameter is of the type Incremental and is changed from its default value, and the -r flag is not used in combination.
-D Resets all the tunable variables to their default value. If the tunable variables that must be changed because it is not set to its default value, meets one or more of the following sets of criterias, a warning message is displayed and no change is made to the tunable parameter:
  • The tunable parameter is of the type Bosboot or Reboot.
  • The tunable parameter is of the type Incremental and is changed from its default value, and the -r flag is not used in combination.
-F Forces restricted tunable parameters to be displayed when you specify the -a, -L, or -x flag on the command line. If you do not specify the -F flag, restricted tunables are not included, unless they are named in association with a display option.
-h [Tunable] Displays the help information of the tunable parameter if specified. Otherwise, display the usage statement of the nfso command.
-H {ha operation} Runs the following high availability (HA) operation:
enable_ha
Turns on the HA function.
disable_ha
Turns off the HA function.
sm_register <hostname>
PowerHA SystemMirror registers this host.
sm_unregister <hostname>
PowerHA SystemMirror unregisters this host.
sm_gethost
PowerHA SystemMirror gets the host.
dump_dupcache <log device>
Dumps the duplicate cache of the HA operation.
-l hostname Allows a system administrator to release the NFS file locks on an NFS server. The hostname variable specifies the host name of the NFS client that has file locks held at the NFS server. To request the release of the file locks held by the hostname variable NFS client, the nfso -l command makes a remote procedure call to the rpc.lockd network lock manager of the NFS server.
You can use the nfso -l command to release the locks held by the NFS client at the NFS server, if the NFS client is disconnected from the network and cannot be recovered. The other NFS clients can now obtain the similar file locks.
Note: The nfso command can be used to release the locks on the local NFS server only.
-L [Tunable] Lists the characteristics of one or all tunable parameters, one per line, by using the following format:
NAME                      CUR    DEF    BOOT   MIN    MAX    UNIT           TYPE
     DEPENDENCIES
--------------------------------------------------------------------------------
portcheck                 0      0      0      0      1      On/Off            D
--------------------------------------------------------------------------------
udpchecksum               1      1      1      0      1      On/Off            D
--------------------------------------------------------------------------------
nfs_socketsize            600000 600000 600000 40000  1M     Bytes             D
--------------------------------------------------------------------------------
nfs_tcp_socketsize        600000 600000 600000 40000  1M     Bytes             D
--------------------------------------------------------------------------------
... 
where: 
    CUR = current value 
    DEF = default value 
    BOOT = reboot value 
    MIN = minimal value 
    MAX = maximum value 
    UNIT = tunable unit of measure 
    TYPE = parameter enter the following command: D (for Dynamic), 
           S (for Static), R (for Reboot),B (for Bosboot), M (for Mount),
           I (for Incremental), C (for Connect), and d (for Deprecated) 
    DEPENDENCIES = list of dependent tunable parameters, one per line
-o Tunable [ = NewValue] Displays or sets the value of a tunable parameter to a new value. If a tunable parameter must be changed because the specified value is different than current value, meets one or more of the following sets of criterias, a warning message is displayed and no change is made to the tunable parameter:
  • The tunable parameter is of the type Bosboot or Reboot.
  • The tunable parameter is of the type Incremental and its current value is greater

    The specified value and the -r flag is not used in combination.

When you specify the -r flag without a Newvalue, the nextboot value for the tunable parameter is displayed. When -p flag is used with the -o flag without a Newvalue, a value displays only if the current and next boot values for the tunable parameters are the same. Otherwise, NONE is displayed as the value.

-p Specifies that the changes apply to both the current and reboot values when you specify with the -o, -d, or -D flag. The tunable parameter allows you to update the /etc/tunables/nextboot file along with the current value. These combinations cannot be used on Reboot and Bosboot type of tunable parameters. The current value for Reboot and Bosboot type of tunable parameter cannot be changed.

When you specify -a or -o flag without specifying a new value, the values display only if the current and next boot values for a parameter are the same. Otherwise, NONE is displayed as the tunable value.

-r Makes changes that apply to reboot parameter values when used with the -o, -d, or -D flag. The tunable parameter allows you to update the /etc/tunables/nextboot file. If any tunable parameter of type Bosboot is changed, the user is prompted to run the bosboot command.

When -r flag is used with the -a or -o flag without specifying a new value, next boot values for tunables displayed instead of current values.

-x [ Tunable ] Lists the characteristics of one or all tunable parameters, one per line, by using the following spreadsheet format:
tunable,current,default,reboot,min,max,unit,type,{dtunable } 

where: 
    current = current value 
    default = default value 
    reboot = reboot value 
    min = minimal value 
    max = maximum value 
    unit = tunable unit of measure 
TYPE = parameter enter the following command: D (for Dynamic), 
           S (for Static), R (for Reboot),B (for Bosboot), M (for Mount),
           I (for Incremental), C (for Connect), and d (for Deprecated) 
       dtunable = space separated list of dependent tunable parameters 
-@ WparName Sets or displays the tunable parameters for the specified workload partition. The -@ flag can be used only when you run the nfso command is in the global partition.

If you modify a restricted tunable parameter by using the -o, -d, or -D flags, results in a warning message. The warning message states that a tunable parameter of the restricted-use type is modified. If you also specify the -r or -p flag on the command line, you are prompted for confirmation of the change of the restricted tunable parameter. In addition, at system reboot, the presence of restricted tunable parameters, which are in the /etc/tunables/nextboot file, is modified to a value that is different from their default value. The value is modified by using a command line that specifies the -r or -p flag. The modification of a restricted tunable parameter results in an error log entry that identifies the list of the modified tunable parameters.

A change with the -o,-d, or -D flags, to a tunable parameter of type Mount displays a warning message to the user. The warning message states that the change is effective only for future mountings.

A change with the -o, -d, or -D flag, to a tunable parameter of type connect, restarts the inetd command. Displays a warning message to the user that states that the change is effective only for future socket connections.

An attempt to change with the -o, -d, or -D flag, a tunable parameter of type Bosboot or Reboot without the -r flag, displays an error message.

An attempt to change with the -o, -d, or -D flag, but without the -r flag the current value of a tunable parameter of type Incremental with a new value smaller than the current value, displays an error message.

Note: You cannot modify tunable variables that apply to the entire system within a workload partition.
Note: The following tunable parameters can be set with the -o flag, when you run the nfso command is within a workload partition or if you specify the -@ flag:
  • nfs_dynamic_retrans
  • nfs_iopace_pages
  • nfs_use_reserved_port
  • nfs_v4_fail_over_timeout
  • utf8_validation
  • nfs_auth_rbr_trigger
  • client_delegation

Compatibility Mode

When you run the tunable parameter in pre 5.2 compatibility mode, which is controlled by the sys0 attribute that is called the pre520tune, reboot values for tunable parameters, except Bosboot are not meaningful. In pre 5.2 compatibility mode they are not applied at boot time. For more information, see AIX 5.2 compatibility mode).

In pre 5.2 compatibility mode, setting reboot values to tuning parameters remains achieved by embedding calls to tuning commands in scripts called during the boot sequence. Therefore, parameters of type Reboot can be set without the -r flag so that existing scripts continue to work.

The pre 5.2 compatibility mode is automatically turned on when a machine is migrated to AIX 5L 5.2. For complete installations, it is turned OFF and the reboot values for the tunable parameters are set by applying the content of the /etc/tunables/nextboot file during the reboot sequence. Only in that mode the -r and -p flags fully functional. For more information about the pre 5.2 compatibility mode, see Kernel Tuning in the Performance Tools Guide and Reference.

Tunable Parameters

The tunable parameters that are manipulated by the tuning commands, such as no, nfso, vmo, ioo, schedo, and raso commands are classified into the following tunable parameter categories:
Table 2. Tunable parameters categories
Item Description
Dynamic If the tunable parameter can be changed at any time.
Static If the tunable parameter can never be changed.
Reboot If the tunable parameter can be changed only during reboot.
Bosboot If the tunable parameter can be changed only by running the Bosboot command and rebooting the machine.
Mount If changes to the tunable parameter are only effective for future file systems or directory mounts.
Incremental If the tunable parameter can only be incremented, except at boot time.
Connect If changes to the tunable parameter are only effective for future socket connections.
Deprecated If changes to the tunable parameter are no longer supported by the current release of the AIX.
For tunable parameters of type Bosboot, whenever a change is performed, the tuning commands automatically prompts the user if they want to run the bosboot command. For parameters of type Connect, the tuning commands automatically restart the inetd daemon.
Note: The current set of tunable parameters that are managed by the nfso command includes only Dynamic, Mount, and Incremental types of tunable parameters.

For the default values and range of values for the tunable parameters, refer nfso command help -h <tunable_parameter_name>.

Note: Starting with the AIX Version 6.1 with the 6100-02 Technology Level 2, the following parameters are obsolete because the NFS and the virtual memory manager (VMM) dynamically tunes the number of the buf structures and page device tables (PDTs) based on the workload:
  • nfs_v2_pdts
  • nfs_v2_vm_bufs
  • nfs_v3_pdts
  • nfs_v3_vm_bufs
  • nfs_v4_pdts
  • nfs_v4_vm_bufs
The following table lists the tunable parameters along with the description:
Table 3. Tunable parameters
Item Description
client_delegation
Purpose
Determines whether the NFS version 4 client accepts the delegations for open files.
Tuning
A tuning value of 0 disables delegations and a tuning value of 1 enables the delegations.
nfs_hang_log
Purpose
Sets the priority at which the NFS mount messages that are hung get logged to the syslog log file.
Tuning
The tuning values range from 1-7.
1
LOG_ALERT
2
LOG_CRIT
3
LOG_ERR
4
LOG_WARNING
5
LOG_NOTICE
6
LOG_INFO
7
LOG_DEBUG
The default tuning value is 6.
nfs_max_read_size
Purpose
Allows the system administrator to control the NFS RPC sizes at the server.
Tuning
The nfs_max_read_size parameter is useful when all clients must have changes in the read sizes, and when the clients cannot be changed. Use the values of the client mount as the default value. The default tuning value is required to reduce the V3 read sizes when the mounts cannot be manipulated directly on the clients, particularly during the NIM installations on networks where the network is dropping packets with the default read sizes. In this case, set the maximum size of 512 KB to a smaller value such that the value works on the network. In addition, this parameter is useful when the network devices are dropping packets and a generic change is wanted for communications with the server. The default value is 64 KB and the maximum value is 512 KB.
nfs_max_write_size
Purpose
Allows the system administrator to control the NFS Remote Procedure call (RPC) sizes at the server.
Tuning
The nfs_max_write_size parameter is useful when all clients must have changes in the write sizes, and when the clients cannot be changed. Use the values of the client mount as the default value. The default value is required to reduce the V3 read sizes when the mounts cannot be manipulated directly on the clients, in particular during the NIM installations on networks where the network is dropping packets with the default write sizes. In this case, set the maximum size of 512 KB to a smaller value such that the value works on the network. In addition, this parameter is useful when the network devices are dropping packets and a generic change is wanted for communications with the server. The default value is 64 KB and the maximum value is 512 KB.
nfs_rfc1323
Purpose
Enables large Transmission Control Protocol (TCP) window size negotiation greater than 65535 bytes to occur between the systems.
Tuning
If you use the TCP transport between the NFS client and the server, and if both the systems support the usage, the systems negotiates a TCP window size. This allows more data to be in-flight between the NFS client and the server. The throughput potential between the NFS client and server increases. Unlike the rfc1323 option of the no command, this affects only the NFS and not other applications in the system. A tuning value of 0 means this is disabled, and a value of 1 means it is enabled. If the no command parameter rfc1323 is already set, you do not have to set this NFS option.
nfs_securenfs_authtimeout
Purpose
Sets the number of seconds for which a Data Encryption Standard (DES) credential timeouts.
Tuning
A tunable value of 0 disables the DES credential timeouts.
nfs_server_base_priority
Purpose
Sets the base priority of the nfsd daemons.
Tuning
By default, the nfsd daemons run with a floating process priority. Therefore, as they increase their cumulative CPU time, their priority changes. This parameter can be used to set a static parameter for the nfsd daemons. The value of 0 represents the floating priority by default. Other values within the acceptable range are used to set the priority of the nfsd daemon when an NFS request is received at the server. This option can be used if the NFS server is overloading the system, which means lowering or making the nfsd daemon less favored. It can also be used if you want the nfsd daemons be one of the most favored processes on the server. Use caution when you set the parameter because it can render the system almost unusable by other processes. This situation can occur if the NFS server is busy and essentially locks out other processes from having run time on the server.
nfs_server_clread
Purpose
Allows the NFS server to be aggressive about the reading of a file. The NFS server can only respond to the specific NFS-read request from the NFS client. However, the NFS server can read data in the file that exists immediately after the current read request. This is normally referred to as read-ahead. The NFS server does read-ahead by default.
Tuning
This parameter is useful in cases where server memory is low and numerous disk-to-memory activities is going on. With the nfs_server_clread option enabled, the NFS server becomes aggressive about doing read-ahead for the NFS client. If the tuning value is 1, then aggressive read-ahead is done. If the tuning value is 0, a normal system default read-ahead methods are used. Normal system read-ahead is controlled by the Virtual machine Manager (VMM (for Journaled File System (JFS) file systems)) and JFS2 (for JFS2 file systems). This aggressive top-half that is read-ahead enabled that is through the nfs_server_clread option is less susceptible to read-ahead breaking down due to out-of-order requests, which are typical in the NFS server case. When the mechanism is activated, it reads an entire cluster of 128 KB, the LVM logical track group size at a time.
nfs_server_close_delay
Purpose
Determines whether the NFS version 4 server must avoid sending a NFS4ERR_DELAY response if the expected delay is not too long. If the NFS clients are used that pause applications for a long time when encountering a NFS4ERR_DELAY response from the server, the server attempts to process the delay on the server by using the nfs_server_close_delay option, which avoids pausing the application.
Tuning
A tuning value of 0 turns off this feature. The default tuning value is 0. A tuning value of 1 enables the local processing of short delays on the server side.
nfs_use_reserved_ports
Purpose
Specifies by using the nonreserved IP port number.
Tuning
A tuning value of 0 will use nonreserved IP port number when the NFS client communicates with the NFS server.
nfs_v3_server_readdirplus
Purpose
Determines whether the READDIRPLUS calls are supported by the server.
Tuning
A tuning value of 0 disables the READDIRPLUS processing.
nfs_v4_fail_over_timeout
Purpose
Specifies a time out period in which the NFS version 4 client operation fails over to the replica provided by the NFS version 4 server. A timeout period is measured in seconds.
Tuning
If tuning value of 0 is specified, the timeout value is the timeout value for TCP multiplied by 4. Tuning values from 1 to 4 are reserved and the NFS version 4 client treats it as 0. NFS version 4 allows the client to fail over to other replica server if the main server is not responding. This value determines how long a client must wait for a respond from the server before it switch all the NFS version 4 request for that fsid to other replica server.
start of changenfs_v4_persistent_clientidend of change
Purpose
Specifies whether to use the existing or the latest NFSv4 persistent clientid implementation.
Tuning
This option allows the clients of the NFSv4 to choose either a latest or existing implementation of the clientid. A tuning value of 1 turns on the latest implementation, and a tuning value of 0 turns off the latest implementation. The latest implementation of the clientid inherits the characteristics of the existing clientid. In addition, it makes the clientid persistent. The default tuning value is 0. The tunable parameter is of type Mount.
Note: Unmount all existing NFSv4 mounts before you change the value of the nfs_v4_persistent_clientid tunable.
portcheck
Purpose
Checks whether an NFS request is originated from a privileged port.
Tuning
A tuning value of 0 disables the port-checking that is done by the NFS server. A tuning value of 1 directs the NFS server to check the port on the incoming NFS requests. This is a configuration decision with minimal performance consequences.
server_delegation
Purpose
Determines whether the NFS version 4 server issues a read delegation for open files.
Tuning
A tuning value of 0 disables delegation granting. A tuning value of 1 enables the delegation granting.
utf8_validation
Purpose
Determines whether the NFS version 4 client and server checks string data for UTF-8 correctness.
Tuning
A tuning value of 0 disables the UTF-8 checking. A tuning value of 1 enables the UTF-8 checking.
gss_window
Purpose
Enables or disables the checking of the Generic Security Service (GSS) window size.
Tuning
A tuning value of 0 disables the GSS window size checking. A tuning value of 1 enables the GSS window size checking. The default tuning value is 1.

Examples

  1. To set the portcheck tunable parameter to a value of zero, enter the following command:
    nfso -o portcheck=0
  2. To set the udpchecksum tunable parameter to its default value of 1 at the next reboot, enter the following command:
    nfso -r -d udpchecksum
  3. To print, in colon-delimited format, a list of all tunable parameters and their current values, enter the following command:
    nfso -a -c
  4. To list the current and reboot value, range, unit, type, and dependencies of the tunables parameters that the nfso command manages, enter the following command:
     nfso -L
  5. To display the help information of the nfs_tcp_duplicate_cache_size parameter, enter the following command:
    nfso -h nfs_tcp_duplicate_cache_size
  6. To permanently turn off the nfs_dynamic_retrans parameter, enter the following command:
    nfso -p -o nfs_dynamic_retrans=0
  7. To list the reboot values for the NFS tuning parameters, enter the following command:
    nfso -r -a
  8. To list the current and reboot value, range, unit, type, and dependencies of tunables parameters that the nfso command manages, in a spreadsheet format, enter the following command:
    nfso -x