You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I am trying to write a simple TCP proxy application with mTCP where basically the proxy can accept multiple TCP connections from a set of clients on the same TCP port and, for every new connection, creates a parallel session with a backend server with another IP:Port.
I have basically copied the epproxy application from this repo [1] (AccelTCP), modifying it in a way that it does not read the HTTP packet content but just forwards all the data from the client socket to the corresponding backend socket (without any hardware-assisted mtcp_splice operation).
You can have a look at the application here [2].
I have tested the application with iperf3, with the proxy redirecting packets from a frontend interface (where the proxy is listening to) to a backend interface (where the backend server is placed).
The problem is that performance are tremendously slow. Within a single core and the default mTCP parameters (rcvbuf = sndbuf = 8192) the reported iperf3 throughput is about 290 Kbits/sec.
I was able to achieve better results increasing the rcvbuf and sndbuf size to around 4MB but with a throughput of 50 Mbits/sec.
I am sure there is something wrong with my applicatsiion but I am not able to understand what.
Any help?
Hi there!
I am trying to write a simple TCP proxy application with mTCP where basically the proxy can accept multiple TCP connections from a set of clients on the same TCP port and, for every new connection, creates a parallel session with a backend server with another IP:Port.
I have basically copied the
epproxy
application from this repo [1] (AccelTCP), modifying it in a way that it does not read the HTTP packet content but just forwards all the data from the client socket to the corresponding backend socket (without any hardware-assistedmtcp_splice
operation).You can have a look at the application here [2].
I have tested the application with iperf3, with the proxy redirecting packets from a frontend interface (where the proxy is listening to) to a backend interface (where the backend server is placed).
The problem is that performance are tremendously slow. Within a single core and the default mTCP parameters (
rcvbuf = sndbuf = 8192
) the reported iperf3 throughput is about290 Kbits/sec
.I was able to achieve better results increasing the rcvbuf and sndbuf size to around 4MB but with a throughput of
50 Mbits/sec
.I am sure there is something wrong with my applicatsiion but I am not able to understand what.
Any help?
Thanks!
[1] https://github.com/acceltcp/AccelTCP/tree/master/apps/epproxy/src
[2] https://github.com/sebymiano/mtcp/blob/blu5_proxy_new/apps/blue5_proxy/blue5_proxy.c
The text was updated successfully, but these errors were encountered: