I have the dedicated database server running inside Hyper-V. This VM is
running Ubuntu 18.04, with 32 GB of RAM, 8 virtual processor cores and 1 TB
HD.

The Firebird that runs on that server is Classic Server 2.1. I have only 4
databases on that machine. The number of users reaches a maximum of 100 at
its peak.

It so happened that over the course of a few days, the systems started to
slow down and connections dropped. The firebird log stated that there were
no more Semaphores available.

Searching on google I found that I should increase the number of Semaphores
for firebird according to what is available in the Linux kernel.

I performed several tests and research, on a certain page that I don't
remember now, a user said he had set 1024 Semaphores for firebird and that
he also increased the maximum number in the kernel.

I tried to use 1024 in my firebird settings and it showed an error in the
logs stating that the number was not available on my system and that it was
to set the value 64.

I found through oracle database documentation that oracle uses the
following configuration for its database in the Rad Hat Linux kernel (it's
an example configuration)

sysctl -w kernel.sem = "5010 641280 5010 128"
I made this configuration on my server and set the Semaphores from firebird
to 128. I realized that I got a much better performance already.

My question is: Is it really possible to set 1024 in the Semaphores
settings?

If the answer is yes, how do I do the calculations to set the parameters in
the kernel?
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel

Reply via email to