Hi All, I have an application which always has about 2000 goroutines running. (I checked this by querying prometheus metrics at regular intervals.) This number sounds reasonably correct to me because at the start I launch 1000 goroutines and each of these 1000 goroutines spawns 1 goroutine each to make an HTTP/2 request to a server.
I run this application on a 40 vCPU machine which is quite lightly loaded. Using atop or top, I can see that the overall CPU utilization is very low before I start my application. Infact, it is idle for 99% of the time before I run my application. top - 11:01:03 up 255 days, 23:33, 2 users, load average: 0.04, 0.05, 0.05 Tasks: 525 total, 1 running, 524 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.0 us, 0.1 sy, 0.0 ni, 99.9 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 52815753+total, 47459616+free, 4746712 used, 48814668 buff/cache KiB Swap: 4194300 total, 4194300 free, 0 used. 51626032+avail Mem Now I turned on the go scheduler trace as below and run my application. GODEBUG=schedtrace=10 ./myapp start -c config.yaml I always see all of the local runqueues of the procs with a value of 0. Also, my idleprocs is always equal to the total number of logical procs on my machine (i.e. 40). SCHED 11639ms: gomaxprocs=40 idleprocs=40 threads=46 spinningthreads=0 idlethreads=41 runqueue=0 [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] Does this mean that the go scheduler is not scheduling the goroutines fast enough ? I expected to see all the local run queues to conain a value of atleast 1 when my application is running. In my application I make a lot of HTTP/2 calls at the rate of say 1000 rps or 2000 rps etc. so it is a pretty busy application I would imagine. I noticed only 1 instance where a lot of goroutines assigned to the local run queue of some processors. And in this instance I can see that there are very few idleprocs. SCHED 11926ms: gomaxprocs=40 idleprocs=2 threads=46 spinningthreads=1 idlethreads=3 runqueue=80 [2 0 0 0 2 1 0 0 2 0 0 0 4 0 0 0 0 0 0 0 0 0 0 0 0 162 0 0 0 0 0 0 0 0 0 0 0 0 0 0] Is there some other diagnostic to look at to explain why this is happening ? -- 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. To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/0f2c2b99-0208-471c-b869-16145d980912n%40googlegroups.com.