Hi Guys,
So, we wrote a Go service which does some heavy network IO over ZMQ (using
cgo calls).
Now, we have to put this service on a VM in private cloud which has 56
cores and 256GB of physical memory.
I am guessing it is mostly a dual core NUMA Intel Xeon machine with Xen
installed on it.
We want to horizontally scale the application by launching 4 instances of
this service in this VM.
We have tested the code for 30K+ QPS on a 16 core EC2 AMI.
There are two ways we can do it.
1. Run 4 instances of the application as it is without changing any
defaults except configuration files and output data folders.
2. Run 4 instances of the application after modifying GOMAXPROCS.
- GOMAXPROCS=16 ./run-my-unoptimized-app
Which of these 2 scenarios would benefits us more in terms of performance.
Does it makes sense to run all with default GOMAXPROCS value, which would
be 56 for all the 4 instances?
Or it would be wise to follow option 2 with possibly pinning each to a
range of 16 cores using taskset.
Would pinning help in second scenario?
Thanks,
--
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 [email protected].
For more options, visit https://groups.google.com/d/optout.