On 2020-04-14 16:45, Willian do Amor wrote:
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.
Willian, version 2.1 (and moreover - 2.5 too) is not supported by
community any more.
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.
You should upgrade to at least 2.5 and forget about SystemV semaphores.
But if you really need for some reason keep using 2.1 please search for
paid support. Some companies provide it
Firebird-Devel mailing list, web interface at
https://lists.sourceforge.net/lists/listinfo/firebird-devel