v2ray / v2ray-core

A platform for building proxies to bypass network restrictions.
https://www.v2ray.com/
MIT License
45.46k stars 8.95k forks source link

v2ray lede arm 内存占用过高,直至耗尽内存 #683

Closed ghost closed 7 years ago

ghost commented 7 years ago

提交 Issue 之前请先阅读 Issue 指引,然后回答下面的问题,谢谢。 Please read the instruction and answer the following questions before submitting your issue. Thank you.

1) 你正在使用哪个版本的 V2Ray?(如果服务器和客户端使用了不同版本,请注明) What version of V2Ray are you using (If you deploy different version on server and client, please explicitly point out)?

server: Debian 9, v2ray版本:v2.46
client: Lede 17.01.4 ,v2ray 版本:v2ray-v2.46-linux-arm

2) 你的使用场景是什么?比如使用 Chrome 通过 Socks/VMess 代理观看 YouTube 视频。 What's your scenario of using V2Ray? E.g., Watching YouTube videos in Chrome via Socks/VMess proxy. 树莓派3安装lede 17.01.4,在lede里运行v2ray. PC端:Chrome 通过switchomega设置代理,通过lede中的v2ray进行上网. 3) 你看到的不正常的现象是什么? What did you see? 随着科学上网的时间推移,lede中的可用内存越来越少。当可用内存变为四五十兆的时候,科学上网速度越来越慢,最后无法科学上网。 4) 你期待看到的正确表现是怎样的? What's your expectation? 我期待v2ray 占用的内存是固定的,或者说,当内存占用达到一定值时,v2ray会释放占用的内存。而不是一直占用内存越来越高。 5) 请附上你的配置文件(提交 Issue 前请隐藏服务器端IP地址)。 Please attach your configuration file (Mask IP addresses before submit this issue).

Server Configuration File(服务器端配置文件):

    // 在这里附上服务器端配置文件
    // Please attach your server configuration file here.
   {
  "log" : {
    "access": "/var/log/v2ray/access.log",
    "error": "/var/log/v2ray/error.log",
    "loglevel": "info"
  },
  "inbound": {
    "port": 443,
    "protocol": "vmess",
    "settings": {
      "clients": [
        {
          "id": "****",
          "level": 1,
          "alterId": ****
        }
      ]
    }
  },
  "streamSettings":{
    "network":"kcp",
    "kcpSettings": {
    "mtu": 1350,
    "tti": 20,
    "uplinkCapacity": 5,
    "downlinkCapacity": 100,
    "congestion": false,
    "readBufferSize": 1,
    "writeBufferSize": 1,
    "header": {
    "type": "srtp"
        }
      }
    },
  "outbound": {
    "protocol": "freedom",
    "settings": {}
  }
}

Client Configuration File(客户端配置文件):


    // 在这里附上客户端配置文件
    // Please attach your client configuration file here.
  {
    "log": {
        "loglevel": "warning"
    },
    "inbound": {
        "port": 1080, 
        "protocol": "http",
        "listen":"0.0.0.0",
        "settings": {
      "auth": "noauth",
      "udp": false,
      "ip": "127.0.0.1"
        }
    },
    "outbound": {
        "protocol": "vmess",
        "settings": {
            "vnext": [{
                "address": "****",
                "port": 443,
                "users": [{
                    "id": "****",
                    "alterId": ****
                }]
            }]
        }
    }
}

6) 请附上出错时软件输出的日志。在 Linux 中,日志通常在 /var/log/v2ray/error.log 文件中。 Please attach the log file, especially the bottom lines if the file is large. Log file is usually /var/log/v2ray/error.log on Linux.

Server Log File(服务器端日志):
    // 在这里附上服务器端日志
    // Please attach your server log here.

    服务端日志都正常,都是正常的登陆日志

Client Log File(客户端日志):

    // 在这里附上客户端日志
    // Please attach your client log here.

    客户端日志正常

下图为我树莓派top命令查看内存使用的截图:

default

DarienRaymond commented 7 years ago

你的截图和上述内容不匹配。VSZ 是虚拟内存,Golang 会申请非常大的虚拟内存并且是不能控制的,但不影响使用。你可以看到第一行的 Mem: 912312K free,实际上还有很多空闲内存。

你碰到的速度越来越慢可能是其它问题导致的。

ghost commented 7 years ago

谢谢回复。这个截图是我刚刚启动程序时的截图。 今天我用斐讯K3(512MB ram )做实验,k3 arm架构,刷lede 17.01.4,问题还是出现,可用内存一直减少至七八十兆。不过我用K2P(128MB ram),k2p mips架构,刷pandorabox,内核3.14.79,就没有出现可用内存越用越少的现象。 所以,我猜,这个可用内存越用越少的问题,应该跟固件配置有关。不是v2ray的问题。 再次感谢!