gops:列出和诊断系统中正在运行Go 进程的命令行工具

gops 是一个用来列出系统中正在使用的Go程序,同时还可以诊断正在运行的Go程序。

$ gops
983     uplink-soecks   (/usr/local/bin/uplink-soecks)
52697   gops    (/Users/jbd/bin/gops)
51130   gocode  (/Users/jbd/bin/gocode)

诊断

stack

$ gops <pid> stack
goroutine 35 [running]:
github.com/google/gops/agent.handle(0x11897a0, 0xc4200d0000, 0xc4200c6000, 0x1, 0x1, 0x0, 0x0)
    /Users/jbd/src/github.com/google/gops/agent/agent.go:63 +0x182
github.com/google/gops/agent.init.1.func2(0x1189140, 0xc420078450)
    /Users/jbd/src/github.com/google/gops/agent/agent.go:50 +0x242
created by github.com/google/gops/agent.init.1
    /Users/jbd/src/github.com/google/gops/agent/agent.go:56 +0x240

goroutine 1 [sleep]:
time.Sleep(0x34630b8a000)
    /Users/jbd/go/src/runtime/time.go:59 +0xf7
main.main()
    /Users/jbd/src/github.com/google/gops/examples/hello/main.go:14 +0x30

goroutine 17 [syscall, locked to thread]:
runtime.goexit()
    /Users/jbd/go/src/runtime/asm_amd64.s:2184 +0x1

goroutine 20 [syscall]:
os/signal.signal_recv(0x0)
    /Users/jbd/go/src/runtime/sigqueue.go:116 +0xff
os/signal.loop()
    /Users/jbd/go/src/os/signal/signal_unix.go:22 +0x22
created by os/signal.init.1
    /Users/jbd/go/src/os/signal/signal_unix.go:28 +0x41

goroutine 21 [select, locked to thread]:
runtime.gopark(0x1114a80, 0x0, 0x110d5ec, 0x6, 0x18, 0x2)
    /Users/jbd/go/src/runtime/proc.go:261 +0x13a
runtime.selectgoImpl(0xc42003ff50, 0x0, 0x18)
    /Users/jbd/go/src/runtime/select.go:423 +0x1307
runtime.selectgo(0xc42003ff50)
    /Users/jbd/go/src/runtime/select.go:238 +0x1c
runtime.ensureSigM.func1()
    /Users/jbd/go/src/runtime/signal_unix.go:408 +0x265
runtime.goexit()
    /Users/jbd/go/src/runtime/asm_amd64.s:2184 +0x1

goroutine 34 [chan receive]:
github.com/google/gops/agent.init.1.func1(0xc4200740c0, 0xc4200880e0, 0x13)
    /Users/jbd/src/github.com/google/gops/agent/agent.go:33 +0x40
created by github.com/google/gops/agent.init.1
    /Users/jbd/src/github.com/google/gops/agent/agent.go:36 +0x214

gc

$ gops gc -p=<pid>

memstats

$ gops memstats -p=<pid>
alloc: 219792
total-alloc: 219792
sys: 2822144
lookups: 9
mallocs: 336
frees: 8
heap-alloc: 219792
heap-sys: 1605632
heap-idle: 1015808
heap-in-use: 589824
heap-released: 0
heap-objects: 328
stack-in-use: 491520
stack-sys: 491520
next-gc: 4473924
last-gc: 0 ns ago
gc-pause: 0 ns
num-gc: 0
enable-gc: true
debug-gc: false

version

$ gops version -p=<pid>
devel +4141054 Thu Nov 3 17:42:01 2016 +0000

https://github.com/google/gops

猜你喜欢

转载自my.oschina.net/mickelfeng/blog/1795444