Avatar of Dooglave
 asked on

e1000 tuning

Anyone know where I can educate myself on how to calculate proper values for the three parameters below.

RxDescriptors = 4096 max (default 256)
TxDescriptors = 4096 max (default 256)

How do I take into account throughput, latency, packet mix, etc.. and calculate the best guess value to use.

Linux NetworkingServer HardwareNetwork Analysis

Avatar of undefined
Last Comment

8/22/2022 - Mon
Duncan Roe

The best guess is to not specify any of them (so take defaults). This advice is also to be found in /usr/src/linux/Documentation/networking/e1000.txt (or wherever you have your source tree).

Log in or sign up to see answer
Become an EE member today7-DAY FREE TRIAL
Members can start a 7-Day Free trial then enjoy unlimited access to the platform
Sign up - Free for 7 days
Learn why we charge membership fees
We get it - no one likes a content blocker. Take one extra minute and find out why we block content.
Not exactly the question you had in mind?
Sign up for an EE membership and get your own personalized solution. With an EE membership, you can ask unlimited troubleshooting, research, or opinion questions.
ask a question

Linux TCP stack gas transmit queue. tx buffers would back tx queue. rx buffers would queue a lot of packets for apps to use. (at least a half second of data with 4k buffers.) and you lose interactivity of VoIP etc.
I would suggest to keep options at their defaults unless solving an immediate problem.

Are you having a problem?  Or just trying to prevent one?
All of life is about relationships, and EE has made a viirtual community a real community. It lifts everyone's boat
William Peck

Solving a problem. RX drops, little CPU utilization.
Another server, RX drops, high cpu utilization.

I'm going to read the doc from BigSchmuh now, it looks promising.

Ok I read through this http://download.intel.com/design/network/applnots/ap450.pdf  -Very interesting.

I see people setting the RX and TX descriptors, along with RXIntDelay at the same time they are setting InterruptThrottleRate.    Does this make sense?

It seems like it would make since given InterruptThrottleRate deals with time and quanity of packets. While the Descriptors deal with size in KB.

If the buffer isn't large enough to allow the adaptive mode to do it's job then it wouldn't work as expected. -My opinion.

and it doesn't seem that you could set the RX and TX descriptors too high if the adaptive mode were always triggering the interupt before you reached the max buffer value.

and it seems setting RXIntDelay wouldn't make sense at all if adaptive modes were in use.

What do you think?

Another twist, "interrupt coalescing"

clustermonkey thinks this is the same thing as InterruptThrottleRate, but I think he might be wrong.

Get an unlimited membership to EE for less than $4 a week.
Unlimited question asking, solutions, articles and more.

Na, I think "Interrupt Coalescing" and "Interrupt Moderation"  are the same thing.
Log in to continue reading
Log In
Sign up - Free for 7 days
Get an unlimited membership to EE for less than $4 a week.
Unlimited question asking, solutions, articles and more.

I'm reading about the net.core.somaxconn but I think the Intel Interrup Moderation guide helped understand this quite a bit.  I was more looking for a mathematical formula for calculating the best values. I'm going to see if I can turn on the "Interrupt Coalescing" and "Interrupt Moderation" then I wouldn't have to calculate it.

I think I should open another question just to chat about other tunning ideas/experience like, sysctl net.core.somaxconn=32768, this parameter is new to me and I want to see more stuff like this.

Experts Exchange is like having an extremely knowledgeable team sitting and waiting for your call. Couldn't do my job half as well as I do without it!
James Murphy