Hi Renker, 

        Is there a patch or a way to reduce the CPU utilization with Iperf
1.7.0 for UDP tests in Windows XP ?

Thanks,
Anand

-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Gerrit
Renker
Sent: Monday, May 12, 2008 11:32 AM
To: Laurence Kirchmeier
Cc: [EMAIL PROTECTED]
Subject: Re: [Iperf-users] Iperf Transmit leading to 100% CPU Utilization

These measurements agree with local ones seen on Pentium IV and are in the
area where the nanosleep() patch applies: only UDP (and in other patches,
DCCP too) uses the delay_loop() to pace the speed of outgoing packets, in
TCP there is no waiting loop.

With regard to reducing overall CPU usage it might make sense to look into
the patches developed by Ingo Molnar. I found that 2.0.4 had quite an
improved CPU usage (in 2.0.2 without the patches by Ingo Molnar it
was often between 97%-100%).            

Gerrit

Quoting Laurence Kirchmeier:
|    Compiling the base 2.0.4 code on a MacMini running 10.5, I noticed that
|    CPU usage remained quite low for TCP based tests between two MacMinis.
As
|    soon as I switched to running a UDP test between the 2 MacMinis, the
CPU
|    usage was all consumed by the iperf application (90% plus).  I then
|    applied the patch to the 2.0.4 base code, recompiled and repeated the
UDP
|    tests between the 2 MacMinis and CPU usage was now similar to the TCP
|    tests - below 10%.
|    Laurie
|    _______________________________________________
|    _______________________________________________
|    Laurence Kirchmeier
|    MVCS Project Manager & Senior Engineer, Networking R&D
|    Merit Network Inc.                Tel.  734 936 9703
|    Email: [EMAIL PROTECTED]     Fax. 734 647 3185
|    _______________________________________________
|    _______________________________________________
|    On May 4, 2008, at 4:36 AM, Oren Meron wrote:
| 
|      Hi Gerrit,
|      Running 2.0.4 version produced in TCP runs much better BW in medium
size
|      messages. (340 MB/sec vs 40 MB/sec at 128 bytes msg and 4 processes)
|      But the cpu usage rises as well at these area (from 10% to 45%).
|      Applying both the above patches do not improve cpu usage.
| 
|      Should I expect a cpu usage reduction, or is it the price for the
|      improved BW ?
| 
|      Thanks,
| 
|      Oren   Meron
|      Performance
| 
|      -----Original Message-----
|      From: [EMAIL PROTECTED]
|      [mailto:[EMAIL PROTECTED] On Behalf Of
Gerrit
|      Renker
|      Sent: Friday, May 02, 2008 4:05 PM
|      To: Upakul Barkakaty
|      Cc: [EMAIL PROTECTED]
|      Subject: Re: [Iperf-users] Iperf Transmit leading to 100% CPU
|      Utilization
| 
|      Thank you for testing. After this email I also checked again:
| 
|       * with the old busy-wait loop, there are three threads, and one is
|         always close to 100% (I think that is the one you mean);
| 
|       * using either of select() or nanosleep() to replace the
delay_loop()
|         reduces the number of threads to 2 (the usage is still quite high,
|         between 80% and 90%).
| 
|      I will tidy the patch up, in earlier tests using nanosleep() had in
|      addition the best resolution.
| 
|      Gerrit
| 
|      Quoting Upakul Barkakaty:
|      |    Hi Gerrit,
|      |
|      |    Thanks a lot. This patch has really helped.
|      |
|      |    --
|      |    Regards,
|      |    Upakul Barkakaty
|      |
|      |    On 5/2/08, Gerrit Renker <[EMAIL PROTECTED]> wrote:
|      |
|      |      Upakul,
|      |
|      |      thank you for testing. So it seems the problem is not in this
|      corner. I
|      |      also recall comparing the performance of iperf 2.0.4 against
|      2.0.2 with
|      |      that patch - Jon has added some condition variables, which
seem
|      to have
|      |      a similar effect (testing with 2.0.4 also gave modest CPU
usage).
|      |
|      |      With regard to the delay loop, the high CPU consumption seems
|      clear
|      |      since delay_loop() constantly calls gettimeofday(), i.e.
issueing
|      the
|      |      same system call over and over again in a busy-wait loop.
Which
|      agrees
|      |      with your analysis.
|      |
|      |      I have had problems with this, too, but in a different corner:
|      when
|      |      measuring the actual times, delay_loop() sometimes added
|      something like
|      |      50 milliseconds at random times, which seems like a quantum
for a
|      |      context switch.
|      |
|      |      It got much better when replacing the busy-wait loop with a
call
|      to the
|      |      Posix function nanosleep(), since this uses hrtimers
internally
|      and
|      |      blocks signals.
|      |
|      |      Although the patch was initially not intended to reduce CPU
|      usage, I
|      |      could well imagine that it does since removes the busy-wait
loop.
|      |
|      |      If you have a moment of time, could you check out whether this
|      makes a
|      |      difference -- it is in the repository, on
|      |
|      |      
|      |
https://sourceforge.net/tracker/index.php?func=detail&aid=1940009&grou
|      | p_id=128336&atid=711373
|      |
|      |      Best regards
|      |
|      |      Gerrit
|      |
|      |      Quoting Upakul Barkakaty:
|      |      |    Hi Gerrit,
|      |      |
|      |      |    Thanks a lot for your reply. I indeed tried out the patch
|      but it
|      |      did not
|      |      |    make any difference. I am still seeing 0% CPU Idle.
|      |      |
|      |      |    It looks to me as if the delay_loop() function in the
file
|      |      Client.cpp is
|      |      |    holding the processor in the kernel space while adjusting
|      the
|      |      thoughput
|      |      |    speeds, resulting in 0% CPU Idle. On trying out replacing
|      |      delay_loop() by
|      |      |    usleep() function, Idle MIPS were seen to be available.
Or
|      perhaps
|      |      is it
|      |      |    the case that iperf should be used only for throughput
|      measurement
|      |      and
|      |      |    might not be so appropriate for measuring the cpu
|      utilization?
|      |      |
|      |      |    --
|      |      |    Regards,
|      |      |    Upakul Barkakaty
|      |      |
|      |      |    On 5/2/08, Gerrit Renker <[EMAIL PROTECTED]> wrote:
|      |      |
|      |      |      Dear Upakul,
|      |      |
|      |      |      if it is not too much of a bother, can you please check
if
|      the
|      |      attached
|      |      |      patch fixes the CPU usage problem?
|      |      |
|      |      |      It is a port of Ingo Molnar's CPU usage fix - we have
used
|      that
|      |      patch in
|      |      |      iperf with great benefit (the CPU usage went down to
very
|      modest
|      |      |      values).
|      |      |
|      |      |      Regards
|      |      |      Gerrit
|      |      |
|      |      |      Quoting Upakul Barkakaty:
|      |      |      |    Hi Jon,
|      |      |      |
|      |      |      |    I have upgraded to Iperf-v2.0.4. But
unfortunately,
|      even
|      |      with this
|      |      |      version
|      |      |      |    I observed that the Iperf client was consuming all
|      the CPU
|      |      MIPS
|      |      |      even if it
|      |      |      |    was running at 1 Mbps.
|      |
|      |      The University of Aberdeen is a charity registered in
Scotland,
|      No
|      |      SC013683.
|      |
|      |    The University of Aberdeen is a charity registered in Scotland,
No
|      |    SC013683.
| 
|      --
| 
|      The University of Aberdeen is a charity registered in Scotland, No
|      SC013683.
| 
|
------------------------------------------------------------------------
|      -
|      This SF.net email is sponsored by the 2008 JavaOne(SM) Conference
Don't
|      miss this year's exciting event. There's still time to save $100.
|      Use priority code J8TL2D2.
|
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/j
|      avaone
|      _______________________________________________
|      Iperf-users mailing list
|      Iperf-users@lists.sourceforge.net
|      https://lists.sourceforge.net/lists/listinfo/iperf-users
| 
|
-------------------------------------------------------------------------
|      This SF.net email is sponsored by the 2008 JavaOne(SM) Conference
|      Don't miss this year's exciting event. There's still time to save
$100.
|      Use priority code J8TL2D2.
|
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javao
ne
|      _______________________________________________
|      Iperf-users mailing list
|      Iperf-users@lists.sourceforge.net
|      https://lists.sourceforge.net/lists/listinfo/iperf-users
| 
|    The University of Aberdeen is a charity registered in Scotland, No
|    SC013683.

-- 


The University of Aberdeen is a charity registered in Scotland, No SC013683.


-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference Don't miss
this year's exciting event. There's still time to save $100. 
Use priority code J8TL2D2. 
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javao
ne
_______________________________________________
Iperf-users mailing list
Iperf-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/iperf-users




-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference 
Don't miss this year's exciting event. There's still time to save $100. 
Use priority code J8TL2D2. 
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
_______________________________________________
Iperf-users mailing list
Iperf-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/iperf-users

Reply via email to