diff --git a/pkg/guestagent/api/client/client.go b/pkg/guestagent/api/client/client.go index 8b4cd079f79..cc1a1169d54 100644 --- a/pkg/guestagent/api/client/client.go +++ b/pkg/guestagent/api/client/client.go @@ -21,14 +21,18 @@ type GuestAgentClient struct { func NewGuestAgentClient(dialFn func(ctx context.Context) (net.Conn, error)) (*GuestAgentClient, error) { opts := []grpc.DialOption{ + grpc.WithTransportCredentials(NewCredentials()), + grpc.WithInitialWindowSize(512 << 20), + grpc.WithInitialConnWindowSize(512 << 20), + grpc.WithReadBufferSize(8 << 20), + grpc.WithWriteBufferSize(8 << 20), grpc.WithDefaultCallOptions( - grpc.MaxCallRecvMsgSize(math.MaxInt64), - grpc.MaxCallSendMsgSize(math.MaxInt64), + grpc.MaxCallRecvMsgSize(math.MaxInt32), + grpc.MaxCallSendMsgSize(math.MaxInt32), ), grpc.WithContextDialer(func(ctx context.Context, _ string) (net.Conn, error) { return dialFn(ctx) }), - grpc.WithTransportCredentials(NewCredentials()), } resolver.SetDefaultScheme("passthrough") diff --git a/pkg/guestagent/api/server/server.go b/pkg/guestagent/api/server/server.go index 296d7c9ec78..ad5124bbab8 100644 --- a/pkg/guestagent/api/server/server.go +++ b/pkg/guestagent/api/server/server.go @@ -8,6 +8,7 @@ import ( "net" "google.golang.org/grpc" + "google.golang.org/grpc/keepalive" "google.golang.org/protobuf/types/known/emptypb" "github.com/lima-vm/lima/v2/pkg/guestagent" @@ -16,7 +17,14 @@ import ( ) func StartServer(lis net.Listener, guest *GuestServer) error { - server := grpc.NewServer() + server := grpc.NewServer( + grpc.InitialWindowSize(512<<20), + grpc.InitialConnWindowSize(512<<20), + grpc.ReadBufferSize(8<<20), + grpc.WriteBufferSize(8<<20), + grpc.MaxConcurrentStreams(2048), + grpc.KeepaliveParams(keepalive.ServerParameters{Time: 0, Timeout: 0, MaxConnectionIdle: 0}), + ) api.RegisterGuestServiceServer(server, guest) return server.Serve(lis) }