My current settings: [root@mover-7-2 pdm]# sysctl -a | grep overco vm.overcommit_memory = 1 vm.overcommit_ratio = 50 vm.overcommit_kbytes = 0 vm.nr_overcommit_hugepages = 0
So the app can use up to ~32GB in my understanding, which should be enough for everything? On Thursday, June 1, 2017 at 6:13:53 PM UTC-7, Dmitry Mishin wrote: > > The system has 1GB of swap, and I just tried enabling: > > sysctl -w vm.overcommit_memory=1 > sysctl -w vm.swappiness=1 > > according to > https://stackoverflow.com/questions/35025338/cannot-allocate-memory-error, > with no effect. > > There's 64GB of RAM, which is not being used at the time of error: > > top - 16:47:14 up 2 days, 4:35, 4 users, load average: 1.43, 1.35, 1.12 > Tasks: 32606 total, 1 running, 531 sleeping, 0 stopped, 32074 zombie > Cpu(s): 0.7%us, 14.0%sy, 0.0%ni, 80.6%id, 3.3%wa, 0.0%hi, 1.4%si, > 0.0%st > Mem: 66067872k total, 43270952k used, 22796920k free, 5684k buffers > Swap: 1023996k total, 332k used, 1023664k free, 26004700k cached > > > PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND > 1401 root 20 0 898m 26m 2936 S 93.6 0.0 9:30.36 pdm > 6494 root 20 0 38280 25m 880 R 20.1 0.0 1:20.34 top > 6145 root 20 0 112m 5468 4428 S 0.0 0.0 0:00.05 sshd > 29324 root 20 0 112m 5092 4056 S 0.0 0.0 0:00.60 sshd > 2720 root 20 0 114m 3284 616 S 0.3 0.0 0:43.29 sshd > 2377 nobody 20 0 152m 3148 668 S 0.0 0.0 0:06.24 gmond > 9290 postfix 20 0 79868 2852 1996 S 0.0 0.0 0:00.01 pickup > 29336 root 20 0 106m 1916 1432 S 0.0 0.0 0:00.03 bash > 6155 root 20 0 106m 1888 1428 S 0.0 0.0 0:00.02 bash > 2575 root 20 0 379m 1880 684 S 0.0 0.0 0:00.89 automount > 2240 haldaemo 20 0 38224 1744 632 S 0.0 0.0 0:01.58 hald > 30608 root 20 0 112m 1672 636 S 0.0 0.0 0:00.24 sshd > 2724 root 20 0 106m 1416 912 S 0.0 0.0 0:00.31 bash > 2467 postfix 20 0 80036 1404 496 S 0.0 0.0 0:00.18 qmgr > 30634 root 20 0 106m 1376 868 S 0.0 0.0 0:00.13 bash > 2456 root 20 0 80000 1352 460 S 0.0 0.0 0:00.74 master > 1911 root 20 0 245m 1300 588 S 0.0 0.0 0:00.27 rsyslogd > 2366 ntp 20 0 25440 1160 588 S 0.0 0.0 0:00.24 ntpd > 2323 nscd 20 0 877m 1148 644 S 0.0 0.0 0:02.14 nscd > 2357 root 20 0 90848 1052 392 S 0.0 0.0 0:00.01 sshd > 1628 root 18 -2 11260 1048 232 S 0.0 0.0 0:00.00 udevd > 2468 root 20 0 112m 980 392 S 0.0 0.0 0:00.40 crond > > pprof is showing around 2MB memory used all the time. > > I'm thinking the problem is somewhere here, since it goes away when I > disable this part of the app: > > https://github.com/sdsc/pdm/blob/3b5c7fcef24e9081f3bd0608efde1bdc10a65d17/lustre_backend.go#L73 > > Also I thought I'm creating too many goroutines too fast, and I just > rewrote this part to use no goroutines and channels and return a simple > slice, with no good effect: > > https://github.com/sdsc/pdm/blob/master/lustre_backend.go#L73 > > What I'm wondering about is the time it takes to get the error - very > close to 10 minutes all the time. Not even dependent on the number of > workers (I have a setting for that and trying with 1-5 workers) > > On Thursday, June 1, 2017 at 5:54:51 PM UTC-7, Dave Cheney wrote: >> >> Does the machine (vm, container, etc) you are running this application >> have any swap configured. >> >> What I think is happening is the momentary spike in potential memory >> usage during the fork / exec cycle is causing the linux memory system to >> refuse to permit the fork. There are several open issues for this, search >> clone or vfork on the github.com/golang/go project, but the short >> version is; add swap. >> >> On Friday, 2 June 2017 10:41:10 UTC+10, Dmitry Mishin wrote: >>> >>> Hello all, >>> >>> Trying to fix the out of memory issue in my go app. >>> >>> The app is working fine with no memory usage increasing for 10-15 >>> minutes, then suddenly system starts giving "cannot allocate memory" error >>> for any command, same in the app. >>> >>> I attached the trace and heap during the out of memory state >>> >>> The app is finding files and folders in lustre mount, submitting those >>> as amqp messages, and copying the discovered files >>> >>> Thanks for your help! >>> >> -- 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.