Network switch buffering is typically caused by varying network interface speeds, sudden traffic spikes, or many-to-one traffic transmissions.
The most common problem causing network switch buffering is sudden changes in many-to-one traffic. For example, an application might be hosted on multiple server nodes. If one node simultaneously requests data from the network switches of all the other nodes, all responses should arrive at the network switches at the same time. When this happens, a flood of traffic from all network switches rushes to the requester's network switch port. If the network switch doesn't have sufficient egress buffer, it may drop some traffic or increase application latency. Sufficient network switch buffering can prevent packet loss or network latency caused by low-level protocols.
Modern data center switching platforms address this issue through shared switching buffers on network switches. The network switch has a buffer pool allocated to specific ports. Shared switching buffers vary significantly between vendors and platforms.
Some network switch vendors sell network switches designed for specific environments. For example, some network switches have large buffers suitable for Hadoop environments with many-to-one transmission scenarios. In environments where traffic can be distributed, network switches do not need to deploy buffers at the switch level. Network switch buffers are crucial, but there's no single right answer to how much space a network switch actually needs. A large network switch buffer means the network won't drop any traffic, but it also increases latency-data stored on the switch has to wait before being forwarded. Some network administrators prefer smaller network switch buffers, allowing applications or protocols to handle less traffic. The correct approach is to understand the network switch's traffic patterns for your applications and choose a switch that suits your needs.