icerpc / icerpc-csharp

A C# RPC framework built for QUIC, with bidirectional streaming, first-class async/await, and Protobuf support.
https://docs.icerpc.dev
Apache License 2.0
92 stars 14 forks source link

Slow Quic tests on Linux #3411

Open bentoi opened 1 year ago

bentoi commented 1 year ago

On Linux, the Quic tests take more than 30s to complete. They used to complete much faster and they still do on Windows.

I'm seeing this since I switched to Ubuntu 22.04.

bentoi commented 1 year ago

I don't have this issue on Debian... I suspect this has something to do with the use of openssl 3.x for msquic.

libmsquic is not available yet for Debian 12 so I haven't been able to try it out.

bentoi commented 1 year ago

See https://github.com/zeroc-ice/dist-utils/issues/238 for Debian 12.

bentoi commented 1 year ago

There are many reports of serious performance issues with OpenSSL 3, in particular with multithreaded code.

See:

If I patch the protocol tests to run with Quic I'm getting all kind of timeouts.

A bandaid fix is to reduce the number of workers: Worker Count Time to run the Quic tests
1 39 s
2 25 s
3 26 s
4 47 s

Looks a worker count of 2 provides the "best" performances :flushed:.

bentoi commented 11 months ago

I'm moving to 0.2. I keep open to see if we can remove #3484 in 0.2.