DRFQ: Multi-Resource Fair Queueing for Packet Processing
Ali Ghodsi1,3, Vyas Sekar2, Matei Zaharia1, Ion Stoica1
1UC Berkeley, 2Intel ISTC/Stony Brook, 3KTH
1
DRFQ : Multi-Resource Fair Queueing for Packet Processing Ali Ghodsi - - PowerPoint PPT Presentation
DRFQ : Multi-Resource Fair Queueing for Packet Processing Ali Ghodsi 1,3 , Vyas Sekar 2 , Matei Zaharia 1 , Ion Stoica 1 1 UC Berkeley, 2 Intel ISTC/Stony Brook, 3 KTH 1 Increasing Network Complexity Packet processing becoming evermore
1UC Berkeley, 2Intel ISTC/Stony Brook, 3KTH
1
2
3
4
5
6
7
8
Flow 2 Flow 1 100% 50% 0% CPU NIC 66% 33% 33% 33%
9
CPU NIC 0% 100% 50%
48%
CPU NIC 0% 100% 50%
33%
flow 1 flow 2 flow 3
33%
10
11
13
14
– Dominant share is the user’s share of her dominant resource
– ”Equalize” the dominant share of all users Total resources: <16 CPUs, 16 GB mem> User 1 demand: <3 CPU, 1 GB mem> dom res: CPU User 2 demand: <1 CPU, 4 GB mem> dom res: mem
15
User 2 User 1 100% 50% 0% CPU mem 3 CPUs 12 GB 12 CPUs 4 GB 66% 66%
16
17
18
19
20
21
22
– Flow 1 alternates <1,2> and <2,1> packet processing – Flow 2 uses <3,3> packet processing time
23
24
25
26
27
28
29
30
31
32
33
34
35
– The time the packet would finish if it was always dedicated a predefined fixed 1/n of the link – Schedule packets in order of finish time
– e.g. 10 kbps router, configured for 10 flows to serve 1kbps – Flow A with 1kbit packets gets tags, 1, 2, 3, 4, 5, … – But if only A is active, router done with packet 100 at time 10 – Packet 100 has virtual clock 101 – New flow B becomes active at time 10, with tags 11, 12, 13,… – Flow A punished until flow B catches up to tag 100
– A flows share of resources should be independent of its share in the past
37
– Amount of service a flow receives during one real time unit depends on the number of backlogged flows – Amount of service a flow receives during one virtual time unit is invariant – V(t) progresses faster when fewer flows active, vice versa
– Finish time of a packet is start time plus length of packet – For a backlogged flow, the start time of a packet is equal to finish time of previous packet – Start time of the first packet in a burst equals the start time of the packet currently serviced
38
j,k) = S(pi j, k) + L(pi j, k)
j,k) = max( V(t, k), F(pi j-1, k) )
j) = maxk{ F(pi j, k) }
j) = maxk{ S(pi j-1, k) }
39