On linux/amd64 using go1.8rc3, I'm seeing one Go built process peg one cpu
to 100% after running for a few minutes.
Tasks: 499 total, 1 running, 497 sleeping, 0 stopped, 1
zombie
%Cpu(s): 2.8 us, 3.5 sy, 0.0 ni, 93.7 id, 0.0 wa, 0.0 hi, 0.0 si,
0.0
st
KiB Mem : 12356040+total, 65169064 free, 5018704 used, 53372628
buff/cache
KiB Swap: 0 total, 0 free, 0 used. 11790566+avail
Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+
COMMAND
84359 jaten 20 0 1156916 52152 4632 S 100.7 0.0 9:05.82
vhaline -info -web -addr
loc+
84486 jaten 20 0 941964 19884 4268 S 0.7 0.0 0:05.58
vhaline -info -addr
localhos+
84501 jaten 20 0 1020484 14712 4216 S 0.7 0.0 0:04.95
vhaline -info -addr localhos+
when I profile, I get alot fo runtime._ExternalCode. What is that and what
does it mean?
$ go tool pprof --nodefraction=0.1 vhaline
./profile.cpu.runaway.rootnode
Entering interactive mode (type "help" for
commands)
(pprof)
top10
21.16s of 29.97s total
(70.60%)
Dropped 55 nodes (cum <=
3s)
Showing top 10 nodes out of 16 (cum >=
10.61s)
flat flat% sum% cum
cum%
13.55s 45.21% 45.21% 13.55s 45.21%
runtime._ExternalCode
6.23s 20.79% 66.00% 7.85s 26.19%
syscall.Syscall
0.27s 0.9% 66.90% 16.42s 54.79%
github.com/glycerine/vhaline/vhaline.(*srvReader).start.func1
0.25s 0.83% 67.73% 10.20s 34.03%
net.(*netFD).Read
0.23s 0.77% 68.50% 3.96s 13.21%
net.setDeadlineImpl
0.20s 0.67% 69.17% 10.96s 36.57%
bufio.(*Reader).Peek
0.12s 0.4% 69.57% 10.76s 35.90%
bufio.(*Reader).fill
0.11s 0.37% 69.94% 11.09s 37.00%
github.com/glycerine/tmframe2.(*FrameReader).NextFrame
0.11s 0.37% 70.30% 7.96s 26.56%
syscall.read
0.09s 0.3% 70.60% 10.61s 35.40%
net.(*conn).Read
(pprof)
source code is here; the processes can be built from
https://github.com/glycerine/vhaline at commit commit
ca32a98799b87627798e05bb8e6cc29d9cac7ec3 or using tag "runaway".
pprof profiling was turned on; could this account for this peg?
I was running three vhaline processes in a chain; the cpu peg happened to
the first process, but I've also seen it happen for the 2nd.
they were started like this, in three separate shells
$ vhaline -info -web -addr localhost:9000 #
process 84359
$ vhaline -info -addr localhost:9001 -parent localhost:9000 -cpu #
process 84486
$ vhaline -info -addr localhost:9002 -parent localhost:9001 -cpu #
process 84501
Since there is nothing that changes in the processes over time, the fact
that it kicks in after a few minutes makes me think it may be a garbage
collection issue.
--
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.