We have an product based on a 3rd party application, running on an apache server connected to a firebird (v2.5.3) database.
Unfortunately, we got to a point were we are getting timeouts when users try to make requests to the server. When opening devtools->network tab, we see that the packets are droped.
For debugging this issue, we recorded wireshark traffic on the server, and we see a lot of retransmission events. Some of the http packets are passed ok, but some are getting these retransmission, and I suspect that this is causing the timeout.
The server cpu is high (50-100%), mostly because of the firebird database. The cloud provider where the server is hosted doesn't have SSD disks, and we are aware that this can be an issue.
One weird thing is that on the wireshark recording we don't see the http requests from the users. This is how it looks for packets that are received:
When I tried to catch requests from one specific IP that failed, I got only TCP retransmission (so I don't see the request itself). Not sure if it is significant, but connection is on port 443. This is an example how it looks:
Is it possible that because firebird database is busy/cpu is high, http packets are dropped on a lower (after 4-5 seconds) even without registering the http request in wireshark?
Since we can't change disks to SSD, do you think that upgrading CPU might help with this issue?
Is there any apache or firebird configuration that might improve the performance?
Any other information that I can try to gather in order to get more info about the problem?