esrrhs / spp

A simple and powerful proxy
MIT License
835 stars 121 forks source link

连接数持续增长 #14

Open 2605759123 opened 2 years ago

2605759123 commented 2 years ago

感谢你的工作。 我尝试使用rhttp进行反向代理,即:

./spp -type server -proto rhttp -listen :8888
./spp -type reverse_proxy_client -server www.test.com:8888 -fromaddr :2223 -toaddr :2223 -proxyproto tcp -proto rhttp

但是我在客户端,也就是执行./spp -type reverse_proxy_client -server www.test.com:8888 -fromaddr :2223 -toaddr :2223 -proxyproto tcp -proto rhttp的端,发现了连接数持续增长的情况:

lsof -p 24393|wc -l
11979

一个多小时,连接数已经1W+了,并且还在持续增长中。 并且所占用的内存也在持续增长:

VIRT  RES 
970M  277M
esrrhs commented 2 years ago

嗯,这应该是个bug,我看看,先尝试别的proyo吧

2605759123 commented 2 years ago

嗯,这应该是个bug,我看看,先尝试别的proyo吧

非常感谢。 我必须用http协议(网络环境限制)

2605759123 commented 2 years ago

@esrrhs 您好,请问你知道github上还有其他的类似您这个工作的项目吗,我想先验证一下目前我想法的整个流程是否能通。

esrrhs commented 2 years ago

@esrrhs 您好,请问你知道github上还有其他的类似您这个工作的项目吗,我想先验证一下目前我想法的整个流程是否能通。

不清楚呢

2605759123 commented 2 years ago

嗯嗯

lz520520 commented 2 years ago

这个问题也遇到了,只需要给rhttpconn.go里的postData设计一个全局client,即连接池就能解决,但内存还是会不断往上涨,可能是GC的问题了。

lz520520 commented 2 years ago

想问下像rhttp、ricmp这种反向代理的实现思路,是client端不间断请求server来拉数据实现的吗,server接收到需要代理的数据,先缓存队列,然后等client依次来来取,并且将结果也推送至server吧。否则icmp、http这种单工协议,也没法服务端主动推数据给client吧

esrrhs commented 2 years ago

差不多这样