Persist the RX/TX NIC buffers settings across a reboot on Centos 7

You can easily verifiy/set the RX/TX NIC buffers using the ethtool utility (run yum install ethtool -y in case you don't have it installed):

 - Verify the settings with -g (to also find the hardware maximums):

ethtool -g p1p1

 - Set with -G  to 4096 (in the above example they were already set at max by me previously, default they were 512):

ethtool -G p1p1 rx 4096 tx 4096

But we may want to make sure these settings persist across reboots. For this we can use the ETHTOOL_OPTS options in our NIC's settings.

First make sure that Network manager is disabled, run chkconfig --list NetworkManager

Then edit your interface configuration with your favorite editor:

vi /etc/sysconfig/network-scripts/ifcfg-p1p1

And add:

(if you do not add this, the ETHTOOL_OPTS will be ignored, also make sure ONBOOT is set to yes).

ETHTOOL_OPTS="-G ${DEVICE} rx 4096 tx 4096"
(this line will set your buffers to desired setting, maximum in this case 4096.)

Save the changes made to the configuration file.

You can quickly check if your settings apply with:

ifdown p1p1 && ifup p1p1 and then ethtool -g p1p1 

Ps. If you want to add multiple options separate them with ;:

ETHTOOL_OPTS="-G ${DEVICE} rx 4096; -G ${DEVICE} tx 4096"