用google/gops診斷Golang程式
在github上發現一個有趣的程式。 google/gops可以列出本機正在執行的Go程式,並診斷程式,可以檢視程式的堆疊,執行時等資訊 只需要在程式里加入github.com/google/gops/agent包,一個簡單的例子
// gopsTest project main.go
package main
import (
"log"
"time"
"github.com/google/gops/agent"
)
func main() {
if err := agent.Listen(&agent.Options{}); err != nil {
log.Fatal(err)
}
time.Sleep(time.Hour)
}
➜ bin gops
8548 gops (/home/myml/src/go/bin/gops)
8302* gopsTest (/tmp/gopsTest)
➜ bin gops memstats 8302
alloc: 194.63KB (199304 bytes)
total-alloc: 194.63KB (199304 bytes)
sys: 1.66MB (1740800 bytes)
lookups: 9
mallocs: 1182
frees: 67
heap-alloc: 194.63KB (199304 bytes)
heap-sys: 704.00KB (720896 bytes)
heap-idle: 136.00KB (139264 bytes)
heap-in-use: 568.00KB (581632 bytes)
heap-released: 0 bytes
heap-objects: 1115
stack-in-use: 320.00KB (327680 bytes)
stack-sys: 320.00KB (327680 bytes)
next-gc: when heap-alloc >= 4.27MB (4473924 bytes)
last-gc: -
gc-pause: 0s
num-gc: 0
enable-gc: true
debug-gc: false
也可以遠端診斷
➜ bin gops stats 127.0.0.1:41861
goroutines: 6
OS threads: 9
GOMAXPROCS: 4
num CPU: 4
更多的命令
Usage: gops is a tool to list and diagnose Go processes.
Commands:
stack Prints the stack trace.
gc Runs the garbage collector and blocks until successful.
memstats Prints the allocation and garbage collection stats.
version Prints the Go version used to build the program.
stats Prints the vital runtime stats.
help Prints this help text.
Profiling commands:
trace Runs the runtime tracer for 5 secs and launches "go tool trace".
pprof-heap Reads the heap profile and launches "go tool pprof".
pprof-cpu Reads the CPU profile and launches "go tool pprof".
All commands require the agent running on the Go process.
Symbol "*" indicates the process runs the agent.
相關文章
- google/gops:一個列出和診斷系統中正在執行Go 程式的命令列工具。Go命令列
- 實用的Google安全瀏覽診斷工具Go
- [JVM] 應用診斷工具之Fastthread(線上診斷)JVMASTthread
- 用 Arthas 神器來診斷 HBase 異常程式
- 線上診斷神器-arthas基本應用
- 如何利用 Webshell 診斷 EDAS Serverless 應用WebshellServer
- ThreadDump和Java應用診斷(轉)threadJava
- Thread Dump 和Java應用診斷threadJava
- ORACLE診斷案例Oracle
- Oracle故障診斷Oracle
- ORACLE診斷事件Oracle事件
- 診斷事件(1)事件
- 用Oracle跟蹤診斷掛起的會話Oracle會話
- 機器學習之模型診斷機器學習模型
- Java診斷利器ArthasJava
- SQL問題診斷SQL
- oracle 效能診斷工具Oracle
- Oracle診斷事件列表Oracle事件
- ORACLE診斷事件(zt)Oracle事件
- 分析:全面診斷FACEBOOK
- 用於gotesting的Golang斷言庫Golang
- 用更雲原生的方式做診斷|大規模 K8s 叢集診斷利器深度解析K8S
- Arthas線上java程式診斷工具 線上除錯神器Java除錯
- ORACLE 如何診斷高水位爭用(enq: HW – contention)OracleENQ
- 免費網站seo診斷:從哪些維度進行診斷呢?網站
- Oracle診斷事件列表(轉)Oracle事件
- Java執行緒診斷Java執行緒
- oracle診斷工具-RDA使用Oracle
- iostat -x命令診斷iOS
- 案例 - EBS SQL效能診斷SQL
- awr診斷分析之二
- 等待事件快速定位診斷事件
- ASM磁碟故障診斷(二)ASM
- ASM磁碟故障診斷(一)ASM
- 故障診斷學習工具
- oracle 事件診斷詳細Oracle事件
- oracle sqlt(sqltxplain) 診斷工具OracleSQLAI
- Oracle診斷工具RDA使用Oracle