Ysa*_*sak 0 memory-leaks memory-management go
我已经使用golang来使用golang反向代理构建应用程序api网关,但是我能够看到逐渐增加内存并且我试图分析,这里是启动后几小时内的图形.这有什么不对或预期.所有的分配都来自内置软件包和negroni mux.
当然,监视您的应用程序,以便了解驱动器的使用情况(当前请求的数量等),然后将其与资源使用情况(CPU,内存,当前存在的goroutine数量等)相关联.您应该具有应用程序资源使用的因果模型,并监视重大偏差.总之,采用系统的方法来衡量和监控资源使用情况.
导入"运行时"
func NumGoroutine()int
NumGoroutine返回当前存在的goroutine数.
例如,监视并关联当前存在的goroutine的数量.根据关键应用程序驱动程序(如当前请求的数量),goroutine的数量应在稳定状态下振荡.
如果您没有在程序中正确终止goroutine,那么它们将成为非活动孤儿.Orphan goroutines保留内存,goroutine内存泄漏.随着时间的推移,您应该看到内存使用量稳步增长.
你的应用程序的goroutine模型是什么?您的申请的goroutine统计数据是什么?它们与记忆有关吗?它们与增加时间相关吗?