Skip to content
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

[Bug] Aratlk 内存泄露问题 #458

Closed
LeenHawk opened this issue Mar 13, 2023 · 17 comments
Closed

[Bug] Aratlk 内存泄露问题 #458

LeenHawk opened this issue Mar 13, 2023 · 17 comments
Labels
bug Something isn't working

Comments

@LeenHawk
Copy link
Contributor

LeenHawk commented Mar 13, 2023

artalk启用之后就一直占越来越多内存:
image
最多的时候把我服务器占满了(>2G)。。。

部署设置:
Debian sid+nginx反代+hexo+next+hexo-next-artalk

@LeenHawk LeenHawk changed the title artalk占满内存 [Bug]artalk占满内存 Mar 13, 2023
@qwqcode
Copy link
Member

qwqcode commented Mar 13, 2023

如果你的评论比较多,请考虑更换 Redis 缓存。为了性能考虑 IP 归属地功能也会占用一部分内存。内存占用和缓存与 IP 归属地缓存功能有关。

>2G 的情况我没有遇到过,况且你截图上显示内存占用 328.2M,你能提供更多信息吗?

@qwqcode
Copy link
Member

qwqcode commented Mar 13, 2023

内存占用过高可能是你的服务器遭受了 DDoS 攻击,可以尝试使用 WAF 防火墙对非法请求进行拦截。

你可以看看你的 Nginx 访问日志,验证这一猜想。

@qwqcode qwqcode added the question Further information is requested label Mar 13, 2023
@LeenHawk
Copy link
Contributor Author

如果你的评论比较多,请考虑更换 Redis 缓存。为了性能考虑 IP 归属地功能也会占用一部分内存。内存占用和缓存与 IP 归属地缓存功能有关。

>2G 的情况我没有遇到过,况且你截图上显示内存占用 328.2M,你能提供更多信息吗?

我查查看,就一条评论都没有啊。。。

@LeenHawk
Copy link
Contributor Author

内存占用过高可能是你的服务器遭受了 DDoS 攻击,可以尝试使用 WAF 防火墙对非法请求进行拦截。

你可以看看你的 Nginx 访问日志,验证这一猜想。

好像就是我一刷新页面就会涨几M。。。

@LeenHawk
Copy link
Contributor Author

LeenHawk commented Mar 13, 2023

内存占用过高可能是你的服务器遭受了 DDoS 攻击,可以尝试使用 WAF 防火墙对非法请求进行拦截。

你可以看看你的 Nginx 访问日志,验证这一猜想。

我怀疑是Ip数据文件路径没写就会内存溢出(好傻的问题hhh),明天没溢出就应该是这个问题了

@LeenHawk
Copy link
Contributor Author

内存占用过高可能是你的服务器遭受了 DDoS 攻击,可以尝试使用 WAF 防火墙对非法请求进行拦截。

你可以看看你的 Nginx 访问日志,验证这一猜想。

不行,还是一停又300M了,我查了昨天晚上的nginx,一共就一千多条,不多啊。。。

@LeenHawk
Copy link
Contributor Author

内存占用过高可能是你的服务器遭受了 DDoS 攻击,可以尝试使用 WAF 防火墙对非法请求进行拦截。

你可以看看你的 Nginx 访问日志,验证这一猜想。

请问一下一般默认打开IP缓存会占多少内存啊,300M正常吗,昨天晚上主要是半夜突然内存爬满了

@qwqcode
Copy link
Member

qwqcode commented Mar 13, 2023

我这边 100MB 左右,你可以看看 Artalk 日志,有报错吗

@LeenHawk
Copy link
Contributor Author

我这边 100MB 左右,你可以看看 Artalk 日志,有报错吗

切成redis了,好像搞定了,大概是Debian Sid可能有啥问题,之前都没报错,估计可能哪设置成我DDOS我自己了

@LeenHawk LeenHawk reopened this Mar 14, 2023
@dianso
Copy link

dianso commented Jun 4, 2023

我是debian11+goblog+artalk 评论不多,每天访问量1W PV左右,内存使用在700-1G左右。。

@DejavuMoe
Copy link

有类似的情况

  • Debian 12 (ARM64) 上使用 Docker 部署
  • 使用 Nginx 反代(Docker 外部)
  • 刚切换到 Artalk 不久,评论数据不多
  • 启用 IP 归属地,IP 数据库文件使用默认路径(后台配置界面「数据文件路径」留空)
  • 未启用 Redis 缓存

运行一周后 RAM 占用达到 2 个 GB 以上
SCR-20230617-tvco
手动重新启动容器后占用暂时恢复正常
SCR-20230617-tvnt-2

过几天再看看……

@qwqcode qwqcode reopened this Jun 17, 2023
@qwqcode qwqcode added bug Something isn't working and removed question Further information is requested labels Jun 17, 2023
@GoodBoyboy666
Copy link

如果使用redis的话情况会好很多,我总共200条评论占用28.5MB的内存

@DejavuMoe
Copy link

不知道是不是玄学,按照 @LeenHawk 的把 IP 数据库地址填了一下,最近一个多月都稳定在 300 多 MB 左右,暂时没有出现内存无限增大的情况了
image

@qwqcode
Copy link
Member

qwqcode commented Sep 1, 2023

Artalk 之前默认启用缓存,以获得更好的性能提升,但对于普通博客网站来说,感知不强,且占用内存过多,这对于在轻量级服务器上部署并不友好。

由于纯 SQLite 不带缓存即可满足日常需求,新版 v2.6.0 将默认禁用缓存,经测试内存占用仅有 10~20MB 左右(如图)。

image

对于性能要求较高的网站,可以在设置手动启用缓存。内建缓存使用了 Go 依赖 bigcache (可能会占用较多内存),你也可以选择使用 Redis。

新版对后端程序进行大量重构,并且添加了许多单元测试,以提高扩展性和稳定性(#560)。后续的版本将持续对 SQL 关联查询进行优化,例如解决 N+1 查询问题,以获得更好的性能。

相关内容:

@dianso
Copy link

dianso commented Sep 3, 2023

感谢,内存占用,确实少了。
看了下新的配置文件,默认关闭缓存了。
配置文件里面也少了ip数据库那些选项。

1 similar comment
@dianso
Copy link

dianso commented Sep 3, 2023

感谢,内存占用,确实少了。
看了下新的配置文件,默认关闭缓存了。
配置文件里面也少了ip数据库那些选项。

@qwqcode
Copy link
Member

qwqcode commented Apr 18, 2024

嗨,最近又发现和修复了一个内存泄露问题,已将 logrus 日志库替换为 zap 从而解决,后续将发布包含修复的更新

PR 见:#843

@qwqcode qwqcode changed the title [Bug]artalk占满内存 [Bug] Aratlk 内存泄露问题 Apr 18, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

5 participants