A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://github.com/openssl/openssl/issues/17064 below:

Massive performance degradation in OpenSsl 3.0 if used in a heavy multi threaded server application · Issue #17064 · openssl/openssl · GitHub

We have updated our multi threaded server application from OpenSsl 1.0.2 to 3.0 which is working but nevertheless unusable.
We are using mainly the AES and SHA method.
Our code is running on Windows and Linux.
We always use a self built library of a release version.
If we do a load test we have many parallel instances which are working in different threads.
Using the OpenSsl 1.0.2 on a 32 core machine results on a load of about 7% (of 100%) in Windows and about 800% (of 3200%) in Linux.
Only switching to the OpenSsl 3.0.0 results on a load of about 21% (of 100%) in Windows and about 3000% (of 3200%) in Linux with the same test.
The Linux version performs so badly that our overload/blocking checker kills the server!
So the OpenSsl 3.0 is absolutely unusable from our perspective.

I took a look with a profiler in linux and found out that the most time is spent in the pthread wait functions called by CRYPTO_THREAD_read_lock, CRYPTO_THREAD_unlock and CRYPTO_THREAD_write_lock called by ossl_lib_ctx_ge_data and others.
I know that the times also counted if the threads are sleeping.
But of course it's clear that all the threads are colliding at such a hot code path which is de facto single threaded now.
And this is a major change to the 1.x version where the instances running in different threads are really run in parallel.

I don't know if there is something we can do in our use to improve the situation.
Otherwise we see this as a serious bug preventing us to use the OpenSsl 3.0.

Let me know if you need further information.


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.3