|
The focus of this sections is the software limits imposed on the common
Networking products found on the MPE/iX operating system. These limits
are current as of release 5.5 and all attempts have been made to provide
information as accurate as possible. While all attempts have been made
to keep this document up-to-date with the latest release of the operating
system, it is possible that patches or new product introductions may not
be reflected in this information.
If you have any feedback/comments/concerns about the content or format of
this information, please send a e-mail message to
Jeff Bandle(jeffb@cup.hp.com)
.
Structure of this section
You will notice that this section is divided into functional areas.
The functional areas represented in this version of the document include the
following:
Network Services and Transport Limits
Virtual Terminal (VT) Limits
Terminal and Serial Printer I/O limits
Telnet/iX Limits
Within each functional area, one or
more limits are stated along with the system table or resource which imposes
the limit. Using the number that corresponds to the particular limit
you are interested in, you may refer to a written description of that
resource which is also included within the section. If you see a '~' in
front of a stated limit, this implies that the limit is variable or
approximate. Generally, limits tagged with a '~' character are derived based
on a (sometimes) formula. For most of these formulas there are several
variables which can on be estimated, modeled or assumed. The actual limit on
your system could be quite different.
In these cases, you should definitely refer to written descriptions.
NS transport & netipc/BSD sockets - limits
This section describes the system limits by the Sockets layer of the
Operating system. This Layer is interface between user applications
and the network protocols. The applications can use either NetIPC
intrinsics or the BSD sockets intrinsics to acess the services of the
underlying network protocols,like TCP,UDP etc.,
The maximum number of sockets ,that can be created on MPE 6.0 is
8192. When a process forks, the child inherites the parents open
file descriptors,including the sockets. These sockets are shared by
the parent and the child process. Each such socket is associated with
an alias socket record.
The max number of such alias sockets is set to the MAX_PIN value of
the system. The value of MAX_PIN for MPE 6.0 is 8192.
# MAX_NUM_WAITQ_ENTRIES := max_pin (8192)
The maximum data that can be sent or received through the
SEND/RECV system calls is 30000 bytes.
SK_MAX_DATA_LEN = 30000; { max # of bytes in send/recv }
Nwtm (network type manager)
This is type manager layer which interfaces the socket layer with the
underlying protocol layer. On MPE, each file type has unique type
manager, which handles the operations on that file. NWTM is the
sockets file type manager. The file system is aware of the presence
of NWTM and when user applications issues a read/write against a
socket, the file system recognizes the descriptor is sockets file
type descriptor and then let NWTM do the read/write operation as
requested.
Each socket that is bound to a Network protocol, has a unique NWTM
entry. Thus the max.number of NWTM entries limits the number of
sockets that could be concurrently used by the applications on the
system.
The max.number of NWTM entries ,as of MPE 6.0 ,is
# MAX_NUM_TYPE_MGRS 5632
Notice that this value is significantly lower than the
MAX_NUM_SOCKET_RECORD . What this mean is that effectively
the max number of sockets that could be in use is limited to 5632.
NWTM entries are kept in the table management object that resides in the SR6/SR7
space. The max object size limits the max. number of
NWTM entries to 5632.
Transport layer protocols
TCP - transmission control protocol
TCP keeps connection entry table, where one entry is allocated per
connection. This object is SR6/SR7 space. With 6.0, the maximum
number of TCP connection supported is 6090. This value is
configurable through NMMGR.
#TCP_MAX_CONNECTIONS = 6090
One important thing to note here is that, for each connection there is
one associated NWTM entry. Since the maximum number of NMTM entries is
limited to 5632, the maximum number of connections that could be used
is also limited to 5632.
The Maximum number of TCP call sockets supported is #6090.
#TCP_MAX_SOCKETS = 6090;
A call socket is a TCP socket created by a Upper Layer Protocol (ULP) , like
NetIPC/BSD Sockets to rendezvous with incoming connection
requests Note that the term 'socket' ,as mentioned at
TCP level is different from the term 'socket' decribed
at the NetIPC/BSD sockets level. Here the term 'socket'
refers to a logical entity which provides an addressable
access point for the establishment of TCP connections.
TCP sockets are refered to as SAP.(Service Access Points)
TCP IP/address/network connection table
#TCP_MAX_NETWORKS = 11
TCP_MAX_NETWORKS is a constant which defines the maximum number of
simultaneously active networks supported by TCP.
# MAX_PATH_RETRIES = 20;
This indiactes the maximum number of attempts to resolve a path to reach the
specified destination,before TCP gives up and throws
out path resolution error.
UDP - user datagram protocol
The maximum number of UDP sockets supported is 4096. This value
is configurable through NMMGR.
UDP obtains objects from VSM for its socket entries. Up to 16 objects
are obtained to contain the # 4096 socket entries. Each object contain
256 socket entries.{ 4096 / 16 = 256 }
UDP_MAX_OBJECTS = 16;
Network interface/path resolution modules
This section describes the limits encounterd in the Network layer and
the MPE routing related limits.
MAX_NUMBER_NETWORKS = 12; { maximum number of networks supported}
As of 6.0, the routing capablity of MPE is significantly increased.
The maximum number of Gateways that can be configured in system is 256.
Earlier releases of MPE supports only allows 14 gateways to be configured.
Virtual terminal limits
NS global tables
1) Session ID Table (SID)
2) Process Table (PTAB)
3) Process Table Extension (PTAB EXT)
4) Dsline Table
5) DSL DST Table
6) NSSTATUS Data Structures
7) Network Services Table (NEST)
8) Other dependencies -
a) TCP Connections
b) Sockets
c) Ports
d) Ports Dictionary.
e) NM IOWAIT COMPLETORS
f) Max ldev's
9) Effect of breaks & subsystem breaks.
1) Session id table(sid)
File : S14SNSCC
One table per node. Contains one entry for each session created
with DSLINE & REMOTE ( Programmatic sessions not included).
Accessed through AS global segment.
SID table is an XDS which is limited to 32764 CM words.
Table size determined by
InitSidTableSize = 3000
MaxSidTableSize = 30000 (Max = 32764)
IncrSidTableSize = 1000
SidHeaderLength = 23
SidEntryLength = 9
Total number of = (MaxSidTableSize - SidHeaderLength)/SidEntryLength
entries in SID table
Current max. entries = 3330
Using the max. XDS size of 32764 max entries possible is 3637.
This means info. for 3637 sessions(dsline & remote) can be stored
int SID table.
Procedure AS'ENV'CREATE'SID'TABLE creates SID table for the system.
No changes required for storing information of 2600 sessions
since max possible entries can go upto 3637.
2) Process table (ptab)
Contains NS related info. for each process.
Resides in ASGLOBAL DST.
The size of Global DST is caluculated as :
memory'size := glob'w'len + as'plabel'size + p'tab'head'len +
w'len'vt'mask
glob'dst := HPGetDataSeg( memory'size, memory'size,objcl'dcl'ss'global,
vsdomain'global,releaseable);
Max entries in PTAB table (using max DST size of 32764) =
(Max DST size - glob'w'len - as'plabel'size - p'tab'head'len -
w'len'vt'mask)/pt'entry'size
---------------------------
Current max entries = 15888
---------------------------
Max processes supported on system currently is 8190.Therefore no
changes are required for PTAB.
3) Process extension table ( ptab ext)
File : S15SNSCC
Procedure AS'Glob'Init allocates space for this table using
max dst size (32764) :
extn'dst := HPGetDataSeg ( as'memory'size,as'memory'size,
objcl'dcl'ss'global,vsdomain'global,
releaseable);
-----------------------------
Max PTAB Ext entries = 10,000.
-----------------------------
This is more than the current max processes which is 8190.
4) Dsline table
File : S14SNSCC
DSLINE table holds the characteristics for environments defined
by :DSLINE and :REMOTE commands.
The DS Table is organized as an extra data segment buffer
space.As such it is an extra data segment, with the entries
in the DS Table are allocated as buffers in the buffer space.
The maximum allowed buffers is currently 100.This puts an upper
limit on the number of concurrent environments for the session.
DsTabMaxSize = 29027 , DsTabMaxBuffers = 740
Procedure AS'ENV'CREATE'DSTABLE creates DSLINE Table for a session.
5) Dsl DST table
There is one global DSL DSTs Table for a node. It is created
during system initialization and exists as long as the system
is up. There will be an entry in the table for each possible
process on the system. Every session on the system which creates
a DSLINE table, stores its DSLINE table DST# in its root process's
PIN entry of this table.
Accessed through AS Global Data Segment.
Constants that determine table size :
DSL'DSTs'Size = 10000 , DSL'DSTs'HLength = 8
Max entries = ((DSL'DSTs'Size - DSL'DSTs'HLength)/ entrysize) - 1
where entrysize = 1;
Current max entries = 9991
Using Max DST size of 32764 max possible entries = 32755.
6) Nsstatus intrinsic
Can handle info. for only 120 NS servers.
Very complicated to fix( according to previous IR).
7) Network service table
File : S04MNSCN
Table size determined by the following constants :
InitNeSTsize = 65536,
IncreNeSTsize = 65536,
MaxNeSTsize = 393216
Currently supports 3000+ servers.
8) Other dependencies
a) TCP Connections : Require additional 600+ connections.
Number of TCP connections currently available : 6000+
b) Sockets : Require additional ~600 sockets.
c) Ports :
Each VTSERVER process on a system has the following
ports :
1) Request port (CM Port, VTTM only)
2) VTSERVER main port( IOWAIT Port). (CM Port, VTTM & VTAM)
3) LDM port (Procedure server : vt_ldm, messages to LDM, VTAM only).
4) LDM reply port ( Messages from LDM to AM,VTAM only).
5) Standard Signal Port (1) (VTTM & VTAM)
6) Standard Message Port (2) (VTTM & VTAM)
7) Standard Interrupt Port (3) (VTTM & VTAM)
Total number of ports requred : 15,600
(assuming all servers are VTSERVERS)
Number of ports available on system : 32,765
d) Port dictionary (for CM ports)
If all processes are VTTM then ~5500 entries are required in
port dictionary.
If all processes are VTAM then ~2700 entries are required in
port dictionary.
Additional Port dict entries = 5500 - 4000(current max) = 1500
(assuming all servers are VTTM)
Number of Port dictionary entries reqd. : 5500
Number of Port dictionary entries available : To be increased
to 8192.
e) Iowait completors
One NM_IOWAIT_COMPLETOR for each VTSERVER process.
There is an IOWAIT port procedure server and procedure name
"iowait_port_server".This is bound to a PORT wait entry.
DST & other information
Max DST's available on the system = 16,383
Max DST size = 32767( Value of 32764 is
currently used in NS code)
Max Processes on the system = 8190
Max NM IOWAIT COMPLETORS = Dependent on MAX_CMPORTS
f) Max ldev's :
Requirement is 1 ldev for each remote session.
Max ldev's available on 6.0 = 4649
9) Breaks & subsystem breaks :
The local VTSERVER(VTTM) steals breaks & ssbrk from CI.
Breaks are disabled with CI elimination. However subsystem break
is enabled.The subsystem break is handled by application.
Terminal and serial printer i/o limits
The Terminal and Serial Printer subsystem that is accessed via the DTC
is comprised of different software modules or managers. These managers access
the DTC and the operating system via data structures that are used to hold
information and data about the individual connections. Limits to this access
are described below under the different software managers;
Nodal manager
Nodal Manager is a Module in DTS Subsystem. This provides
routing information for connection establishment and implements
the the DCProbe Protocol. It provides non-nailed device
capability for TIO and PAD. NDM also provides the routing
information for DTCM packets and inbound TIO packets. It
maintains lists to perform these tasks.
The Nodal Manager(abbr. NDM) is a LLIO manager and it therefore
has a Port Data Area(abbr. PDA) of a fixed size. The NDM also
has an auxiliary data area(abbr. ADA) with a size which is
dependent on the number of configured devices and AVESTA boxes.
Neither the PDA nor the ADA is frozen in memory.
The following is a measure of the size of NDM Routing Tbl object:
MAX_DEVS = 4649 + 520 (MAX DEVS + MAX BOX ENTRIES(DTCM)
Maximum number of entries in routing table = 5170
Maximum number of entries in dtcm_port_tbl (kso) = 512
Limits configurable from dcc/NMMGR with regards to dts:
Max. No.of DTCs : 400 (NMCONFIG file limit)
The above value is being changed to support DTS in 5.5 from 120.
Max. No of Ldevs : 4649
This accounts to the number of devices configured through NMMGR.
Max No. of Classes : 2000 (Validation Performance limit)
The utility program NMMGR.PUB.SYS will not allow a user to
configure more than 4649 terminals (connected via DTCs). This
value was chosen to be 30 less than the maximum number of
devices. Being able to configure 4649 terminals does not mean
that MPE will support 4649 sessions.
Serial printers are also configured as terminals using NMMGR.
The total number of serial printers and terminals cannot exceed
4649. The maximum number of serial printers that is supported
varies, depending on the type and the system.
Although it is possible to configure more than 2500 terminal I/O
devices, neither the inactive sessions nor the active sessions
should exceed 2500.
Buffers:
Two buffer pools are created during system configuration
One for Inbound and the other for Outbound per system.
Inbound Buffers Max = 400(Performance Limit)
Two 256 bytes buffers per ldev will be used.
Outbound Buffers Min = 64(Max limited by BFM ??)
The exact formula for determining the number of buffers in this
pool is still to determined, but the total space is used by the
pool is expected to be much smaller than the space used by all
the outbound buffer pools in previous releases(<4.0) This pool
will be used by for all outbound packets generated at any level
in the driver.
For each session that is active, there is a per/session limit of 24 data
output buffers that can be allocated at one time. This is to prevent one
greedy process from allocating all of the output buffers that are shared
among all DTC terminal and printer devices.
Other dependencies:
- Ports - System limit is 32765
- Processes - System limit is 8190
Telnet limits
Maximum no. of Telnet options which can be negotiated = 255. This
is defined by the Telnet spec and is not a limitation due to the MPE
implementation.
Maximum buffer size = 4096 (Performance limit)
Maximum logical buffer pools = 8192 (Performance limit)
Maximum no. of buffers per logical buffer pool allowed = 32767
(Performance limit)
Maximum no. of telnet connections is limited by various factors.
1. No. of ldevs on the system
Each connection requires an ldev.
2. No. of tcp connections supported
Telnet runs on top of tcp. Each Telnet connection requires one
TCP connection
3. No. of tcp sockets
One socket record is associated with every telnet connection.
4. No. of sessions supported
One session will be created for one connection.
5. No. of PTID inbound buffers = 2048.
Each connection will have one PTID inbound buffer cached.
Thus, at most there can be 2048 active Telnet connections at any one time.
|