Rethinking Buffer Management in Data Center Networks
数据中心面临的挑战:同时提供
low latency for short flows
high throughput for long flows
high burst tolerance
提出了一个buffer management 策略来解决这些挑战。
popular applications such as web search,advertising and recommendation systems 要求低延迟和高吞吐量。不幸得是,在现有TCP部署的数据中心中,延迟敏感的短流可能高于最优延迟的好几个数量级。长短流混合导致的,长流和短流共同竞争共享的网络资源(link capacity and switch buffers)。
MulBuff uses three key design principles:
1.将长流和短流分开进入不同的分开缓冲区;
2.根据流的要求,控制缓冲区的大小;
3.从缓冲区调度包来满足不同流等级的目标;
Buffer Organization:the average flow completion time (AFCT) with TCP for two
buffering policies as a function of network load. Observe that having
a single common buffer for both short and long flows significantly
increases the AFCT. This happens because of the increased
queuing delays caused by long flows’ packets filling up the buffer.
On the other hand, using multiple buffers isolates the impact of
long flows on short flows leading to lower AFCTs.
Scheduling: Allocating fixed capacities to queues can degrade
performance when more flows get mapped to one queue compared
to the other or when flows have different performance requirements
(e.g., to minimize completion times, short flows should be prioritized).
Thus to meet different flow-level objectives (e.g., minimize
FCTs, fair sharing), each queue should be allocated capacity proportional
to the number of ongoing flows and operator assigned
weights. Figure shows the AFCT for processor sharing (PS)
across queues and weighted processor sharing (WPS) as a function
of load. Observe that FCTs increase rapidly with load under PS.
This happens because PS assigns equal capacity to both the queues
irrespective of the number of flows in each queue, which causes the
FCT of short flows to increase. However, with WPS, as rates are
assigned based to the number of flows in each queue, it results in a
graceful increase in FCT.
The size of a buffer plays a key role in meeting the
requirements of flows. For instance, latency-sensitive short flows
often suffer TCP retransmission timeouts due to synchronized flow
arrivals. To prevent these timeouts and achieve a bounded loss rate,
requires apportioning a certain amount of buffer space for each flow
. Thus MulBuff sizes buffers proportional to the number of flows
for the short flow queue. For long flows to fully utilize the allocated
capacity, the buffers must be large enough to prevent any queue
underflow. Consequently, MulBuff sets the buffer size for the long
flow queue to the bandwidth-delay product (BDP). Scenario C in
Figure compares the use of static and dynamic buffer sizing
strategies. The static buffers setup uses BDP buffers for the long
flows and (250-BDP)KB of buffer for the short flows. The other
setup uses dynamic buffering for the short flow queue (for every
new flow, the buffer size is increased by three packets and when
a flow departs, it is decreased by three packets and the maximum
size is capped at (250-BDP) KB. For these two setups, Figure
shows the AFCT results as a function of the number of senders in
an ensuing incast. Observe that using dynamic buffering leads to
improved FCTs especially when the number of senders are small
as dynamic buffering helps in keeping small queues.