Fix multiconn benchmark

This commit is contained in:
Andy Wang 2020-04-11 19:03:44 +01:00
parent 0ddfdb748f
commit 9f413ff23a
1 changed files with 14 additions and 11 deletions

View File

@ -86,18 +86,18 @@ func basicServerState(ws common.WorldState, db *os.File) *server.State {
func establishSession(lcc client.LocalConnConfig, rcc client.RemoteConnConfig, ai client.AuthInfo, serverState *server.State) (common.Dialer, net.Listener, common.Dialer, net.Listener, error) { func establishSession(lcc client.LocalConnConfig, rcc client.RemoteConnConfig, ai client.AuthInfo, serverState *server.State) (common.Dialer, net.Listener, common.Dialer, net.Listener, error) {
// transport // transport
ckClientDialer, ckServerListener := connutil.DialerListener(128) ckClientDialer, ckServerListener := connutil.DialerListener(10 * 1024)
clientSeshMaker := func() *mux.Session { clientSeshMaker := func() *mux.Session {
return client.MakeSession(rcc, ai, ckClientDialer, false) return client.MakeSession(rcc, ai, ckClientDialer, false)
} }
proxyToCkClientD, proxyToCkClientL := connutil.DialerListener(128) proxyToCkClientD, proxyToCkClientL := connutil.DialerListener(10 * 1024)
go client.RouteTCP(proxyToCkClientL, lcc.Timeout, clientSeshMaker) go client.RouteTCP(proxyToCkClientL, lcc.Timeout, clientSeshMaker)
// set up server // set up server
ckServerToProxyD, ckServerToProxyL := connutil.DialerListener(128) ckServerToProxyD, ckServerToProxyL := connutil.DialerListener(10 * 1024)
ckServerToWebD, ckServerToWebL := connutil.DialerListener(128) ckServerToWebD, ckServerToWebL := connutil.DialerListener(10 * 1024)
serverState.ProxyDialer = ckServerToProxyD serverState.ProxyDialer = ckServerToProxyD
serverState.RedirDialer = ckServerToWebD serverState.RedirDialer = ckServerToWebD
@ -267,12 +267,12 @@ func BenchmarkThroughput(b *testing.B) {
b.Fatal(err) b.Fatal(err)
} }
b.Run("single conn write", func(b *testing.B) { b.Run("single conn", func(b *testing.B) {
clientConn, _ := pxyClientD.Dial("", "")
go func() { go func() {
serverConn, _ := pxyServerL.Accept() serverConn, _ := pxyServerL.Accept()
io.Copy(ioutil.Discard, serverConn) io.Copy(ioutil.Discard, serverConn)
}() }()
clientConn, _ := pxyClientD.Dial("", "")
writeBuf := make([]byte, bufSize) writeBuf := make([]byte, bufSize)
b.ResetTimer() b.ResetTimer()
for i := 0; i < b.N; i++ { for i := 0; i < b.N; i++ {
@ -281,12 +281,14 @@ func BenchmarkThroughput(b *testing.B) {
} }
}) })
b.Run("multi conn write", func(b *testing.B) { b.Run("multi conn", func(b *testing.B) {
go func() {
serverConn, _ := pxyServerL.Accept()
io.Copy(ioutil.Discard, serverConn)
}()
const numConns = 1024 const numConns = 1024
for i := 0; i < numConns; i++ {
go func() {
serverConn, _ := pxyServerL.Accept()
io.Copy(ioutil.Discard, serverConn)
}()
}
conns := make([]net.Conn, numConns) conns := make([]net.Conn, numConns)
for i := 0; i < numConns; i++ { for i := 0; i < numConns; i++ {
conns[i], _ = pxyClientD.Dial("", "") conns[i], _ = pxyClientD.Dial("", "")
@ -302,4 +304,5 @@ func BenchmarkThroughput(b *testing.B) {
}) })
}) })
} }
} }