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: [email protected] [mailto:[email protected]] On
Behalf Of Linker
Sent: 2017 September 04, Mon 00:50
To: [email protected]
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
<[email protected]> 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 [email protected].
For more options, visit https://groups.google.com/d/optout.
--
Regards,
Linker Lin
[email protected]
--
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.
--
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.