环境: PCF(AWS)
在production环境上传几张图片后,app 内存暴增以及无法释放导致crashed in a short time
解决方案:
- 解决内存不能主动释放问题 - 项目文件增加了GC工作模式 相关文档https://www.iaspnetcore.com/blog/blogpost/5a38af052d485225f4f40be9/net-core-two-kinds-of-gc-mode-server-gc-workstation-gc-settings
2. 解决内存暴增的问题 - 在管道中增加个GC回收的中间件
public class GCMiddleware { private readonly RequestDelegate _next; public GCMiddleware(RequestDelegate next) { _next = next; } public async Task Invoke(HttpContext httpContext) { await _next(httpContext); GC.Collect(2, GCCollectionMode.Forced, true); GC.WaitForPendingFinalizers(); } }
效果:
程序刚启动
连续几十次request之后:
等待几分钟后:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。