![]() |
![]() HP OpenVMS Systemsask the wizard |
![]() |
The Question is: I am running DECnet Phase IV, and have noticed that my line counters show "system buffer unavailable" increasing at an alarming rate. The documentation is unclear as to which network and account parameters I should be looking at to correct this. Can you suggest which things I should be looking at? Peter The Answer is : Re: Below... >I am running DECnet Phase IV, and have noticed that my line counters >show "system buffer unavailable" increasing at an alarming >rate. > >The documentation is unclear as to which network and account >parameters I should be looking at to correct this. > >Can you suggest which things I should be looking at? The first item to check would be DECnet Executor Pipeline Quota. $ MCR NCP NCP> sho exec pipeline quota NCP> set exec pipeline quota 4032 NCP> def exec pipeline quota 4032 There are several logical names that can affect DECnet performance, check the setting of: "NETACP$BUFFER_LIMIT" = "131070" "NETACP$ENQUEUE_LIMIT" = "600" "NETACP$EXTENT" = "16384" "NETACP$MAXIMUM_WORKING_SET" = "500" "NETACP$PAGE_FILE" = "25000" These are normally defined in sys$manager:sylogicals.com. (The values above are an example from a local Alpha system) e.g. $ define/system/exec NETACP$BUFFER_LIMIT 131070 The high rate of "system buffer unavailable" could be due to hardware/network problems, or the CPU being very busy at high IPL, so the driver can't get around to servicing interrupts and emptying its buffers. I would encourage you to discuss this your local MCS hardware/software support folks. For some background on why 4032 is a good value for pipeline quota, read on. James :-) DECnet Phase IV performance can be optimized by tuning the number of transmitter buffers to mesh with the speed and window size of the Ethernet receiver. For the majority of LAN based systems, set DECnet Executor Pipeline quota to 4032. For example: $ MCR NCP NCP> set exec pipeline quota 4032 NCP> define exec pipeline quota4032 DECnet Phase IV Executor Pipeline quota usage The DECnet Executor Pipeline quota determines the maximum transmit window size. This is the maximum number of packets that will be transmitted before asking the receiver for an ACK (Implicit flow control). The maximum transmit window size is determined by dividing Pipeline quota by the Executor Buffer size. Although Ethernet packets can be 1498 bytes and FDDI packets can be 4468 bytes, the default DECnet Executor Buffer size is 576. This is independent of the packet size sent on the wire. Given the default of 576 for exec_buffer_size: Max_transmit_window_size = exec_pipeline_quota/exec_buffer_size The initial transmit window size = ((Max_transmit_window_size / 3)*2)+1 From there, the NSP flow control algorithms raise and lower transmit window size between 1 and Max_transmit_window_size. The minimum is 1 buffer, Pipeline quota = 576. The maximum is 40 buffers, Pipeline quota = 23040. Values for Pipeline quota larger than 23040 have no effect. In DECnet Phase IV there are several layers of buffers for Ethernet communication. The Ethernet Adaptor has a pool of buffers. This number is determined by the Adaptor and the driver, and cannot be tuned by a system or network manager. When incoming packets are dropped due to "Insufficient space in the Ethernet Adaptor", or "Insufficient speed of the Ethernet Adapter", you get either "Local Buffer Errors" or "Device Over run Errors". In this case the Ethernet Adapter itself is not fast enough or doesn't have enough onboard memory. This could be caused by design limitations of the adapter itself, or an I/O bound system where the adapter can't get at main system memory fast enough to empty its in ternal buffers. When packets are dropped due to "insufficient buffering" in the driver on the main system then you'll get "system buffer unavailable". This can be due to the CPU being very busy at high IPL, so the driver can't get around to servicing interrupts and emptying its buffers. This can be caused, or aggravated, by the system's total environment, such as memory usage, disk usage, maladjustment of system parameters, runaway applications, CPU speeds, etc.. Since a system or network manager cannot increase the Ethernet Adaptor buffer pool, the only actions that can be taken in this case is to use a different (faster or more buffer space) Ethernet Adaptor on the receiving node, tune the VMS system to best advantage, understand the implications of memory and disk loading, and limit the "bursts" of packets other systems transmit to the the overrun system. For DECnet Phase IV, lowering the EXECUTOR PIPELINE QUOTA on transmitting nodes lowers the number of packets the overrun system needs to handle at a given time making communication smoother and more efficient. The next layer of buffers is a pool of buffers held for DECnet by the Ethernet driver. They specify the length of the line's receive queue. This pool of buffers can be tuned by the system or network manager by adjusting the setting of the LINE RECEIVE BUFFER count in the range of 1 to 32. When a significant user_buffer_unavailable count occurs, packets are being dropped by the Ethernet Driver because DECnet is not processing them fast enough. If the user_buffer_unavailable CIRCUIT counter increments, its because DECnet is not processing packets fast enough. When the user_buffer_unavailable LINE counter increments then it could be any Ethernet application that is not processing packets fast enough. A system or network manager can try to limit the user_buffer_unavailable count by increasing the LINE RECEIVE BUFFER count, or by limiting the "burstiness" of transmission by limiting the EXECUTOR PIPELINE QUOTA of transmitting nodes. The last set of buffers is the window size. DECnet Phase IV provides a 7 buffer (hard coded) receive window per connection (link). This cannot be tuned by the system or network manager. The window size specifies the maximum number of frames that may be received before the data is transferred from system buffers to process buffers. The real limit can be lower. When 2 packets arrive without an associated receive IRP queued then a "backpressure" congestion control message is sent back telling the sending system to "XOFF" the logical link.
|