This is a reader contributed article.
These days almost all server / laptop / desktop system has a gigabit Ethernet card (NIC) pre installed. Most servers are directly connected to internet using 100Mbps connections. You can save real power on your Linux server or desktop by operating at 100Mbps Ethernet speed. For example 1 gigabit link is going to consume more power than the power used at 100Mbps speed. Also note that not all systems actually use gigabit speed. For example my desktop system only used for browsing or chatting purpose or Linux web server used to display just static web pages. Now just calculate power consumption for 100 servers or 1000 desktop systems. Bottom line use Gigabit Ethernet speeds only when needed. Did you know - you can save 2 watts or more per Linux/UNIX/Windows server/desktop by just setting a correct speed :)
See current Ethernet card speed
Use ethtool comment to display current speed:
ethtool eth0 | grep -i speed
Set new speed and save power
Following command will set card speed to 100Mbps:
ethtool -s eth0 autoneg off speed 100
=> For more information see ethtool command and network interface speed, duplex . auto negotiate settings on Linux
About the author: Rocky Jr., is an engineer with VSNL - a leading ISP / global telecom company in India and a good friend of nixCraft.
- Email this to a friend
- Printable version
- Rss Feed
- Last Updated: Sep/22/2007

{ 9 comments… read them below or add one }
Where did you get the 2 Watt per system savings figure? I tested several of my servers, mostly Supermicro MB’s or IBM’s (using the Kill-A-Watt realtime power monitor) and saw almost no change (>0.5 watt) when switching between 1000 and 100 ethernet speeds.
So if I had 1000’s of servers it might be worth the effort to make the change – it’s certainly not worth it for 47 servers.
This is exactly the type of thinking we have too much of on this world, simple minded.
0.5W times every 1000Mbit computer out there is A LOT of WATTS saved every day. Get of your lazy ass TODAY, save some power and allow you children to enjoy a better world 500 years from now … it’s about the big picture…..
Efficiency is not just a measure of total wattage. It is a measure of performance per watt, be it in CPU cycles or data rates. If I save 1 watt by lowering my link speed to 100Mbps, it now takes me nearly an order of magnitude longer (not exactly an order of magnitude, due to protocol ineffeciencies, but close anyway) to copy the same amount of data of over the same data link that would normally be transmitting at 1Gbps, how is that a savings? It’s actually costing me more time and therefore more wattage over time to copy the same amount of data. If anything, people should go out and install 1Gbps or even 10Gbps on all of their equipment to save as much as they can!
I sincerely appreciate that people are trying to save energy, but energy savings at the cost of output is a false savings. It’s not about being lazy or impatient, its about making the most of your investments, both in grid power and man power.
I have no opinion on the power saving, but a new GigE switch that we got didn’t want to play nice with a bunch of our GigE-capable boxes. I was trying to figure out how to tell the NICs to run at 100Mbps, and this article showed me how. Much appreciated.
All grass is green.
All cows eat grass.
Therefore, all cows are green.
No no no babbit.
All grass is green.
All cows eat grass.
Therefore, all cows eat *green* grass.
You’re neither a farmer or an analyst are you?
how about slower speeds yet, will they save more power
how about slower speeds yet like 10 Mbs
Rather than switching off autonegotation, which can cause problems with mismatched settings, it is better just to limit what your network card announces it is capable of. The other end will autonegotiate up to the fast speed / duplex combination that your end announces. So if you only announce 10 Mbps / Half Duplex, that’s all the other end will use e.g.
# ethtool eth0
Settings for eth0:
Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Advertised auto-negotiation: Yes
Speed: 100Mb/s
Duplex: Full
Port: Twisted Pair
PHYAD: 1
Transceiver: internal
Auto-negotiation: on
Supports Wake-on: pumbag
Wake-on: d
Current message level: 0×00000001 (1)
Link detected: yes
#
# ethtool -s eth0 advertise 0×001
# ethtool eth0
Settings for eth0:
Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half
Advertised auto-negotiation: Yes
Speed: 10Mb/s
Duplex: Half
Port: Twisted Pair
PHYAD: 1
Transceiver: internal
Auto-negotiation: on
Supports Wake-on: pumbag
Wake-on: d
Current message level: 0×00000001 (1)
Link detected: yes
#