
#!/bin/bash
# original version received from Paul Burgess @ JB

echo "Optimise TCP parameters"

# enable timestamps, window scaling
echo 1 > /proc/sys/net/ipv4/tcp_timestamps
echo 1 > /proc/sys/net/ipv4/tcp_window_scaling

echo 1 > /proc/sys/net/ipv4/tcp_moderate_rcvbuf

# Mark5-637 has 256MB of memory...
# buffers 4k 4M 60M
# (calc example: 1.0 Gbps/8 * 100ms delay = 125 MByte)
echo 60000000 > /proc/sys/net/core/wmem_max
echo 60000000 > /proc/sys/net/core/rmem_max
echo 4194304 > /proc/sys/net/core/rmem_default
echo 4194304 > /proc/sys/net/core/wmem_default
echo "4096 4194304 60000000" > /proc/sys/net/ipv4/tcp_rmem
echo "4096 4194304 60000000" > /proc/sys/net/ipv4/tcp_wmem

# echo "Optimise ethernet queue"
/sbin/ifconfig tgig0 txqueuelen 20000
/sbin/ifconfig tgig1 txqueuelen 20000

# increase backlog ("rxqueuelen"):
echo 25000 > /proc/sys/net/core/netdev_max_backlog

# discard metrics of old connections:
echo 1 > /proc/sys/net/ipv4/tcp_no_metrics_save

# just in case:
echo 0 > /proc/sys/net/ipv4/ip_forward

# enable jumbo frames on the 10G nic
/sbin/ifconfig tgig0 mtu 9600
/sbin/ifconfig tgig1 mtu 9600


