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 golang-nuts+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.