There are lots of variables, but even with a directly connected SSD drive (SATA bus, in my case) I can pretty well top out the file i/o, just doing sequential file reads, with about 3 – 4 CPUs. So increasing GOMAXPROCS (in this case) doesn’t help.
John John Souvestre - New Orleans LA From: golang-nuts@googlegroups.com [mailto:golang-nuts@googlegroups.com] On Behalf Of Linker Sent: 2017 September 04, Mon 00:50 To: r...@google.com Cc: golang-nuts Subject: Re: [go-nuts] Re: Running Go binary on a 56 core VM More File-IO, more GOMAXPROCS. On Mon, Sep 4, 2017 at 3:44 AM, rlh via golang-nuts <golang-nuts@googlegroups.com> wrote: Without building and measuring it is impossible to know which of these approaches, or even a third one where you simply run a single instance, is best for your application. Each approach has upsides and downsides. The GC believes GOMAXPROCS and will uses as much CPU as it believes is available. This can take CPU away from the other 3 instances. If more CPU is available but the GC doesn't know about it then those cycles will go unused. Build, measure, and figure out why the application is seeing different performance characteristics. Please report back, 56 HW threads and 256Gbytes RAM is of considerable interest to many of us. On Thursday, August 31, 2017 at 9:59:59 AM UTC-4, Pradeep Singh wrote: 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. -- Regards, Linker Lin linker.m....@gmail.com -- 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. -- 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.