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] 内存占用持续上升不释放 #4137

Open
5 of 7 tasks
Gun-Killer opened this issue Oct 24, 2024 · 16 comments
Open
5 of 7 tasks

[Bug] 内存占用持续上升不释放 #4137

Gun-Killer opened this issue Oct 24, 2024 · 16 comments
Labels
bug Something isn't working

Comments

@Gun-Killer
Copy link

Verify Steps

  • Tracker 我已经在 Issue Tracker 中找过我要提出的问题
  • Branch 我知道 OpenClash 的 Dev 分支切换开关位于插件设置-版本更新中,或者我会手动下载并安装 Dev 分支的 OpenClash
  • Latest 我已经使用最新 Dev 版本测试过,问题依旧存在
  • Relevant 我知道 OpenClash 与 内核(Core)、控制面板(Dashboard)、在线订阅转换(Subconverter)等项目之间无直接关系,仅相互调用
  • Definite 这确实是 OpenClash 出现的问题
  • Contributors 我有能力协助 OpenClash 开发并解决此问题
  • Meaningless 我提交的是无意义的催促更新或修复请求

OpenClash Version

v0.46.046-beta

Bug on Environment

Immortalwrt

OpenWrt Version

ImmortalWrt 23.05-SNAPSHOT r28040-d8de9f4a6f

Bug on Platform

Linux-arm64

Describe the Bug

内存持续上升不释放,直到崩溃,守护程序重启
上传: 9.3 KB/S 下载: 6.3 KB/S 上传总量: 14.8 MB 下载总量: 9.1 MB 活动连接: 50 内存占用: 217.3 MB CPU占用: 0 %

To Reproduce

目前打开qBittorrent软件后,内存会持续上涨

OpenClash Log

见附件

OpenClash Config

No response

Expected Behavior

内存能够主动释放,不再因为内存占用过高而崩溃

Additional Context

[Meta] 当前内核版本 alpha-g3e966e8
OpenClash 调试日志.txt

@Gun-Killer Gun-Killer added the bug Something isn't working label Oct 24, 2024
@Gun-Killer Gun-Killer changed the title [Bug] [Bug] 内存占用持续上升不释放 Oct 24, 2024
@xianren78
Copy link

image
仅代理常用端口试试

@JIZHENQIANG
Copy link

我也出现了软件开启时间久了就会漏国内ip到内核,就是国内ip绕过内核失效了,重启可以暂时解决,启动时间长一点又会这样,感觉也是这个原因造成的

@kingfingerpro
Copy link

我也出现了软件开启时间久了就会漏国内ip到内核,就是国内ip绕过内核失效了,重启可以暂时解决,启动时间长一点又会这样,感觉也是这个原因造成的

一样有这个问题,而且“启用第二DNS服务器"也会跟着失效,检查/tmp/dnsmasq.d目录发现dnsmasq_openclash_custom_domain.conf文件不存在,只有主动关闭openclash然后启用才能恢复正常,怀疑跟快速启动有关系,应该是自动更新数据库导致程序重启时套用了快速启动的逻辑。

@digiw
Copy link

digiw commented Oct 27, 2024

你们的ipv6设置(openclash中)是否开启? ipv4,ipv6各设置了什么运行模式?

@Gun-Killer
Copy link
Author

图像仅代理常用端口试试

Fake 模式没这个选项

@Gun-Killer
Copy link
Author

你们的ipv6设置(openclash中)是否开启? ipv4,ipv6各设置了什么运行模式?

开启了.Fake 混合 和 TProxy

@digiw
Copy link

digiw commented Oct 27, 2024

你们的ipv6设置(openclash中)是否开启? ipv4,ipv6各设置了什么运行模式?

开启了.Fake 混合 和 TProxy

由于相关项比较多,可以约束条件来快速排查,我暂时没有遇到类似问题,建议你尝试:

  1. 先切换到redir-host模式,ipv4模式为tun混合,网络栈选择(system);
  2. ipv6设置选择tun(仅meta)模式;

如果上述设置内存占用和其他都正常,那么建议你按以下顺序分步骤每修改一个选项后,观测一段时间,直到定位到问题点,
假设一开始网络栈选项始终是system不变(否则先将system改为你之前的设置值,做观察),
然后:

  1. 将ipv6改为tproxy,观察,如没问题,
  2. 将redir-host切换成fakeip,再观察。

@Gun-Killer
Copy link
Author

你们的ipv6设置(openclash中)是否开启? ipv4,ipv6各设置了什么运行模式?

开启了.Fake 混合 和 TProxy

由于相关项比较多,可以约束条件来快速排查,我暂时没有遇到类似问题,建议你尝试:

  1. 先切换到redir-host模式,ipv4模式为tun混合,网络栈选择(system);
  2. ipv6设置选择tun(仅meta)模式;

如果上述设置内存占用和其他都正常,那么建议你按以下顺序分步骤每修改一个选项后,观测一段时间,直到定位到问题点, 假设一开始网络栈选项始终是system不变(否则先将system改为你之前的设置值,做观察), 然后:

  1. 将ipv6改为tproxy,观察,如没问题,
  2. 将redir-host切换成fakeip,再观察。

根据你的建议,只要IPv6 模式设置为TProxy,内存就会一直上涨。改为tun(仅meta)目前稳定在80MB左右。

@digiw
Copy link

digiw commented Oct 27, 2024

你们的ipv6设置(openclash中)是否开启? ipv4,ipv6各设置了什么运行模式?

开启了.Fake 混合 和 TProxy

由于相关项比较多,可以约束条件来快速排查,我暂时没有遇到类似问题,建议你尝试:

  1. 先切换到redir-host模式,ipv4模式为tun混合,网络栈选择(system);
  2. ipv6设置选择tun(仅meta)模式;

如果上述设置内存占用和其他都正常,那么建议你按以下顺序分步骤每修改一个选项后,观测一段时间,直到定位到问题点, 假设一开始网络栈选项始终是system不变(否则先将system改为你之前的设置值,做观察), 然后:

  1. 将ipv6改为tproxy,观察,如没问题,
  2. 将redir-host切换成fakeip,再观察。

根据你的建议,只要IPv6 模式设置为TProxy,内存就会一直上涨。改为tun(仅meta)目前稳定在80MB左右。

nice,看样子这个问题还是出在ipv6的模式上

@ATFieldBeast
Copy link

你们的ipv6设置(openclash中)是否开启? ipv4,ipv6各设置了什么运行模式?

开启了.Fake 混合 和 TProxy

由于相关项比较多,可以约束条件来快速排查,我暂时没有遇到类似问题,建议你尝试:

  1. 先切换到redir-host模式,ipv4模式为tun混合,网络栈选择(system);
  2. ipv6设置选择tun(仅meta)模式;

如果上述设置内存占用和其他都正常,那么建议你按以下顺序分步骤每修改一个选项后,观测一段时间,直到定位到问题点, 假设一开始网络栈选项始终是system不变(否则先将system改为你之前的设置值,做观察), 然后:

  1. 将ipv6改为tproxy,观察,如没问题,
  2. 将redir-host切换成fakeip,再观察。

根据你的建议,只要IPv6 模式设置为TProxy,内存就会一直上涨。改为tun(仅meta)目前稳定在80MB左右。

nice,看样子这个问题还是出在ipv6的模式上

我是之前切meta内核后内存会一直涨,不得已就没用meta内核。上次更新只能用meta内核后研究了一下,发现用redir-host加tun或者混合就不会涨了;之前不管是redir-host加兼容还是fakeip,只要是同时用meta内核都会涨,不用meta内核什么配置都不会涨(另外都是开着ipv6的情况下),个人感觉是meta内核和tun里面有什么关联的东西(

@yellowsavant
Copy link

定时重启下clash就行了

@loongtail
Copy link

我也遇到同样的问题,版本是0.46.033-beta,meta版本alpha-g59a2b24,模式用过Fake-ip增强和redir-host混合,不一样的是我一直关闭IPV6,日志也不会提示有IPV6的DHCP服务开启,也是在开启qBittorrent后半个小时左右就触发oom了,之前一直查不出来,后面上了rsyslog把日志拖出来才发现内存一直在升。一开始用定时重启clash的方法维持了几天发现不现实,只要多了某个程序在跑的情况下这个重启间隔就要重新计算,目前只能在watchdog里面加了一段内存检测的函数决定要不要重启

@giveup
Copy link

giveup commented Nov 5, 2024

Mihomo是支持主动gc来回收内存的,https://wiki.metacubex.one/api/#debuggc
但这个只能治标,本质原因是开启的连接数过多导致占有内存过高(尤其是BT下载会开启大量连接)

@digiw
Copy link

digiw commented Nov 5, 2024

你们的ipv6设置(openclash中)是否开启? ipv4,ipv6各设置了什么运行模式?

开启了.Fake 混合 和 TProxy

由于相关项比较多,可以约束条件来快速排查,我暂时没有遇到类似问题,建议你尝试:

  1. 先切换到redir-host模式,ipv4模式为tun混合,网络栈选择(system);
  2. ipv6设置选择tun(仅meta)模式;

如果上述设置内存占用和其他都正常,那么建议你按以下顺序分步骤每修改一个选项后,观测一段时间,直到定位到问题点, 假设一开始网络栈选项始终是system不变(否则先将system改为你之前的设置值,做观察), 然后:

  1. 将ipv6改为tproxy,观察,如没问题,
  2. 将redir-host切换成fakeip,再观察。

根据你的建议,只要IPv6 模式设置为TProxy,内存就会一直上涨。改为tun(仅meta)目前稳定在80MB左右。

image
最近内核与客户端都有更新,我切换到ipv6的 tproxy模式暂时没发现异常,推荐你尝试看是否有修复。

@loongtail
Copy link

loongtail commented Nov 7, 2024

你们的ipv6设置(openclash中)是否开启? ipv4,ipv6各设置了什么运行模式?

开启了.Fake 混合 和 TProxy

由于相关项比较多,可以约束条件来快速排查,我暂时没有遇到类似问题,建议你尝试:

  1. 先切换到redir-host模式,ipv4模式为tun混合,网络栈选择(system);
  2. ipv6设置选择tun(仅meta)模式;

如果上述设置内存占用和其他都正常,那么建议你按以下顺序分步骤每修改一个选项后,观测一段时间,直到定位到问题点, 假设一开始网络栈选项始终是system不变(否则先将system改为你之前的设置值,做观察), 然后:

  1. 将ipv6改为tproxy,观察,如没问题,
  2. 将redir-host切换成fakeip,再观察。

根据你的建议,只要IPv6 模式设置为TProxy,内存就会一直上涨。改为tun(仅meta)目前稳定在80MB左右。

image 最近内核与客户端都有更新,我切换到ipv6的 tproxy模式暂时没发现异常,推荐你尝试看是否有修复。

我觉得可以确定是qbit引起的,昨天重刷了固件后装好openclash并关闭了ipv6,用了一个晚上没有任何问题,早上出门前开了qbit,回家发现有多条崩溃记录

2024-11-07 17:58:24 守护程序:检测到 Clash 内核崩溃,重启中...
2024-11-07 17:33:12 守护程序:检测到 Clash 内核崩溃,重启中...
2024-11-07 17:01:58 守护程序:检测到 Clash 内核崩溃,重启中...
2024-11-07 16:09:25 守护程序:检测到 Clash 内核崩溃,重启中...
2024-11-07 15:25:46 守护程序:检测到 Clash 内核崩溃,重启中...
2024-11-07 14:48:26 守护程序:检测到 Clash 内核崩溃,重启中...
2024-11-07 13:59:41 守护程序:检测到 Clash 内核崩溃,重启中...
2024-11-07 13:15:21 守护程序:检测到 Clash 内核崩溃,重启中...
2024-11-07 12:31:01 守护程序:检测到 Clash 内核崩溃,重启中...
2024-11-07 11:45:29 守护程序:检测到 Clash 内核崩溃,重启中...
2024-11-07 10:29:59 守护程序:检测到 Clash 内核崩溃,重启中...
2024-11-07 09:46:20 守护程序:检测到 Clash 内核崩溃,重启中...
2024-11-07 09:03:19 守护程序:检测到 Clash 内核崩溃,重启中...
2024-11-07 08:15:57 守护程序:检测到 Clash 内核崩溃,重启中...
2024-11-07 07:46:05 守护程序:检测到 Clash 内核崩溃,重启中...
2024-11-07 06:43:29 守护程序:检测到 Clash 内核崩溃,重启中...
2024-11-06 21:31:37 OpenClash 启动成功,请等待服务器上线!
2024-11-06 21:31:37 第八步: 添加计划任务,启动进程守护程序...
2024-11-06 21:31:34 第七步: 重启 Dnsmasq 程序...
2024-11-06 21:31:34 提示:开始添加自定义防火墙规则...
2024-11-06 21:31:34 提示:正在根据防火墙端口转发和防火墙通信规则添加端口绕过规则...
2024-11-06 21:31:33 提示:DNS 劫持模式为 Dnsmasq 转发...
2024-11-06 21:31:33 第六步: 设置防火墙规则...
2024-11-06 21:31:30 第五步: 检查内核启动状态...
2024-11-06 21:31:29 配置文件【/etc/openclash/ss.yaml】测试成功...
2024-11-06 21:31:27 启动前调用内核测试配置文件...
2024-11-06 21:31:27 第四步: 启动主程序...
2024-11-06 21:31:27 提示:开始运行自定义覆写脚本...
2024-11-06 21:31:24 第三步: 修改配置文件...
2024-11-06 21:31:24 提示:由于文件【 /etc/config/openclash 】被修改,暂停快速启动...
2024-11-06 21:31:24 第二步: 组件运行前检查...
2024-11-06 21:31:24 第一步: 获取配置...
2024-11-06 21:31:24 OpenClash 开始启动...
2024-11-06 21:31:24 第六步:删除 OpenClash 残留文件...
2024-11-06 21:31:17 第五步: 重启 Dnsmasq 程序...
2024-11-06 21:31:17 第四步: 关闭 Clash 主程序...
2024-11-06 21:31:17 第三步: 关闭 OpenClash 守护程序...
2024-11-06 21:31:16 第二步: 删除 OpenClash 防火墙规则...
2024-11-06 21:31:15 第一步: 备份当前策略组状态...
2024-11-06 21:31:15 OpenClash 开始关闭...
2024-11-06 21:31:15 OpenClash 重新启动中...

@Gun-Killer
Copy link
Author

你们的ipv6设置(openclash中)是否开启? ipv4,ipv6各设置了什么运行模式?

开启了.Fake 混合 和 TProxy

由于相关项比较多,可以约束条件来快速排查,我暂时没有遇到类似问题,建议你尝试:

  1. 先切换到redir-host模式,ipv4模式为tun混合,网络栈选择(system);
  2. ipv6设置选择tun(仅meta)模式;

如果上述设置内存占用和其他都正常,那么建议你按以下顺序分步骤每修改一个选项后,观测一段时间,直到定位到问题点, 假设一开始网络栈选项始终是system不变(否则先将system改为你之前的设置值,做观察), 然后:

  1. 将ipv6改为tproxy,观察,如没问题,
  2. 将redir-host切换成fakeip,再观察。

根据你的建议,只要IPv6 模式设置为TProxy,内存就会一直上涨。改为tun(仅meta)目前稳定在80MB左右。

image 最近内核与客户端都有更新,我切换到ipv6的 tproxy模式暂时没发现异常,推荐你尝试看是否有修复。

问题依然存在。

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

9 participants