The call to the ISAPI function WriteClient should have a reasonable large buffer for high latency links, because IIS waits for the data to get ACKed before sending more data. The actual implementation uses only an 8k buffer for sending to the browser. It would be very helpful to have the buffer size configurable in the worker config file. The buffer size should be higher than the TCP window (bandwidth x delay product). There are various definitions for buffer sizes. In this case the DEF_BUFFER_SZ in jk_msg_buff.h is probably the interesting one. jk_msg_buff.h:#define DEF_BUFFER_SZ (8 * 1024) jk_ajp12_worker.c:#define READ_BUF_SIZE (8*1024) jk_ajp13.h:#define AJP13_READ_BUF_SIZE (8*1024) jk_ajp14.h:#define AJP14_READ_BUF_SIZE (8*1024) jk_sockbuf.h:#define SOCKBUF_SIZE (8*1024) jk_status.c:#define HUGE_BUFFER_SIZE (8*1024) jk_util.c:#define HUGE_BUFFER_SIZE (8*1024)
Changing to an enhancement request. Ulrich, as you can see it has already been >4 months since this issue has been opened, so the chances of this being implemented quickly are slim. If you have a patch ready, please attach it to this issue and we'll gladly evaluate/commit it.
The output performance can probably be enhanced with the new registry key in Windows2003SP1 MaxBufferedSendBytes: http://support.microsoft.com/default.aspx?scid=kb;en-us;906977 However, it would be better to have the buffers in JK configurable also.