I cannot say what the difference is, but I would do two things to solve the mystery:
1) Compare /proc/<pid>/limits for differences. 2) Compare the output of egrep '^Rss:|^[0-9a-f]' /proc/<pid>/smaps for the processes on the different machines. Report the results and share the outputs. On Friday, May 6, 2022 at 2:16:51 PM UTC+2 ren...@ix.netcom.com wrote: > https://www.arp242.net/static-go.html > > On May 5, 2022, at 11:27 PM, garenchan <garen...@gmail.com> wrote: > > The binary file is not a dynamic executable. So I don't think that will > happen. > > > > 在2022年5月6日星期五 UTC+8 11:54:44<ren...@ix.netcom.com> 写道: > >> Are you certain that on the low memory instance there isn’t another >> process - maybe Go - that hasn’t already loaded the shared libraries - and >> on the other it hasn’t - so the RSS is different. Compare the VSZ sizes and >> see if they are the same. >> >> On May 5, 2022, at 10:28 PM, garenchan <garen...@gmail.com> wrote: >> >> @jake, I tried 1.18 version of Go, but the problem still exists. >> >> >> I also tried using C to write program that includes memory allocation and >> usage, and this problem does not occur. >> 在2022年5月5日星期四 UTC+8 21:25:20<jake...@gmail.com> 写道: >> >>> Since no one has responded with concrete ideas, I'll throw out two >>> suggestions. They may seem obvious. >>> >>> First have you tries the latest version of Go? and do you get the same >>> results? >>> >>> Second have you run the experiment with a small binaries not from Go? I >>> would suggest something that does allocate some real memory, *not *a >>> "hello world" C program or something. >>> On Thursday, May 5, 2022 at 7:21:39 AM UTC-4 garenchan wrote: >>> >>>> >>>> Both hosts have 8 cores and 16GB RAM. >>>> 在2022年4月30日星期六 UTC+8 00:19:44<garenchan> 写道: >>>> >>>>> *What version of Go are you using (go version)?* >>>>> >>>>> $ go version >>>>> go version go1.17.6 linux/amd64 >>>>> >>>>> *Does this issue reproduce with the latest release?* >>>>> >>>>> uncertain >>>>> >>>>> *What operating system and processor architecture are you using (go >>>>> env)?* >>>>> >>>>> $ go env >>>>> GO111MODULE="on" >>>>> GOARCH="amd64" >>>>> GOBIN="" >>>>> GOCACHE="/root/.cache/go-build" >>>>> GOENV="/root/.config/go/env" >>>>> GOEXE="" >>>>> GOEXPERIMENT="" >>>>> GOFLAGS="" >>>>> GOHOSTARCH="amd64" >>>>> GOHOSTOS="linux" >>>>> GOINSECURE="" >>>>> GOMODCACHE="/root/go/pkg/mod" >>>>> GONOPROXY="" >>>>> GONOSUMDB="" >>>>> GOOS="linux" >>>>> GOPATH="/root/go" >>>>> GOPRIVATE="" >>>>> GOPROXY="" >>>>> GOROOT="/home/go" >>>>> GOSUMDB="off" >>>>> GOTMPDIR="" >>>>> GOTOOLDIR="/home/go/pkg/tool/linux_amd64" >>>>> GOVCS="" >>>>> GOVERSION="go1.17.6" >>>>> GCCGO="gccgo" >>>>> AR="ar" >>>>> CC="gcc" >>>>> CXX="g++" >>>>> CGO_ENABLED="1" >>>>> GOMOD="/home/demo/go.mod" >>>>> CGO_CFLAGS="-g -O2" >>>>> CGO_CPPFLAGS="" >>>>> CGO_CXXFLAGS="-g -O2" >>>>> CGO_FFLAGS="-g -O2" >>>>> CGO_LDFLAGS="-g -O2" >>>>> PKG_CONFIG="pkg-config" >>>>> GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 >>>>> -fdebug-prefix-map=/tmp/go-build4023324410=/tmp/go-build >>>>> -gno-record-gcc-switches" >>>>> >>>>> *What did you do?* >>>>> >>>>> I encountered a memory problem with the GO program, see here for >>>>> details.( >>>>> https://stackoverflow.com/questions/71994609/memory-footprint-of-the-same-program-varies-greatly-in-two-similar-environments >>>>> ) >>>>> >>>>> In order to simplify the analysis, I wrote a simple program to test. >>>>> >>>>> ```go >>>>> package main >>>>> >>>>> import ( >>>>> "time" >>>>> ) >>>>> >>>>> func main() { >>>>> time.Sleep(60*time.Second) >>>>> } >>>>> ``` >>>>> >>>>> >>>>> - I compiled it into binary file on a linux host `host1` with >>>>> kernel 4.18. Then I run it on `host1` and the process takes up close >>>>> to 5MB >>>>> RSS. >>>>> - I then copy the binary file to another host `host2` with kernel >>>>> 4.18. I also ran it on `host2`, but this time the process took up less >>>>> than >>>>> 1MB RSS. >>>>> - I repeated the test many times and observed the same thing. >>>>> >>>>> >>>>> ``` >>>>> $ uname -a >>>>> Linux host1 4.18.0 #1 SMP Wed Nov 10 20:46:19 CST 2021 x86_64 x86_64 >>>>> x86_64 GNU/Linux >>>>> >>>>> $ uname -a >>>>> Linux host2 4.18.0 #1 SMP Fri May 8 10:59:10 UTC 2021 x86_64 x86_64 >>>>> x86_64 GNU/Linux >>>>> ``` >>>>> >>>>> Why is memory footprint of the same program in similar environments so >>>>> different? What factors might be contributing to this problem? >>>>> >>>>> *What did you expect to see?* >>>>> >>>>> I would expect to see the memory footprint of the same program in >>>>> similar environments be close. I look forward to your answers. Thank you >>>>> very much. >>>>> >>>> -- >> 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...@googlegroups.com. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/golang-nuts/d8a3e1d9-e578-4668-9b19-38b49e29cd11n%40googlegroups.com >> >> <https://groups.google.com/d/msgid/golang-nuts/d8a3e1d9-e578-4668-9b19-38b49e29cd11n%40googlegroups.com?utm_medium=email&utm_source=footer> >> . >> >> -- > 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...@googlegroups.com. > > To view this discussion on the web visit > https://groups.google.com/d/msgid/golang-nuts/c524a157-7772-4bcd-9ce5-c04b95fb560en%40googlegroups.com > > <https://groups.google.com/d/msgid/golang-nuts/c524a157-7772-4bcd-9ce5-c04b95fb560en%40googlegroups.com?utm_medium=email&utm_source=footer> > . > > -- 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/594408e5-769a-45c5-acb4-f3c6792a1fabn%40googlegroups.com.