Chapter 36. Configuring ethtool coalesce settings
Using interrupt coalescing, the system collects network packets and generates a single interrupt for multiple packets. This increases the amount of data sent to the kernel with one hardware interrupt, which reduces the interrupt load, and maximizes the throughput.
36.1. Coalesce settings supported by NetworkManager
You can set the following ethtool
coalesce settings using NetworkManager:
-
coalesce-adaptive-rx
-
coalesce-adaptive-tx
-
coalesce-pkt-rate-high
-
coalesce-pkt-rate-low
-
coalesce-rx-frames
-
coalesce-rx-frames-high
-
coalesce-rx-frames-irq
-
coalesce-rx-frames-low
-
coalesce-rx-usecs
-
coalesce-rx-usecs-high
-
coalesce-rx-usecs-irq
-
coalesce-rx-usecs-low
-
coalesce-sample-interval
-
coalesce-stats-block-usecs
-
coalesce-tx-frames
-
coalesce-tx-frames-high
-
coalesce-tx-frames-irq
-
coalesce-tx-frames-low
-
coalesce-tx-usecs
-
coalesce-tx-usecs-high
-
coalesce-tx-usecs-irq
-
coalesce-tx-usecs-low
36.2. Configuring an ethtool coalesce settings by using nmcli
You can use NetworkManager to set ethtool
coalesce settings in connection profiles.
Procedure
For example, to set the maximum number of received packets to delay to
128
in theenp1s0
connection profile, enter:# nmcli connection modify enp1s0 ethtool.coalesce-rx-frames 128
To remove a coalesce setting, set it to a null value. For example, to remove the
ethtool.coalesce-rx-frames
setting, enter:# nmcli connection modify enp1s0 ethtool.coalesce-rx-frames ""
To reactivate the network profile:
# nmcli connection up enp1s0
Verification
Use the
ethtool -c
command to display the current offload features of a network device:# ethtool -c network_device
Additional resources
36.3. Configuring an ethtool coalesce settings by using the network RHEL System Role
You can use the network
RHEL System Role to configure ethtool
coalesce settings of a NetworkManager connection.
When you run a play that uses the network
RHEL System Role, the system role overrides an existing connection profile with the same name if the value of settings does not match the ones specified in the play. Therefore, always specify the whole configuration of the network connection profile in the play, even if, for example the IP configuration, already exists. Otherwise the role resets these values to their defaults.
Perform this procedure on the Ansible control node.
Prerequisites
- You have prepared the control node and the managed nodes
- You are logged in to the control node as a user who can run playbooks on the managed nodes.
-
The account you use to connect to the managed nodes has
sudo
permissions on them. - The managed nodes or groups of managed nodes on which you want to run this playbook are listed in the Ansible inventory file.
Procedure
Create a playbook file, for example
~/configure-ethernet-device-with-ethtoolcoalesce-settings.yml
, with the following content:--- - name: Configure the network hosts: managed-node-01.example.com tasks: - name: Configure an Ethernet connection with ethtool coalesce settings include_role: name: rhel-system-roles.network vars: network_connections: - name: enp1s0 type: ethernet autoconnect: yes ip: address: - 198.51.100.20/24 - 2001:db8:1::1/64 gateway4: 198.51.100.254 gateway6: 2001:db8:1::fffe dns: - 198.51.100.200 - 2001:db8:1::ffbb dns_search: - example.com ethtool: coalesce: rx_frames: 128 tx_frames: 128 state: up
Depending on whether it already exists, this playbook creates or updates the
enp1s0
connection profile with the following settings:-
A static IPv4 address -
198.51.100.20
with a/24
subnet mask -
A static IPv6 address -
2001:db8:1::1
with a/64
subnet mask -
An IPv4 default gateway -
198.51.100.254
-
An IPv6 default gateway -
2001:db8:1::fffe
-
An IPv4 DNS server -
198.51.100.200
-
An IPv6 DNS server -
2001:db8:1::ffbb
-
A DNS search domain -
example.com
ethtool
coalesce settings:-
RX frames:
128
-
TX frames:
128
-
RX frames:
-
A static IPv4 address -
Run the playbook:
# ansible-playbook ~/configure-ethernet-device-with-ethtoolcoalesce-settings.yml
Additional resources
-
/usr/share/ansible/roles/rhel-system-roles.network/README.md
file