z/VSE - Group home

POWER PNET TCPIP performance improvement in z/VSE 6.2

  

By Sergey Grimaylo, Martin Walbrühl, and Jens Remus.

VSE/POWER PNET TCP/IP performance has been greatly improved by the PTFs UD54380 and UD54381 for APAR DY47835 "NJE DATA TRANSFER FROM|TO VSE/POWER VIA PNET TCPIP CONNECTION IS LIMITED TO 90KB/SEC FOR EACH CONNECTION". This fulfills RFE 50430 "Increase PNET/TCP throughput". Please note that PNET TCP/IP Secure Sockets Layer (SSL) performance does not yet benefit from this.

Formerly, VSE/POWER Networking (PNET) was limited to transmit data via a PNET TCP/IP connection at about 90 KB per second when using the maximum buffer size. In contrast other Network Job Entry (NJE) transmission protocols like PNET/SNA and RSCS via TCP/IP can exceed 1 MB per second.
With the PTFs for APAR DY47835 applied, the data rate of PNET TCP/IP connections is greatly improved. To accelerate data transfer between PNET TCP/IP nodes by up to 50 times, the system administrator needs to generate the Network Definition Table (NDT) on each system with the new PNODE macro operand SPEED=HIGH for the local node. Specify SPEED=HIGH for the local node (identified by LOCAL=YES) along with the maximum buffer size of 32000 bytes for each directly linked TCP node (i.e. BUFSIZE=32000) to get the most benefit.
Setting SPEED=HIGH increases the data rate as well as the CPU utilization while reducing the transmission time for a unit of data. However, transferring a unit of data requires approximately the same amount of CPU time, regardless of the selected speed setting.

Following is a sample of the PNODE macro invocation to define an NDT entry for the local node with the new operand SPEED=HIGH:

NDTVSE01 PNODE NODE=VSESYS01,LOCAL=YES,SPEED=HIGH

If the SPEED operand is omitted in the PNODE macro invocation for the local node a default setting of SPEED=LOW is assumed. The same applies if a NDT assembled prior to the application of the PTFs is used. With SPEED=LOW the existing former behavior is used.

The PNODE macro is described in the VSE/POWER Administration and Operation manual, chapter Tailoring VSE/POWER, section PNODE Generation Macro for Networking Support. For details on how to code the PNODE macro for local and remote nodes see the subsections Format 1: Defining the Local Node and Format 4: Defining a Directly Linked TCP Node. Note that the manual has not yet been updated with the new SPEED operand as of this writing.

The speed setting of of the currently loaded NDT is displayed in the output of the PDISPLAY PNET command as follows:

PDISPLAY PNET
AR 0015 1C39I COMMAND PASSED TO VSE/OWER
F1 0001 1RB7I ***** NDT NAME = NDTVSE01 ***** LOCAL TCP SPEED = HIGH *****
F1 0001 1RB7I NODE ROUTE1 ROUTE2 AUTH BSIZE APPLID/IPADDR IPPORT SPORT
F1 0001 1RB7I VSESYS01 ----- LOCAL ----- VSESYS01 175 2252

Please note that the reported speed setting might actually not be in effect on the PNET TCP/IP connections. If a NDT with changed speed setting is loaded while the PNET TCP/IP interface is active this setting is not applied in flight.The PDISPLAY command is described in the VSE/POWER Administration and Operation manual, chapter VSE/POWER Operator Commands, section PDISPLAY: Displaying VSE/POWER Status. For PDISPLAY PNET see subsection Format 9: Displaying Network Definition Table Status (NDT).

For a new speed setting to take effect at VSE/POWER run-time:

  1. Stop all PNET TCP/IP connections using PSTOP PNETTCP,EOJ
  2. Stop the PNET TCP/IP interface using PSTOP TCPIP
  3. Load the new NDT and start the PNET TCP/IP interface using PLOAD PNET,<ndt-phasename>
  4. Restart all PNET TCP/IP connections using PSTART PNETTCP, or restart selected PNET TCP/IP connections individually using PSTART PNET,<node-id>

The PSTOP, PLOAD, and PSTART commands are described in the VSE/POWER Administration and Operation manual, chapter VSE/POWER Operator Commands:

Sergey, Martin, and I greatly appreciate your feedback either in the comments or via the z/VSE contact form.

Disclaimer: My posts and opinions are my own.

Comments

Wed November 04, 2020 10:11 AM

Thanks for the improvement, very useful when e.g. transferring big lists. I've always wondered why the speed is so low.