好奇 Java nodejs 等其他语言后端接口服务长时间运行内存有没有缓慢增长这种情况的

2023-09-28 15:56:06 +08:00
 wuwukai007

还是只有 python 会有?

1163 次点击
所在节点    程序员
10 条回复
codehz
2023-09-28 16:04:10 +08:00
一般是你自己内存写泄漏了
opengps
2023-09-28 16:04:19 +08:00
内存泄漏,很多时候是代码是写的不够规范
我虽然没经历过内存泄漏,但我经历过句柄泄漏,当时仅仅是因为 if 后面没有 else 处理,导致线上应用一周下来几十万个句柄,人肉运维了 2 年多,需要经常主动重启下进程
coderxy
2023-09-28 16:08:29 +08:00
做一下内存分析就知道到底是哪些地方在占用了
c3de3f21
2023-09-28 16:09:00 +08:00
@opengps 长见识了,还有别的情况吗?或者针对这种情况的帖子
wuwukai007
2023-09-28 16:09:13 +08:00
@codehz python 动态语言内存泄露蛮难查的,还有就是缓慢增长,可能每天+50MB 几个月下来也不少大概这种
wuwukai007
2023-09-28 16:10:50 +08:00
python 动态语言内存泄露蛮难查的,还有就是缓慢增长,可能每天+10MB 几个月下来也不少大概这种
opengps
2023-09-28 16:16:46 +08:00
@c3de3f21 再给你分享个我缓存雪崩的案例:
当时我使用的是 memcached ,memcached 的默认过期规则是,超时时间 30 天。所以经历了几次非常诡异的突然资源飙升连接大量断开重连。后来偶然把服务器启动时间结合起来分析出来,原来我重启服务器或者集中升级时候重启了全部服务,导致过期时间太接近,几十万的连接同时因为没有缓存穿透到数据库访问,硬盘坑不住了所以超时断开,反复重复一个小时稳定不下来。当时发现可能是这个因素导致的问题时候,我都觉得我是个神人
3825995121
2023-09-28 16:33:08 +08:00
我用 nodejs 经常遇到 后来我就配置了一下超过 2 个 G 就重启一下
我遇到的大部分是 nodejs 调用 c 或 c++的包 nodejs 可能获取到内存之后不会释放 造成 rss 很高
3825995121
2023-09-28 16:34:50 +08:00
缓慢增长的话 就是直接大量请求压测 然后抓内存信息出来查看
julyclyde
2023-09-28 16:35:00 +08:00
python 我见过漏,有很多迹象指向 numpy
但是没有切实的证据

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/977973

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX