我想创建一个在内存中加载数据(可能是1或2百万个项目)的项目或包。我想监视这些数据,并知道这些数据是否在内存上,是否存在。在Java中,可以使用JMX(Java Management Extensions)完成,但在Golang中我不知道它是如何做的。
我想在生产环境中执行此操作,而不仅仅是测试环境。
任何帮助都将不胜感激。
答案 0 :(得分:2)
您可以使用os.GetUsage
来跟踪内存使用情况。然后,您可以使用statsd客户端或直接UDP消息来更新石墨(或任何您喜欢的监控包)。
您可能还会发现这篇文章Monitoring a Production Golang Server with Memstats很有帮助。