-
I'm running the same driver script from linux and windows, and getting two times lower NOPM(mssqls tpc-c test, not async). Both linux and windows have the same hardware. CPU governor on linux is in perfomance mode and there isn't any visible problems with cpu/memory/disk/network during the run. Maybe there is some known issue with running hammerdb on linux that I should know about? |
Beta Was this translation helpful? Give feedback.
Replies: 7 comments 11 replies
-
Did you read the release notes? CH1 S1 https://www.hammerdb.com/docs/ch01s01.html 1.5.2. SQL Server on Linux: unixODBC's handle validation may become a performance bottleneck Using the HammerDB client for SQL Server on Linux can be slower than the same client on Windows when using the default installed unixODBC drivers on many Linux distributions. As described in the SQL Server Programming Guidelines "When using the driver with highly multithreaded applications, unixODBC's handle validation may become a performance bottleneck. In such scenarios, significantly more performance may be obtained by compiling unixODBC with the --enable-fastvalidate option. However, beware that this may cause applications which pass invalid handles to ODBC APIs to crash instead of returning SQL_INVALID_HANDLE errors." Recompiling unixODBC with the --enable-fastvalidate option has been measured to improve client performance by 2X. Example configure options used to build unixODBC are shown as follows: ./configure --prefix=/usr/local/unixODBC --enable-gui=no --enable-drivers=no --enable-iconv |
Beta Was this translation helpful? Give feedback.
-
Thank you! I haven't seen that. I tried to compile it from source with parameters that you've mentioned, but nothing has changed, unfortunately.
After this when I run hammerdb driver script, I get:
So I've fixed it with installing headers:
And after doing all of this, perfomance was as bad as it was. Have I missed something? |
Beta Was this translation helpful? Give feedback.
-
If you install the odbc libraries into a non-default directory, you have to tell the process where to find them. export ODBCINI=/usr/local/unixODBC/etc/odbc.ini You may have to update/build/(copy from /etc/odbcinst.ini) the odbc.ini file. You can verify which driver is being used using lsof |
Beta Was this translation helpful? Give feedback.
-
Thank you @greenhal, this moved me a step closer! Currently I'm stuck at this error:
Some info:
|
Beta Was this translation helpful? Give feedback.
-
Moving to discussion topic as not a HammerDB issue, (instead a unixODBC handle validation issue) and compiling and installing unixODBC from source. |
Beta Was this translation helpful? Give feedback.
-
We have successfully run the benchmark on properly compiled unixODBC and got the same results. Also we have found that this issue was fixed in debian in 2017 https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=819622#22 so that's why we can't see performance difference. Any other ideas? |
Beta Was this translation helpful? Give feedback.
-
Have you run linix perf against it (https://www.brendangregg.com/perf.html)? |
Beta Was this translation helpful? Give feedback.
Did you read the release notes? CH1 S1 https://www.hammerdb.com/docs/ch01s01.html
1.5.2. SQL Server on Linux: unixODBC's handle validation may become a performance bottleneck
Using the HammerDB client for SQL Server on Linux can be slower than the same client on Windows when using the default installed unixODBC drivers on many Linux distributions. As described in the SQL Server Programming Guidelines "When using the driver with highly multithreaded applications, unixODBC's handle validation may become a performance bottleneck. In such scenarios, significantly more performance may be obtained by compiling unixODBC with the --enable-fastvalidate option. However, beware that this may cause a…