-
Notifications
You must be signed in to change notification settings - Fork 50
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
性能问题:应用启动或运行过程中出现OOM #121
Comments
本项目没有部署性能监控和链路跟踪吗?性能问题纯靠猜很难定位真正的问题啊。 |
2G内存的服务器再塞这些有点过分了。分析过OOM时的dump数据。占用大量内存的主要对象的类型为 MongoBatchCursorAdapter 和 ArrayList 通过nginx access_log可以发现访问量最多的接口为 query 接口,qps 最高有30多,通过nginx切断请求后启动应用再恢复也恢复了正常。 恢复正常后通过修改前端请求的limit再次导致了OOM |
如果是这样的话,加缓存和限制 limit 这些手段确实简单有效。 |
这样优化会不会更合理: |
我觉得挺好的 我想到的也是这个 |
我目前已经写的差不多了,正在做旧数据迁移的代码编写,等我散完步回来再做一下测试,然后就发个PR看看。 |
你认为是运行的时候,读到旧数据就迁移,还是搞一个定时任务统一迁移?定时任务统一迁移在完全迁移前还是得照顾旧数据,要做识别,我目前的代码是碰到旧数据就迁移,然后逻辑差不多,所以就复制粘贴了好几个,确认迁移完了以后只要把这些代码都移除就行。 |
热门数据的ratingUser里应该至少上百了吧 查询的时候迁移不知道会不会造成阻塞? |
这倒是不会,因为原先的旧数据在每次查询的时候都会便利一下找到自己是否有出现在ratingUser中,迁移数据的时空复杂度和这一个操作基本是同一个量级。 |
也是 |
私以为,以目前首页每次查询都会遍历50个数组的情况,能坚持到近一段时间才出现oom,已经够离谱的了。 |
优化可能性:
The text was updated successfully, but these errors were encountered: