On Fri, Feb 08, 2019 at 02:30:52PM -0600, robert engels wrote:
> Could be many things, but a few to think about:

Yes, it is quite strange. I don't see it hitting any limits but
the request rate goes down.

> If you run more Go routines than you have CPUs available, and the task
> is CPU bound (which may be if the url points to a local resource),
> then you are going to thrash, causing worse performance.

CPU does not seem to be maxed out, here is the info for 5 gorutines:

CPU | sys      98%  | user    436%  | irq      26%  | idle   4222%  | wait      
0%  | curf 2.20GHz  | curscal   ?%  |
CPL | avg1    3.28  | avg5    2.54  | avg15   1.28  | csw   186540  | intr  
164257  |               | numcpu    48  |

541%  gb
123%  nginx

And for 20 gorutines it looks like this:

CPU | sys     132%  | user    970%  | irq      21%  | idle   3655%  | wait      
0%  | curf 2.20GHz  | curscal   ?%  |
CPL | avg1    0.52  | avg5    1.18  | avg15   1.01  | csw   240847  | intr  
203360  |               | numcpu    48  |

1170%  gb
103%  nginx

> The service you are calling is not properly concurrent, so the more
> simultaneously requests, the worse it performs.

The server end is nginx serving a default static page, so it should
be quite fast.

> You are hitting network/router limits, so it is dropping packets,
> causing worse performance due to TCP retries and/or smaller window
> sizes.

Just tried running client and server on the same host and it gives
the same numbers.

-- 
Valentin

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to