Pseudo Terminals
Pseudo terminals, ptys, are used for two purposes in Solaris software:
Supporting remote logins by using the telnet, rlogin, or rsh commands
Providing the interface through which the X Window system creates command interpreter windows
The default number of pseudo-terminals is sufficient for a desktop workstation. So, tuning
focuses on the number of ptys available for remote logins.
Previous versions of Solaris required that steps be taken to explicitly configure the
system for the preferred number of ptys. Starting with the Solaris 8 release,
a new mechanism removes the necessity for tuning in most cases. The default
number of ptys is now based on the amount of memory on the
system. This default should be changed only to restrict or increase the number
of users who can log in to the system.
Three related variables are used in the configuration process:
pt_cnt – Default maximum number of ptys.
pt_pctofmem – Percentage of kernel memory that can be dedicated to pty support structures. A value of zero means that no remote users can log in to the system.
pt_max_pty – Hard maximum for number of ptys.
pt_cnt has a default value of zero, which tells the system to limit
logins based on the amount of memory specified in pct_pctofmem, unless pt_max_pty
is set. If pt_cnt is non-zero, ptys are allocated until this limit is
reached. When that threshold is crossed, the system looks at pt_max_pty. If pt_max_pty has
a non-zero value, it is compared to pt_cnt. The pty allocation is
allowed if pt_cnt is less than pt_max_pty. If pt_max_pty is zero, pt_cnt is
compared to the number of ptys supported based on pt_pctofmem. If pt_cnt is less
than this value, the pty allocation is allowed. Note that the limit based
on pt_pctofmem only comes into play if both pt_cnt and ptms_ptymax have default values
of zero.
To put a hard limit on ptys that is different than the maximum
derived from pt_pctofmem, set pt_cnt and ptms_ptymax in /etc/system to the preferred number
of ptys. The setting of ptms_pctofmem is not relevant in this case.
To dedicate a different percentage of system memory to pty support and let
the operating system manage the explicit limits, do the following:
Do not set pt_cnt or ptms_ptymax in /etc/system.
Set pt_pctofmem in /etc/system to the preferred percentage. For example, set pt_pctofmem=10 for a 10 percent setting.
Note that the memory is not actually allocated until it is used
in support of a pty. Once memory is allocated, it remains allocated.
pt_cnt
- Description
The number of available /dev/pts entries is dynamic up to a limit determined by the amount of physical memory available on the system. pt_cnt is one of three variables that determines the minimum number of logins that the system can accommodate. The default maximum number of /dev/pts devices the system can support is determined at boot time by computing the number of pty structures that can fit in a percentage of system memory (see pt_pctofmem). If pt_cnt is zero, the system allocates up to that maximum. If pt_cnt is non-zero, the system allocates to the greater of pt_cnt and the default maximum.
- Data Type
Unsigned integer
- Default
0
- Range
0 to maxpid
- Units
Logins/windows
- Dynamic?
No
- Validation
None
- When to Change
When you want to explicitly control the number of users who can remotely log in to the system.
- Commitment Level
Unstable
pt_pctofmem
- Description
Specifies the maximum percentage of physical memory that can be consumed by data structures to support /dev/pts entries. A system running a 64-bit kernel consumes 176 bytes per /dev/pts entry. A system running a 32-bit kernel consumes 112 bytes per /dev/pts entry.
- Data Type
Unsigned integer
- Default
5
- Range
0 to 100
- Units
Percentage
- Dynamic?
No
- Validation
None
- When to Change
When you want to either restrict or increase the number of users who can log in to the system. A value of zero means that no remote users can log in to the system.
- Commitment Level
Unstable
pt_max_pty
- Description
Defines the maximum number of ptys the system offers
- Data Type
Unsigned integer
- Default
0 (Uses system-defined maximum)
- Range
0 to MAXUINT
- Units
Logins/windows
- Dynamic?
Yes
- Validation
None
- Implicit
Should be greater than or equal to pt_cnt. Value is not checked until the number of ptys allocated exceeds the value of pt_cnt.
- When to Change
When you want to place an absolute ceiling on the number of logins supported, even if the system could handle more based on its current configuration values.
- Commitment Level
Unstable