2007-09-15 19:12:29

by Lukas Hejtmanek

[permalink] [raw]
Subject: CPU usage for 10Gbps UDP transfers

Hello,

is it expected that application sending 8900bytes datagram through 10Gbps NIC
utilizes CPU to 100% and similarly the receiver also utilizes CPU to 100%.
Is it something wrong or this is quite OK?

(The box is dual single core Opteron 2.4GHz with Myricom 10GE NIC.)

--
Luk?? Hejtm?nek


2007-09-15 23:29:57

by David Schwartz

[permalink] [raw]
Subject: RE: CPU usage for 10Gbps UDP transfers


> Hello,
>
> is it expected that application sending 8900bytes datagram
> through 10Gbps NIC
> utilizes CPU to 100% and similarly the receiver also utilizes CPU to 100%.
> Is it something wrong or this is quite OK?
>
> (The box is dual single core Opteron 2.4GHz with Myricom 10GE NIC.)

It's extremely hard to understand what it is that you're saying. Perhaps if
I explain the two things I first thought when you posted this, it will
explain why your post is vague:

1) *Any* task will use the CPU to 100% while it's running. Even if you ask
the computer to add 1 to 1, while it's doing that add for you, the task is
using 100% of the CPU.

2) If you ask the CPU to do any task over and over again as quickly as it
can, and it has nothing else to do, that task will get 100% of the CPU?

So what are you really asking?

DS


2007-09-16 04:08:40

by Willy Tarreau

[permalink] [raw]
Subject: Re: CPU usage for 10Gbps UDP transfers

On Sat, Sep 15, 2007 at 04:29:39PM -0700, David Schwartz wrote:
>
> > Hello,
> >
> > is it expected that application sending 8900bytes datagram
> > through 10Gbps NIC
> > utilizes CPU to 100% and similarly the receiver also utilizes CPU to 100%.
> > Is it something wrong or this is quite OK?
> >
> > (The box is dual single core Opteron 2.4GHz with Myricom 10GE NIC.)
>
> It's extremely hard to understand what it is that you're saying. Perhaps if
> I explain the two things I first thought when you posted this, it will
> explain why your post is vague:
>
> 1) *Any* task will use the CPU to 100% while it's running. Even if you ask
> the computer to add 1 to 1, while it's doing that add for you, the task is
> using 100% of the CPU.
>
> 2) If you ask the CPU to do any task over and over again as quickly as it
> can, and it has nothing else to do, that task will get 100% of the CPU?
>
> So what are you really asking?

I think he means that his application saturates the 10Gbps NIC with 8900
bytes datagrams and it consumes 100% of the CPU while doing this, and it's
the same on the receiver side. I'm not surprized at all, considering that
it means around 140kpps, or pauses of about 7 microseconds between each
frame. Those pauses are too short to do anything else, resulting in the
task to appear as taking 100% CPU. But IMHO, that does not mean that the
machine is saturated; If the task had more work to do between each datagram,
it would possibly be done. Same if it had to send shorter frames twice as
fast.

Willy

2007-09-17 15:45:39

by Chris Snook

[permalink] [raw]
Subject: Re: CPU usage for 10Gbps UDP transfers

Lukas Hejtmanek wrote:
> Hello,
>
> is it expected that application sending 8900bytes datagram through 10Gbps NIC
> utilizes CPU to 100% and similarly the receiver also utilizes CPU to 100%.
> Is it something wrong or this is quite OK?
>
> (The box is dual single core Opteron 2.4GHz with Myricom 10GE NIC.)

Every time a new generation of ethernet comes out, its peak throughput exceeds
the memory/CPU/IO capacity of commodity hardware available at the time. This is
normal. Of course, you may not be saturating the link, and it may be possible
to tune the driver to improve your throughput, but you'll still be saturating a
CPU on that hardware.

-- Chris