Go的runtime.ReadMemStats报告的统计数据是否大约等于ps aux报告的常驻内存集?

时间:2016-05-20 17:41:24

标签: go memory-leaks

Go Go" Sys" runtime.ReadMemStats报告的统计数据或任何其他统计/组合大约等于ps aux报告的常驻记忆集?

或者,假设某些内存可能被换出,那么Sys stat是否大约等于或大于RSS?

我们有一个长期运行的Web服务,处理高频率的请求,我们发现RSS很快就会消耗掉我们服务器上几乎所有的64GB内存。当它达到~85%时,我们的响应时间和我们可以处理的并发请求数量开始出现大幅下降。我在下面列出的运行是在执行大约20个小时之后,并且已经占用了51%的内存。

我试图确定可能的原因是否是内存泄漏(我们对CGO进行了一些调用)。这些数据似乎表明它确实存在,但在我走下那个兔子洞之前,我想排除对我用来打电话的统计数据的基本误解。

这是一个定位amd64的{​​{1}}内容,并在linux上执行。

CentOS报道:

runtime.ReadMemStats

Alloc: 1294777080 bytes (1234.80MB) // bytes allocated and not yet freed Sys: 3686471104 bytes (3515.69MB) // bytes obtained from system (sum of XxxSys below) HeapAlloc: 1294777080 bytes (1234.80MB) // bytes allocated and not yet freed (same as Alloc above) HeapSys: 3104931840 bytes (2961.09MB) // bytes obtained from system HeapIdle: 1672339456 bytes (1594.87MB) // bytes in idle spans HeapInuse: 1432592384 bytes (1366.23MB) // bytes in non-idle span 报道:

ps aux

0 个答案:

没有答案