JavaScript is required to for searching.
Skip Navigation Links
Exit Print View
Oracle Solaris Tunable Parameters Reference Manual     Oracle Solaris 11 Information Library
search filter icon
search icon

Document Information


1.  Overview of Oracle Solaris System Tuning

What's New in Oracle Solaris System Tuning?

Tuning an Oracle Solaris System

Tuning Format of Tunable Parameters Descriptions

Tuning the Oracle Solaris Kernel

/etc/system File

Example--Setting a Parameter in /etc/system

Recovering From an Incorrect Value

kmdb Command

mdb Command

Example-Using mdb to Display Information

Special Oracle Solaris tune and var Structures

Viewing Oracle Solaris System Configuration Information

sysdef Command

kstat Utility

2.  Oracle Solaris Kernel Tunable Parameters

3.  NFS Tunable Parameters

4.  Internet Protocol Suite Tunable Parameters

5.  Network Cache and Accelerator Tunable Parameters

6.  System Facility Parameters

A.  Tunable Parameters Change History

B.  Revision History for This Manual


Tuning the Oracle Solaris Kernel

The following table describes the different ways tunable parameters can be applied.

Apply Tunable Parameters in These Ways
For More Information
Modify the /etc/system file
Use the kernel debugger (kmdb)
Use the modular debugger (mdb)
Use the ipadm command to set TCP/IP parameters
Modify the /etc/default files

/etc/system File

The /etc/system file provides a static mechanism for adjusting the values of kernel parameters. Values specified in this file are read at boot time and are applied. Any changes that are made to the file are not applied to the operating system until the system is rebooted.

One pass is made to set all the values before the configuration parameters are calculated.

Example—Setting a Parameter in /etc/system

The following /etc/system entry sets the ZFS ARC maximum (zfs_arc_max) to 30 GB.

set zfs:zfs_arc_max = 0x780000000

Recovering From an Incorrect Value

Make a copy of the /etc/system file before modifying it so that you can easily recover from incorrect value. For example:

# cp /etc/system /etc/system.good

If a value specified in the /etc/system file causes the system to become unbootable, you can recover with the following command:

ok boot -a

This command causes the system to ask for the name of various files used in the boot process. Press the Return key to accept the default values until the name of the /etc/system file is requested. When the Name of system file [/etc/system]: prompt is displayed, type the name of the good /etc/system file or /dev/null:

Name of system file [/etc/system]: /etc/system.good

If /dev/null is specified, this path causes the system to attempt to read from /dev/null for its configuration information. Because this file is empty, the system uses the default values. After the system is booted, the /etc/system file can be corrected.

For more information on system recovery, see Oracle Solaris Administration: Common Tasks.

kmdb Command

kmdb is a interactive kernel debugger with the same general syntax as mdb. An advantage of interactive kernel debugger is that you can set breakpoints. When a breakpoint is reached, you can examine data or step through the execution of kernel code.

kmdb can be loaded and unloaded on demand. You do not have to reboot the system to perform interactive kernel debugging, as was the case with kadb.

For more information, see kmdb(1).

mdb Command

The modular debugger, mdb, is unique among Solaris debuggers because it is easily extensible. A programming API is available that allows compilation of modules to perform desired tasks within the context of the debugger.

mdb also includes a number of desirable usability features, including command-line editing, command history, built-in output pager, syntax checking, and command pipelining. mdb is the recommended post-mortem debugger for the kernel.

For more information, see mdb(1).

Example–Using mdb to Display Information

Display a high-level view of a system's memory usage. For example:

# mdb -k
Loading modules: [ unix genunix specfs dtrace mac cpu.generic cpu_ms.AuthenticAMD.15 
uppc pcplusmp scsi_vhci zfs mpt sd ip hook neti arp usba sockfs kssl qlc fctl stmf stmf_
sbd md lofs random idm fcp crypto cpc smbsrv nfs fcip sppp ufs logindmux ptm nsmb scu 
mpt_sas pmcs emlxs ]
> ::memstat
Page Summary                Pages                MB  %Tot
------------     ----------------  ----------------  ----
Kernel                     160876               628   16%
ZFS File Data              303401              1185   30%
Anon                        25335                98    2%
Exec and libs                1459                 5    0%
Page cache                   5083                19    1%
Free (cachelist)             6616                25    1%
Free (freelist)            510870              1995   50%

Total                     1013640              3959
Physical                  1013639              3959
> $q

For more information on using the modular debugger, see the Oracle Solaris Modular Debugger Guide.

When using either kmdb or mdb debugger, the module name prefix is not required. After a module is loaded, its symbols form a common name space with the core kernel symbols and any other previously loaded module symbols.