Credit: Ismar Hrnjicevic / How-To GeekA Wi-Fi router can advertise hundreds of MBs, yet your Linux laptop may deliver a fraction of that speed. Before replacing the router, changing channels, or blaming the wireless adapter, there is one Linux setting worth checking.
Linux puts a wireless interface into power-saving mode to optimize battery life. On a laptop, that can make sense when battery life matters more than maximum network performance. The problem is that power-saving behavior can also introduce latency, reduce responsiveness, and, with some wireless hardware and drivers, interfere with achieving the best possible throughput.
Check your actual Wi-Fi configuration first
Do not confuse router ratings with negotiated link speed
Before changing anything, inspect the connection itself. It can be done using:
iw dev

Then check the negotiated connection:
iw dev wlp3s0 link
The output provides details such as signal strength, frequency, channel width, and negotiated RX and TX rates.
For example, a connection might report:
Frequency: 5200 MHz
Channel: 36
Width: 80 MHz
Signal: -35 dBm
RX bitrate: 866.7 Mbit/s
TX bitrate: 390.0 Mbit/s
That number is the PHY link rate, not the speed you will necessarily see in a browser download or speed test. This is important because Wi-Fi introduces protocol overhead, retransmissions, encryption overhead, and other inefficiencies. A connection reporting a PHY rate of 866.7 Mbit/s cannot normally deliver that exact figure as usable application throughput. The same command also shows the channel width and frequency being used, which helps establish how the wireless connection is actually configured.
In my case, the Intel Wireless-AC 8265 is connected to the fiber network on the 5GHz band at 5200MHz, using an 80MHz channel. The signal is strong at -35 dBm, while the negotiated RX and TX rates are 866.7 Mbit/s and 390.0 Mbit/s respectively. These figures give us a much clearer picture of the actual Wi-Fi connection before investigating whether another configuration is responsible for slower real-world speeds.
See whether Wi-Fi power saving is enabled
iw gives you the answer immediately

To find if Wi-Fi power saving is on, the command is very simple:
iw dev wlp3s0 get power_save
An enabled configuration reports:
Power save: on
To perform a quick test, disable it temporarily:
sudo iw dev wlp3s0 set power_save off
Then verify:
iw dev wlp3s0 get power_save
You should now see:
Power save: off
You do not need to reboot to perform this test. Once power saving is disabled, run the same speed test you used before. Ideally, perform several tests against the same server or service and compare the results rather than relying on a single measurement. I used iperf3 for benchmarking:

In my test, enabling Wi-Fi power saving reduced sustained throughput from about 159Mbps to 138Mbps, a drop of roughly 13%, which is entirely plausible on an 802.11ac connection, although the exact impact varies considerably between adapters, drivers, access points, and traffic patterns.
The 159 Mbps result with power saving disabled is also reasonable for a 2×2 Wi-Fi 5 connection operating under real-world conditions, where application throughput is well below the theoretical PHY rate. More interestingly, the enabled test recorded 283 TCP retransmissions, while the disabled test recorded none, suggesting that power-saving behavior was contributing to additional buffering or delayed transmission in this particular setup.
That does not mean every Linux system will behave the same way, however. Some laptops may see almost no throughput difference, while others can experience noticeable changes in latency, retransmissions, or sustained transfer performance. In practice, the biggest benefit of disabling power saving may therefore be more consistent network behavior and lower latency, rather than a dramatic increase in peak download speed.
Make the change persistent with NetworkManager
Update the connection profile

The iw command changes the current wireless interface state. If NetworkManager later reconnects the interface, that setting may be restored according to the connection profile or global defaults. NetworkManager provides its own Wi-Fi power-saving property:
802-11-wireless.powersave
First find the connection name:
nmcli connection show
Then disable power saving for that profile:
nmcli connection modify "Your UUID" 802-11-wireless.powersave 2
Reconnect:
nmcli connection down "Your UUID"
nmcli connection up "Your UUID"
Finally, verify:
iw dev wlp3s0 get power_save
The interface should report:
Power save: off

Test before you change hardware
Before spending money on a new wireless card or router, it is worth checking whether the problem is actually coming from the software stack. Linux gives you enough visibility into the wireless interface to investigate these issues yourself.
For many, that also makes this kind of troubleshooting a worthwhile first step. A setting buried in the operating system can be changed in seconds, tested under normal workloads, and reverted just as easily. That is considerably easier than replacing hardware only to discover that the original problem was somewhere else.

































