Hi Alexey Kovyazin.
 

 Thanks for your reply.
 Here are some information about the server.
 

 2x AMD 2.20 GHz
 32GB Ram
 64bit Windows server 2008 R2 Standard
 

 The firebird DB size is 6.2gb.
 

 I have the firebird conf but im not sure how this yahoo forum works. Can I 
attach files somehow?
 

 The main issue (we think) is the database connections and not the queries. We 
have made an extensive work in optimizing the queries and havent registred any 
issues with the queries. When we restart the webcluster all transactions are 
closed and the transaction counter is at zero. When we start the cluster and 
the connections start to build up we see the problem begin at 400-500~ 
connections.
 

 There are no errors in the system log nor in the firebird error log.
 

 /Ronnie
 

 

 ---In firebird-support@yahoogroups.com, <ak@...> wrote:
 

 Hi Ronnie,
 

 You did not provide key characteristics of the server, database and 
transaction statistics, so please don't expect that you will have reasonable 
answer ("load of RAM and CPU" are not characteristics of the server. People 
have various opinions about "big' and "small"). 
 You also did not provide firebird.conf, operation system settings, database 
size, typical queries and their lifecycle, etc.
 

 According to our experience I can suppose that the answer for your question 
"Why is this setup not working?" is the following:  probably database 
application design and/or transaction management have problems. 
 

 Can it be fixed? Sure - with more details. 
 

 Regards,
 Alexey Kovyazin 
 www.IBSurgeon.com
 

 

 Hey guys.
  
 We have a webcluster consisting of 8 webservers running a PHP application with 
a firebird DB. The application have a rather hard peak one time a day and 
firebird are not able to give us the firebird connections quick enough. When 
the peak start we experience long responses and timeouts from the webservers 
due to the connection with the firebird DB. We expected the DB connections to 
be the problem so we then used persistent connections and told Apache2 to keep 
its threads for 2500 requests. This made a significant performance boost since 
we would have the connections ready when we hit the peak. At the peak we have 
4000 request pr/m.
  
 Now letting Apache2 handle the connection pooling is not a nice way of doing 
things. We have been looking for a connection pool for firebird but haven't 
been able to find any software that supports firebird(only one but it didn't 
support the use of stored procedures)? Does anyone know of any software that 
can make connection pooling with firebird?
  
 The next thing is that even though we keep the connections open we still have 
timeouts due to the rotation of Apache2 processes. Everytime it rotates it 
needs to make a new persistent connection and this either give a long response 
time (20-30 sec) or more that resolves in a timeout from the webserver. The 
firebird database have ~640 connections when the pool have been build. If we 
restart our cluster and let Apache2 build up its connection pool we see some 
strange behavior. Everything is fine until the database hits ~400-~450 
connections. Then the timeouts begin. Are we really pushing firebird to its 
limits? Prier we had issues with firebird as well that let us to shard the 
database into two instances(on separate hardware). Again this gave us a boost 
because the load was separated. 
  
 We have around 1.800.000 requests on one day. This leads to around 720 process 
rotations that the firebird db is not handling well. We are running firebird 
WI-V2.5.2.26539 Firebird 2.5. on two windows servers. The physical hardware is 
very potent. We have load of RAM and CPU and have a flash card installed. If we 
look at the resources on the physical server there is nothing to see. We do see 
more resources being used on the peak as is expected. But we are not near on 
depleting the resources of the hardware.
  
 /Ronnie
 

Reply via email to