Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

General performance issues for thick mode #1731

Open
deostroll opened this issue Mar 21, 2025 · 1 comment
Open

General performance issues for thick mode #1731

deostroll opened this issue Mar 21, 2025 · 1 comment
Labels

Comments

@deostroll
Copy link

We are finding some general performance issues with thick mode. We understand thin mode is developed to address most of them. But many of our client environments are forced to stay with thick mode. Please work towards reducing these thick mode performance issues.

In general, we note two observations

  1. As we move to higher version from (5.5.0) api response times increase. (i.e throughput decreases).
  2. Memory consumption is comparatively too high.

Performance summary by version

We have tabulated throughput tests from version 5.5.0 to the latest 6.8.0.

Version Total Throughput (req/sec) Create (req/sec) FindById (req/sec) Update (req/sec) Delete (req/sec)
5.5.0 1184.36 403.60 403.93 296.46 297.01
6.7.0 1142.23 387.82 387.45 286.22 286.67
6.7.1 1047.45 349.34 349.14 262.15 262.25
6.8.0 954.48 326.61 326.16 239.01 239.28

PFA the sample expressjs app which is used for performance testing along with jmeter script and instructions on how to run. app.zip

Comparative RSS memory performance

We have compared rss memory performance with postgres javascript client. While it is not a fair comparison, the difference is significant. This is captured in the pdf file attached. The jmeter file shared earlier can be tweaked and a test loop has to be authored. The loop would perform a test load (or bust); for e..g with a concurrency of 10 and 1000 requests. Followed by an idle period of 10 min. The test loop can be repeated for sufficient number of times or for a duration of more than 2 hours. This is how the graphs were composed.

Memory consumption comparison 1.pdf

PS: all these tests were done on rhel linux with instant oracle client 21.8

@deostroll deostroll added the bug label Mar 21, 2025
@cjbj
Copy link
Member

cjbj commented Mar 21, 2025

Thanks for the benchmarking. It is something we should look into.

For security reasons, your app.zip code is not something I want to install. Do you have something which is only a single node-oracledb JS file?

(A side note: to be pedantic, Thin mode was created to ease installation & deployment issues, not for performance reasons.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants