bdp.sh 590 B

12345678910111213141516
  1. #!/bin/bash
  2. Bandwidth="${1:-1000}" # MB
  3. RTT="${2:-60}" # ms
  4. BDP=`echo "${Bandwidth} ${RTT}" |awk '{printf "%d", ($1 * $2) * ((1024 * 1024) / (1000 * 8))}' 2>/dev/null`
  5. [ -n "$BDP" ] && [ "$BDP" -gt 0 ] || exit 1
  6. sysctl -w net.core.optmem_max="${BDP}"
  7. sysctl -w net.core.rmem_default="${BDP}"
  8. sysctl -w net.core.wmem_default="${BDP}"
  9. sysctl -w net.core.rmem_max="${BDP}"
  10. sysctl -w net.core.wmem_max="${BDP}"
  11. sysctl -w net.ipv4.tcp_rmem="4096 87380 ${BDP}"
  12. sysctl -w net.ipv4.tcp_wmem="4096 16384 ${BDP}"
  13. sysctl -w net.ipv4.tcp_window_scaling=1
  14. sysctl -w net.ipv4.route.flush=1