I have a MikroTik RouterBOARD 750Gr3 with OpenWrt 22.03.5. I have installed the latest version of xray, 1.8.3. However, I am facing an issue with its RAM usage over time. The RAM usage increases gradually until the free memory becomes around 10MB, and then the xray service crashes. Is there anything I can do to address this problem? I have set up a cron job to restart the service every hour, but I'm looking for a more permanent solution to manage its memory usage effectively.
xray service file:
#!/bin/sh /etc/rc.common
START=99
USE_PROCD=1
##### ONLY CHANGE THIS BLOCK ######
PROG=/usr/bin/xray #
CONF=/etc/xray/config.json # where is the config file, it can be a relative path to $RES_DIR
##### ONLY CHANGE THIS BLOCK ######
start_service() {
procd_open_instance
procd_set_param command $PROG --config $CONF
procd_set_param user root
procd_set_param limits core="unlimited"
procd_set_param limits nofile="1000000 1000000"
procd_set_param stdout 1
procd_set_param stderr 1
procd_set_param respawn "${respawn_threshold:-3600}" "${respawn_timeout:-5}" "${respawn_retry:-5}"
procd_close_instance
/usr/sbin/nft -f /etc/xray/nftables.conf
/sbin/ip route add local default dev lo table 100
/sbin/ip rule add fwmark 1 table 100
echo "xray is started!"
}
stop_service() {
service_stop $PROG
/usr/sbin/nft flush table ip xray
/sbin/ip route del local default dev lo table 100
/sbin/ip rule del table 100
echo "xray is stopped!"
}
reload_service() {
/usr/sbin/nft -f /etc/xray/nftables.conf
stop
sleep 2s
echo "xray is restarted!"
start
}
xray config file
{
"inbounds": [
{
"tag": "all-in",
"port": 12345,
"protocol": "dokodemo-door",
"settings": {
"network": "tcp,udp",
"followRedirect": true
},
"sniffing": {
"enabled": true,
"destOverride": ["http", "tls"]
},
"streamSettings": {
"sockopt": {
"tproxy": "tproxy"
}
}
}
],
"outbounds": [
{
"tag": "direct",
"protocol": "freedom",
"settings": {
"domainStrategy": "UseIPv4"
},
"streamSettings": {
"sockopt": {
"mark": 2
}
}
},
{
"protocol": "vless",
"settings": {
"vnext": [
{
"address": "",
"port": 443,
"users": [
{
"id": "",
"encryption": "none",
"flow": ""
}
]
}
]
},
"streamSettings": {
"network": "h2",
"security": "reality",
"realitySettings": {
"show": false,
"fingerprint": "chrome",
"serverName": "",
"publicKey": "",
"shortId": "",
"spiderX": ""
}
},
"tag": "proxy"
},
{
"tag": "block",
"protocol": "blackhole",
"settings": {
"response": {
"type": "http"
}
}
},
{
"tag": "dns-out",
"protocol": "dns",
"settings": {
"address": "8.8.8.8"
},
"proxySettings": {
"tag": "proxy"
},
"streamSettings": {
"sockopt": {
"mark": 2
}
}
}
],
"routing": {
"domainStrategy": "IPIfNonMatch",
"rules": [
{
"type": "field",
"inboundTag": ["all-in"],
"outboundTag": "proxy"
}
]
}
}
Thanks for you help