This paper proposes a method for improving the performance of Web servers servicing static HTTP requests.
The idea is to give preference to those requests which are quick, or have small remaining processing
requirements, in accordancewith the SRPT (Shortest-Remaining-Processing-Time) scheduling policy.
The implementation is at the kernel level and involves controlling the order in which socket buffers
are drained into the network. Experiments use the Linux operating system and the Apache web server.
All experiments are also repeated using the FlashWeb server. Experiments are run under both trace-based
workloads and those generated by a Web workload generator.
Results indicate that SRPT-based scheduling of connections yields significant reductions in mean response
time, mean slowdown, and variance in response time at the Web server. Most significantly, and
counter to intuition, the large requests are only negligibly penalized (or not at all penalized) as a result of
SRPT-based scheduling.