Link to home
Start Free TrialLog in
Avatar of Dooglave
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)
RxIntDelay

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

Avatar of Duncan Roe
Duncan Roe
Flag of Australia image

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).
ASKER CERTIFIED SOLUTION
Avatar of BigSchmuh
BigSchmuh
Flag of France image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
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?
Avatar of Dooglave
Dooglave

ASKER

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.

http://tweaks.clustermonkey.net/index.php/Small_GigE_Switches
Na, I think "Interrupt Coalescing" and "Interrupt Moderation"  are the same thing.
SOLUTION
Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
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.