Network Adapter Settings for Maximizing throughput

Advanced ethernet adapter driver settings are extremely configurable finding sensible values can be tricky without testing the connection. This post explains what each setting means and lists recommended values that will maximise your home network’s throughput and minimise CPU overhead (based on my own experience.) A maximum transfer rate of 114Mb/s was achieved with these settings on a 1 Gigabit connection. <!–more–> This is quite impressive considering the theoretical maximum for these connections is 125Mb/s. My computers use different types of Ethernet adapters (Realtek and Intel) and the terminology is different between these two models but I try my best to accommodate for both vendors.

1 Adaptive Inter-Frame Spacing (Intel)

Recommended SettingDisabled
Effect on Throughputnegative, in quiet networks
Effect on CPU Utilisationnone

This introduces a time gap between packages sent into the network to help compensate for excessive packet collisions on the network. This would only be an issue on large networks (no home network would ever need this, trust me.) Only one computer can send data across a network at a time and TCP uses multiplexing protocols to decide which computer and for how long they get to send. If multiple computers send packets at the same, they collide on the Ethernet line which causes them to corrupt. This is why time gaps between sent packets could improve performance on very busy networks. The effect is negligible on home networks.

2 Enable PME

Recommended SettingDisabled
Effect on Throughputnone
Effect on CPU Utilisationnone

The setting is in brackets because it is really up to you to decide if you need this feature. PME stands for Power Management Event and the feature wakes up your computer on receipt of a signal from the network.


Advertisement Begins

Advertisement End


3 Energy Efficient Ethernet

Recommended SettingDisabled
Effect on Throughputnegative
Effect on CPU Utilisationpositive

If you favour performance over energy efficiency then turn any energy saving features off. This feature may be called “Advanced EEE” (Energy Efficient Ethernet) for Realtek Ethernet Adapters

4 Flow Control

Recommended SettingRx & Tx Enabled
Effect on Throughputpositive, reduces packet loss
Effect on CPU Utilisationpositive, as fewer packets are wrapped and sent

It is a really good idea to enable this. Flow control allows the receiving device to tell the sending device that it is struggling to keep up with all the incoming packets. This allows the sender to slow down and therefore reduce the amount of lost and timed out packets being sent through the network. Disabling this would mean that TCP re-transmits timed out and lost packets as the sender didn’t receive an ACK for those packets. This means that there are now even more packets in the network and the receiving host has even more incoming packets to process. There are advantages and disadvantages to enabling this setting. If you are a flow control expert please correct me in the comments and I will append your advise.

5 Gigabit Master Slave Mode

Recommended SettingAutomatic
Effect on Throughputnone (negative is both hosts have same mode or the connection is 10/100Mbps)
Effect on CPU Utilisationnone

Multi-port devices such as routers are automatically assigned Master mode. Leave Auto Detect to let the network adapters figure this out by themselves (based on the IEEE 802.3ab standard.) If a device is forced to master mode and connects the another Ethernet adapter in master mode, the connection can either disconnect or downshift to 100Mbps. If you are experiencing slow connections, this should be a setting to change you should keep an eye on. If in doubt, use the recommended setting.

6 Green Ethernet (Realtek)

Recommended SettingEnabled
Effect on Throughputnone
Effect on CPU Utilisationnone

When enabled, this Realtek adapter feature senses the length of the plugged in Ethernet cable and adjusts the voltage of the output signal accordingly. This should have no effect on CPU and network throughput and it saves energy.

7 Interrupt Moderation

Recommended SettingEnabled
Effect on Throughputnone
Effect on CPU Utilisationnone

Interrupt moderation, when enabled, allows you to set an interrupt moderation rate which determined how frequently, the system stops performing everyday tasks to focus on processing incoming or outgoing packets.

8 Interrupt Moderation Rate

Recommended SettingAdaptive
Effect on Throughputhigher rate, more throughput
Effect on CPU Utilisationhigher rate, more CPU usage

Sets the rate at which the Ethernet adapter interrupts the system to perform networking related tasks (such as processing incoming and outgoing packets). A lower rate makes the system respond to new packets quicker but may reduce the performance of other applications running on the system. A larger value implied the adapter interrupts the system less frequently. This makes the system more responsive and this setting is especially useful for sending and receiving large amounts of data.

9 IPv4 Checksum Offload

Recommended SettingRx & Tc Enabled
Effect on Throughputnone
Effect on CPU Utilisationpositive

Offloading checksum calculation to hardware components is always a good idea to relief the processor from having to do that work. Same goes for TCP and UDP Checksum Offload (IPv4 and IPv6).

10 Jumbo Packet (MTU)

Recommended Setting[9014 Bytes]
Effect on Throughputpositive
Effect on CPU Utilisationpositive

Jumbo packet increase the payload size per packet sent across the network, thereby reducing TCP/IP overhead and CPU utilisation. Enable this only if your connection is 1Gigabits per second and all devices on your network support this feature. Also make sure to set the Jumbo Frame size to the same value across all your devices. In my case 9014bytes is the largest value all of my networking hardware supports. Jumbo Frames are implemented differently across different vendors, so if you run into problems try disabling this before tweaking other settings.

11. Large Send Offload V2 (IPv4) and Large Send Offload V2 (IPv6)

Recommended SettingRecommended Setting: Disabled
Effect on Throughputnegative
Effect on CPU Utilisationnegative

Crutledge explains this concept beautifully in his post Large Send Offload and Network Performance (A good read!). The idea is that the TCP/IP software stacks buffers data messages before sending them to the Ethernet adapter. The adapter itself then segments it into smaller chunks that fit into the frame size (normally 1500bytes, or, if you set Jumbo Frames, they will be that size instead.) using an algorithm implemented in its hardware (super fast!).


Affiliate Content Start

Affiliate Content End


Crutledge then explains that this frees up CPU “from having to handle segmenting of large TCP messages into smaller packets”.

He goes on to explain that problems start because different network devices have to agree on the same frame size.

If a switch does not support the Jumbo Frame Size it silently drops the frame. The idea is that without the buffering introduced by LSO, smaller packets would be sent into the network that is more likely to be accepted by routes and switched because of their standard size. To quote him again, “And this is where a performance enhancement feature becomes a performance degradation nightmare”.

I encourage you to read his article (it’s relatively short and concise) to find out more about this.


Kitchen Multi-Timer Pro

Now you’re cooking

Multi Timer Pro is your ultimate meal prep companion, keeping track of multiple cooking times and making adjustments on the fly. Give it a try today and become a better home cook!


12. Locally Administered Address

Recommended SettingDisabled
Effect on Throughputnone
Effect on CPU Utilisationnone

This allows you to set a static IP address for this machine. I leave this disabled to assign IP’s automatically. My router at home does a good job of assigning the same IP based on MAC addresses anyway.

13. Log Link State Event

Recommended SettingDisabled
Effect on Throughputnone
Effect on CPU Utilisationnegative

When enabled the Ethernet adapter will log all state changes in a file. In a home network, I don’t see any reason why you would want to read those logs. To reduce CPU overhead (however small that may be) I would just disable this feature.


Advertisement Begins

Advertisement End


14. Maximum Number of RSS Queues

Recommended Setting2 Queues
Effect on ThroughputUnknown to me
Effect on CPU UtilisationUnknown to me

15. Packet Priority & VLAN

Recommended SettingPacket Priority & VLAN Enabled
Effect on ThroughputUnknown to me
Effect on CPU UtilisationUnknown to me

16. Protocol ARP Offload

Recommended Settingenabled
Effect on ThroughputUnknown to me
Effect on CPU UtilisationUnknown to me

17. Protocol NS Offload

Recommended SettingEnabled
Effect on ThroughputUnknown to me
Effect on CPU UtilisationUnknown to me

MY MISSION

This blog started nearly 10 years ago to help me document my technical adventures in home automation and various side projects. Since then, my audience has grown significantly thanks to readers like you.

While blog content can be incredibly valuable to visitors, it’s difficult for bloggers to capture any of that value – and we still have to work for a living too. There are many ways to support my efforts should you choose to do so:

Consider joining my newsletter or shouting a coffee to help with research, drafting, crafting and publishing of new content or the costs of web hosting.

It would mean the world if gave my Android App a go or left a 5-star review on Google Play. You may also participate in feature voting to shape the apps future.

Alternatively, leave the gift of feedback, visit my Etsy Store or share a post you liked with someone who may be interested. All helps spread the word.

BTC network: 32jWFfkMQQ6o4dJMpiWVdZzSwjRsSUMCk6

18. Receive Buffer MAX

Recommended Setting512
Effect on ThroughputUnknown to me
Effect on CPU UtilisationUnknown to me

19. Receive Side Scaling

Recommended SettingEnabled
Effect on Throughputnone
Effect on CPU Utilisationnone

Recommended Setting: Disabled Effect on Throughput: Effect on CPU Utilisation:

This involves the distribution of incoming network processing across multiple processor cores. For example, multiple TCP connections are created to load different elements on a website. These connections are distributed across different cores to improve performance. Does not affect throughput, only CPU utilisation. Network benchmark tools may show that total performance decreases when this tool is enabled. Users who care about CPU utilisation are encouraged to enable this feature, otherwise, leave it disabled.

20. Reduce Speed on Power Down

Recommended SettingDisabled
Effect on Throughputnegative
Effect on CPU Utilisationnone

If you are concerned about energy consumption over performance, enable this feature. Otherwise disable it.

21. Speed & Duplex

Recommended Setting1.0 Gbps Full Duplex
Effect on Throughputpositive
Effect on CPU Utilisationnegative

This has got to be the biggest throughput improvement of all. Assuming all of you networking hardware supports 1.0 Gigabits per second this will increase your throughput from 12.5Mb/s (on 100Gbps connection) to an impressive 125Mb/s. These max values are theoretical. On my network, the max throughput I was able to achieve was 114Mb/s on a single cable.


Advertisement Begins

Advertisement End


22. System Idle Power Saver

Recommended Settingdisabled
Effect on Throughputnegative
Effect on CPU Utilisationnegative

Anything power-saving related is going to negatively affect performance.

23. TCP Checksum Offload (IPv4) and TCP Checksum Offload (IPv6)

Recommended SettingRc & Tx Enabled
Effect on Throughputnone
Effect on CPU Utilisationpositive

It’s always a good idea to offload calculations to hardware whenever possible. Hardware is super fast.


Affiliate Content Start

Affiliate Content End


24. Transmit Buffers

Recommended Setting128
Effect on ThroughputUnknown to me
Effect on CPU UtilisationUnknown to me

25. UDP Checksum Offload (IPv4) and UDP Checksum Offload (IPv6)

Recommended SettingRc & Tx Enabled
Effect on ThroughputUnknown to me
Effect on CPU UtilisationUnknown to me

26. Wait For Link

Recommended SettingAuto Detect
Effect on Throughputnone
Effect on CPU Utilisationnone

27. Wake Settings and 28. Wake on Link Settings

These settings are really up to you. If you want to wake your computer using magic packets then enable these settings.

Wake computer on incoming connection.

29. Wake on Magic Packet

Wake computer on incoming magic packet.

30. Wake on Pattern Match

Wake computer on pattern match.

Conclusion

In this post, we covered 30 network adapter settings, their effect on network data throughput and CPU utilisation.

Related posts

Troubleshooting Intermittent WiFi Issues: Solving “Host Unreachable, No IP Route” Error on Android and NUC Devices

How to Optimize Docker Builds with Nexus OSS for Apt, Maven, Docker and NPM Dependencies

Troubleshooting Asus Xonar U7: Blinking LED and Connectivity Issues

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Read More