SRPT Scheduling in Web Servers Amod Jaltade and Aditya Jaltade 18-845, Internet Services, Spring 2014 Today’s web-servers are very busy and handle a very large number of requests. Consequently, their performance under non-trivial load conditions is very important. One of the metrics that can be used to measure server performance is “response-time." The response time of a request depends on a lot of factors, such as server load and scheduling policies. One way to decrease the response times is to let the webserver schedule these requests intelligently. The SYNC project at Carnegie Mellon studied the effect of scheduling requests inside a web-server. Their research claims that scheduling requests for static content using the Shortest-Remaining-Processing-Time first algorithm reduces the mean response time by a factor 2 to 5 under loads greater than 50%, without any significant effect on larger requests. Our study is aimed at verifying these claims. We have implemented the SRPT scheduling mechanism for the Linux kernel. Our implementation consists of a kernel module and an userspace library, and requires minimal changes to the web-server’s code. When enabled, our mechanism ensures that processing of packets for requests with fewer remainingbytes (to be sent) is prioritized over processing for the ones with more remaining-bytes. Our experiments with the tiny web-server indicate that mean response times reduce by a factor of 2 to 3 when the load is greater than 50%, for workloads that follow a heavy-tailed distribution.