The Pegasus CIM Server sends and receives several small
packages. With delayed acknowledgment (also known as
Nagle-algorithm) enabled for a TCP socket, small
packets received are not immediately acknowledged, but
the IP stack waits for more data to collect everything
send into a buffer. While helpful for servers that send
single big chunks of data, it slows down round-trip
servers who send many small packets.
It is not sufficient if only the server has the
TCP_NODELAY option set, but it is also required on
client side. On Windows the system default for TCP
sockets is set to delayed acknowledgment, thus has to
be disabled explicitely (by setting TCP_NODELAY).
With the socket option changed in the client the
response times against Pegasus on a z/OS system went
down by more than 200ms, raising the throughput for
small requests (like getinstance) by multiple.
Logged In: YES
user_id=1441457
Added patch that set the socket option after the socket has
been created.
Logged In: YES
user_id=1441457
Added patch that set the socket option after the socket has
been created.
Logged In: YES
user_id=1441457
Found a second occurence of a socket being created without
disabled delayed acknowledge. The server socket created to
receive Indications also should have the TCP_NODELAY set.
Same applies as for first patch, the throughput raised
significant for a test case of a Windows client and a z/OS
Pegasus CIM Server.
Patch for Indication Listener (server part of client)
Logged In: YES
user_id=1363884
Started code review
Logged In: YES
user_id=1363884
Started code review
Logged In: YES
user_id=1363884
Code review positive will be included in next release
Logged In: YES
user_id=1312539
This Tracker item was closed automatically by the system. It was
previously set to a Pending status, and the original submitter
did not respond within 14 days (the time period specified by
the administrator of this Tracker).
Logged In: YES
user_id=1363884
Fixed with 1.2.7