httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Philip Gladstone <>
Subject Performance of TransmitFile on Windows Servers with 2.0.49
Date Mon, 12 Apr 2004 15:20:16 GMT
I noticed that the performance of TransmitFile (used when EnableSendFile
On on Windows platforms) was significantly worse than EnableSendFile Off.

It turns out that the way that TransmitFile is called is *without* the
TF_WRITE_BEHIND flag. This means that TransmitFile does not complete (or
rather that the socket is not signalled) until *all the data* has been
ack'ed by the client. Windows clients send acks (roughly) every other
data packet, or after a 200ms timeout. Thus, about half the time, the
TransmitFile does not complete until this 200ms timeout has triggered.

This reduces the throughput on high speed networks significantly. On a
100Mbit LAN, the throughput drops from 11MBytes/sec to around

My question is: is there a good reason that the TF_WRITE_BEHIND flag is
not being used?


p.s. If you want to try this, don't use Mozilla as that seems to have
another bug that limits the maximum data transfer rate.
Philip Gladstone                    978-ZEN-TOAD (978-936-8623)
Cisco Systems, Inc                                  Boxboro, MA

View raw message