Check out the new USENIX Web site. next up previous
Next: HTTP Header-based Connection Control Up: Experimental Results Previous: Prioritized Listen Queue: Simple

Combining Policing and Priority

To prevent starvation, low priority requests need to have some minimum number reserved slots in the listen queue so that they are not always preempted by a high priority request. However, reserving slots in the listen queue arbitrarily could cause a high priority request to find a full listen queue, which would in turn cause it to be aborted after its 3-way handshake is completed. To avoid starvation with fixed priorities, we combine the listen queue priorities with SYN policing to give preferred clients higher priority, but limiting their maximum rate and burst, thereby, implicitly reserving some slots in the queue for the lower priority requests.

Table 3 shows the results for experiments with three sets of Webstone clients with different priorities and rate control of the high priority class. The lower priority class has 30 Webstone clients while the high priority class has 150 Webstone clients spread over three different hosts. With no SYN policing of the clients in the high priority class, the two low-priority clients are completely starved. Table 3 shows that rate limiting the clients in the high priority class to 300 conn/sec prevents starvation; the medium and low priority clients achieve a throughput of 78.6 and 4.1 conn/sec respectively.


{\tablename} 3: TCP SYN policing of a high-priority client to avoid starvation of other clients.
Throughput (conn/sec) of each priority class
client (rate, burst) limit of high priority
priority none (300,300) (200,200)
high 381 306 196
medium 0 78.6 180
low 0 4.1 13


next up previous
Next: HTTP Header-based Connection Control Up: Experimental Results Previous: Prioritized Listen Queue: Simple
Renu Tewari
2001-05-01