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:
36.2. Configuring an ethtool coalesce settings by using nmcli
You can use NetworkManager to set
ethtool coalesce settings in connection profiles.
For example, to set the maximum number of received packets to delay to
enp1s0connection 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
# nmcli connection modify enp1s0 ethtool.coalesce-rx-frames ""
To reactivate the network profile:
# nmcli connection up enp1s0
ethtool -ccommand to display the current offload features of a network device:
# ethtool -c network_device
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.
- 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
sudopermissions 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.
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
enp1s0connection profile with the following settings:
A static IPv4 address -
A static IPv6 address -
An IPv4 default gateway -
An IPv6 default gateway -
An IPv4 DNS server -
An IPv6 DNS server -
A DNS search domain -
- RX frames:
- A static IPv4 address -
Run the playbook:
# ansible-playbook ~/configure-ethernet-device-with-ethtoolcoalesce-settings.yml