go 是常驻内存吗_关于常驻内存RES,pprof,heap,threadcreate的疑问

小弟写了个简单后台用来接收POST请求上传过来的文件,并保存到后台本地。在做测试的时候,每一次请求上传5个文件,5个文件大小总和大概在300-400k的范围,测试的时候模拟客户端并发1000个POST上传文件。后台处理完1000请求后 RES直接上到500MB,查看/debug/pprof/下的threadcreate也直接上到400多个,再并发第二次,第三次… 1000个POST请求,RES在600多MB就不再涨了,threadcreate涨到570以后,增长速度就放缓了,此后七八分钟不再有请求发送RES慢慢再回降到100MB左右,但是threadcreate一直没有降过。上个图吧

1.服务开启:

RES:

+

heap:

+

2.第一次并发1000个POST请求:

处理完请求,RES:

+

处理请求中的heap:

+

处理完请求的heap:

+

heap上看不大懂,三个问题:

+1)是否只需关注inuse?

+2)idle是出于空闲的堆,还未把内存返回给系统?

+3)HeapReleased是指已经还给系统的内存容量?

3.过一段时间,期间没有任何请求,RES就降到100MB左右

gc截图:

+

gc也不是很明白,>__<

scvg10: 590 MB released

scvg10: inuse: 21, idle: 591, sys: 613, released: 590, consumed: 22 (MB)

是指已经释放掉590MB的内存给系统了?13857 (5633205-5619348) objects 13875是指目前系统仍存有的对象数? ‘-‘后面的5619348是指本次GC释放的对象数?

go是否因为避免频繁的申请释放内存,才没有很迅速将内存还给系统,600MB->100MB,期间没任何请求,等了大概7分钟吧

最后,就是threadcreate为什么不会降下来呢,开了那么多线程何用呢?

希望大神指点一二~~谢谢啦!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值