# Do some network tweaks. See https://www.kernel.org/doc/Documentation/networking/scaling.txt for docs.
# Receive Flow Steering (RFS) extends RPS behavior to increase the CPU cache
# hit rate and thereby reduce network latency. Where RPS forwards packets
# based solely on queue length, RFS uses the RPS backend to calculate the
# most appropriate CPU, then forwards packets based on the location of the
# application consuming the packet. This increases CPU cache efficiency.
# Set the value of this file to the maximum expected number of concurrently
# active connections. We recommend a value of 32768 for moderate server
# loads. All values entered are rounded up to the nearest power of 2 in
# practice.
echo 32768 > /proc/sys/net/core/rps_sock_flow_entries
# Set the value of this file to the value of rps_sock_flow_entries divided
# by N, where N is the number of receive queues on a device.
echo 2048 > /sys/class/net/eth0/queues/rx-0/rps_flow_cnt
# Receive Packet Steering (RPS) is similar to RSS in that it is used to
# direct packets to specific CPUs for processing. However, RPS is
# implemented at the software level, and helps to prevent the hardware queue
# of a single network interface card from becoming a bottleneck in network
# traffic.
echo 7 > /sys/class/net/eth0/queues/rx-0/rps_cpus
# Transmit packet steering (XPS) for multiqueue devices. XPS selects a
# transmit queue during packet transmission based on configuration.
echo 7 > /sys/class/net/eth0/queues/tx-0/xps_cpus
# Move IRQ's of ethernet to CPU1/2
echo 1,2 > /proc/irq/40/smp_affinity_list