The sizes of TCP send and receive windows that work well
for one application might not work well for another application, even
for another Tivoli® Storage
Manager application.
Finding the correct balance for the window sizes between the server
and the client is also important. For example, if you reduce the
TCPWINDOWSIZE option
on the client from 2000 to 63 and set the option on the server to
1024, slower backup performance is likely the result for the following
reasons:
- Tivoli Storage
Manager uses
the TCPWINDOWSIZE to configure both the send
buffer size and the receive buffer size. Thus on the client, the send
buffer size is 63 KB.
- The maximum number of unacknowledged bytes that can be sent is
limited by the smaller of the send buffer size and the receive window
size that is communicated by the receiving system. Therefore, although
the receiver (Tivoli Storage
Manager server)
has a window size of up to 1024 KB, the effective window size is 63
KB.
For backup operations to the Tivoli Storage
Manager server,
typically the server takes in data fast enough so that larger TCP
receive windows do not cause the window size to become zero. If the
server takes in data fast enough, larger window sizes can improve
performance, and smaller window sizes can decrease performance.
Restore operations by a backup-archive client have different characteristics
than restore operations by a
Tivoli Storage
Manager for Virtual Environments client.
The backup-archive client performs the following actions for a restore
operation:
- The backup-archive client reads data that is sent by the Tivoli Storage
Manager server from
the TCP receive buffer.
- The backup-archive client writes the data directly to files on
disk.
If this write operation is slow and the Tivoli Storage
Manager server sends
data faster than the client can write it, the TCP receive buffer becomes
full. When the TCP receive buffer becomes full, the receiver advertises
a zero window size more frequently and the operation slows.
- The client repeats steps 1 and 2 until all data is restored.
Typically, the restore operation by a
Tivoli Storage
Manager for Virtual Environments client
can be slower than a restore operation by a backup-archive client
because of the operations that occur for writing the data. The
Tivoli Storage
Manager for Virtual Environments client
performs the following actions for a restore operation:
- The Tivoli Storage
Manager for Virtual Environments client
reads data that is sent by the Tivoli Storage
Manager server from
the TCP receive buffer.
- The Tivoli Storage
Manager for Virtual Environments client
writes the data to the vStorage API. Then, more operations and resources
might be required, including communications with VMware, VMware processing
of the data, and allocation of new blocks as the virtual machine disk
(VMDK) grows.
If this write operation is slow and the Tivoli Storage
Manager server sends
data faster than the client can write it, the TCP receive buffer becomes
full. When the TCP receive buffer becomes full, the receiver advertises
a zero window size more frequently and the operation slows.
- The Tivoli Storage
Manager for Virtual Environments client
repeats steps 1 and 2 until all data is restored.
In step 2,
the Tivoli Storage
Manager for Virtual Environments restore
operation has more possible operations and might need more resources
than a restore operation by a backup-archive client. Therefore, a
larger receive window size is more likely to cause the TCP receive
window size to become zero for the Tivoli Storage
Manager for Virtual Environments restore
operation. When both Tivoli Storage
Manager for Virtual Environments and the
backup-archive client are in use on a system, you must find a window
size that balances the needs of the two types of operations. For example,
in one case a window size of 1008 gave better overall throughput for
such a system.