Socket Buffer Calculator
Size per-socket send and receive buffers from the BDP, and total the kernel memory a server needs.
About Socket Buffer Calculator
A socket buffer has to hold one BDP of unacknowledged data, plus the kernel's own per-packet structures — which is why Linux treats the value in tcp_rmem as including roughly a 2× overhead. Multiplying by the connection count gives the memory the box must have spare. Buffers set too small throttle every transfer to window ÷ RTT; set too large across thousands of sockets they exhaust kernel memory and trigger connection resets under load.
Formulas
Socket Buffer
buffer = BDP × overhead factor, where BDP = bandwidth × RTT ÷ 8.
- BDP
- Bytes in flight for one socket
- overhead factor
- Linux charges roughly 2× the payload for skb bookkeeping
Server memory footprint
total kernel memory = per-socket buffer × concurrent sockets
- concurrent sockets
- Established connections held at peak
Worked example
With the default values below, Socket Buffer Calculator returns Buffer Per Socket of 4 MiB. Change any input above and every figure here is recalculated in your browser.
Inputs used
- Bandwidth per socketminimum 0.1 Mbit/s
- 200 Mbit/s
- Round-trip timeminimum 0.1 ms
- 80 ms
- Concurrent socketsminimum 1 sockets
- 500 sockets
- Kernel overhead factoraccepts 1–4 ×
- 2 ×
Results
- Buffer Per Socket
- 4 MiB
- Bandwidth Delay Product
- 2 MiB
- Suggested tcp_rmem Max (power of two)
- 4 MiB
- Total Buffer Memory
- 2 GiB
- Total Buffer Memory
- 1,907.3 MB
Step by step
- 1Values used
- 2Socket Buffer
- 3Server memory footprint
- 4Buffer Per Socket= 4,000,000
- 5Bandwidth Delay Product= 2,000,000
- 6Suggested tcp_rmem Max (power of two)= 4,194,304
- 7Total Buffer Memory= 2,000,000,000
- 8Total Buffer Memory= 1,907.3 MB
Assumptions and limits
- The result is derived only from the 4 inputs listed above. Anything not among them is not part of the calculation.
- In particular, this calculator does not take inflation, tax, fees or charges or compounding frequency into account.
- Figures are rounded for display to 1 decimal place, so totals built from several rounded parts can differ slightly from the unrounded arithmetic.
How these calculators are built and tested is described on the Methodology page. If a figure looks wrong, please report it.
Frequently Asked Questions
How is Socket Buffer calculated?
buffer = BDP × overhead factor, where BDP = bandwidth × RTT ÷ 8. A socket buffer has to hold one BDP of unacknowledged data, plus the kernel's own per-packet structures — which is why Linux treats the value in tcp_rmem as including roughly a 2× overhead. Multiplying by the connection count gives the memory the box must have spare.
Why does Socket Buffer matter?
Buffers set too small throttle every transfer to window ÷ RTT; set too large across thousands of sockets they exhaust kernel memory and trigger connection resets under load.
What values do I need to enter?
This calculator takes 4 inputs: Bandwidth per socket, Round-trip time, Concurrent sockets, Kernel overhead factor. The pre-filled defaults are a realistic starting point — replace them with figures from your own environment for a result you can act on.
Related Calculators
You might also need
- TCP Window Size CalculatorCommonly used together
- Bandwidth Delay Product CalculatorCommonly used together
- Connection Capacity CalculatorCommonly used together
- Packets Per Second CalculatorAlso in TCP & Transport
- Buffer Size CalculatorAlso in TCP & Transport
- Connection Timeout CalculatorAlso in TCP & Transport
