FirebirdSQL / firebird

Firebird server, client and tools
https://www.firebirdsql.org/
1.23k stars 212 forks source link

Update default firebird.conf settings to better reflect modern average hardware capatabilities [CORE6235] #6479

Open firebird-automations opened 4 years ago

firebird-automations commented 4 years ago

Submitted by: @luronumen

ACTUAL RESULT - The Firebird is not using the Optimized Configurations for the average hardware with an average load by Default according to the IB Surgeon company. See: https://ib-aid.com/en/optimized-firebird-configuration/

EXPECTED RESULT: - The Firebird should use the Optimized Configurations for the average hardware with an average load by Default according to the IB Surgeon company. See: https://ib-aid.com/download/firebirdconf/firebird_30_superserver_64bit.conf

========================================================================= DefaultDbCachePages = "100K" instead of "2048" FileSystemCacheThreshold = "2M" instead of "64K" TempBlockSize = "2M" instead of "1M" TempCacheLimit = "1000M" instead of "64M" AuthServer = "Legacy_Auth, Srp, Win_Sspi" instead of "Srp" AuthClient = "Legacy_Auth, Srp, Win_Sspi" instead of "Srp, Srp256, Win_Sspi, Legacy_Auth" UserManager = "Legacy_UserManager, Srp" instead of "Srp" LockMemSize = "15M" instead of "1M" LockHashSlots = "30011" instead of "8191"

firebird-automations commented 4 years ago
Modified by: @luronumen description: ACTUAL RESULT \- The Firebird is not using the Optimized Configurations for the average hardware with an average load by Default according to the IB Surgeon company \(See: \) EXPECTED RESULT: \- The Firebird should use the Optimized Configurations for the average hardware with an average load by Default according to the IB Surgeon company \(See: \) ========================================================================= DefaultDbCachePages = "100K" instead of "2048" FileSystemCacheThreshold = "2M" instead of "64K" TempBlockSize = "2M" instead of "1M" TempCacheLimit = "1000M" instead of "64M" AuthServer = "Legacy\_Auth, Srp, Win\_Sspi" instead of "Srp" AuthClient = "Legacy\_Auth, Srp, Win\_Sspi" instead of "Srp, Srp256, Win\_Sspi, Legacy\_Auth" UserManager = "Legacy\_UserManager, Srp" instead of "Srp" LockMemSize = "15M" instead of "1M" LockHashSlots = "30011" instead of "8191" ========================================================================= =\> ACTUAL RESULT \- The Firebird is not using the Optimized Configurations for the average hardware with an average load by Default according to the IB Surgeon company\. See: EXPECTED RESULT: \- The Firebird should use the Optimized Configurations for the average hardware with an average load by Default according to the IB Surgeon company\. See: ========================================================================= DefaultDbCachePages = "100K" instead of "2048" FileSystemCacheThreshold = "2M" instead of "64K" TempBlockSize = "2M" instead of "1M" TempCacheLimit = "1000M" instead of "64M" AuthServer = "Legacy\_Auth, Srp, Win\_Sspi" instead of "Srp" AuthClient = "Legacy\_Auth, Srp, Win\_Sspi" instead of "Srp, Srp256, Win\_Sspi, Legacy\_Auth" UserManager = "Legacy\_UserManager, Srp" instead of "Srp" LockMemSize = "15M" instead of "1M" LockHashSlots = "30011" instead of "8191" =========================================================================
firebird-automations commented 4 years ago
Modified by: Sean Leyne (seanleyne) summary: Firebird should use the Optimized Configurations for the average hardware with an average load by Default =\> Update default firebird\.conf settings to better reflect modern average hardware capatabilities
firebird-automations commented 4 years ago
Modified by: Sean Leyne (seanleyne) priority: Major \[ 3 \] =\> Minor \[ 4 \]
firebird-automations commented 4 years ago

Commented by: @mrotteveel

The suggested AuthServer and AuthClient configuration are insecure and should definitely not be the default. You should not trade in security for better performance unless you know what you're doing. The performance impact of the extra roundtrips for Srp can be mitigated by using a connection pool.

firebird-automations commented 4 years ago

Commented by: @dyemanov

What is the rationale behind your expectations? The Firebird project intentionally uses the current defaults because they're suitable for any application, including the embedded ones. And these defaults are being updated every few years to better fit the realities. In turn, IBSurgeon deals with dedicated server installations and supports middle- and high-end databases, hence the other defaults suggested.

firebird-automations commented 4 years ago

Commented by: @luronumen

Hi Dmitry, Thank you very much for your reply. I noticed that IBSurgeon updated the conf files and now the HW settings and the number of databases and people who will access these databases are taken into account.

My suggestion is that the FirebirdSQL installer can collect this information during the installation process to define the best configuration:

Amount of system memory (Detected by the Firebird installer) a) <= 12GB b) >= 16GB

Questions to ask when installing Firebird: 1) How many databases will be managed? c) <10 d)> >=10 2) How many users will access the databases? e) <=150 f) >150

Suggested default configuration based on the responses mentioned above: ace: https://ib-aid.com/download/firebirdconf/firebird_30_superserver_64bit_ram8gb.conf acf: https://ib-aid.com/download/firebirdconf/firebird_30_superserver_64bit_ram8gb.conf ade: https://ib-aid.com/download/firebirdconf/firebird_30_superclassic_64bit_8Gb.conf adf: https://ib-aid.com/download/firebirdconf/firebird_30_superclassic_64bit_8Gb.conf bce: https://ib-aid.com/download/firebirdconf/firebird_30_superserver_64bit_ram16gb.conf bcf: https://ib-aid.com/download/firebirdconf/firebird_30_superserver_64bit_ram16gb.conf bde: https://ib-aid.com/download/firebirdconf/firebird_30_superclassic_64bit_8Gb.conf bdf: https://ib-aid.com/download/firebirdconf/firebird_30_superclassic_64bit_16Gb.conf

Best Regards, Luciano

firebird-automations commented 4 years ago

Commented by: @reevespaul

This is definitely not the business of the installer. But we could include several different conf files in, say, the examples directory.