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/javaone _______________________________________________ Iperf-users mailing list Iperf-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/iperf-users