Subject | FB persistent connections on php-fpm |
---|---|
Author | Rudi Feijó |
Post date | 2017-05-03T17:07:38Z |
As of late, we have been experiencing with persistent connections on our
backend. This is justifiable, we have a very high number of connection
requests (lots of requests from lots of users).
We are using PHP-FPM connecting on firebird3 superserver.
We quickly run into memory usage issues - the pconnections are never
getting released by firebird.
Everytime a connection is created, it stays forever on the DB (we are
looking in mon@attachments), even if its never used again.
First I tought it could be a TCP keep alive issue, but the settings are ok
(5 mins tcp keepalive). Also tried using Dummypackets config and its no
good.
The thing is, on the windows network monitor, those connections are always
php never closes them, and, I assume, firebird always views them as healthy
and in-use.
My guess is that since fpm is a pool manager of its own, it doesnt have any
mechanism to release/close those connections anyway.
Since fpm keeps a minimum number of request servers on all the time, as long
as any request created a persistent connection, it will never be closed
(unless that server went offline, which it wont).
Atenciosamente,
Rudi Feijó
Multidados Informática Ltda.
* (11) 2579-8794 / 2579-8795
* <mailto:ariane.cutlac@...> rudi.feijo@...
* <http://www.multidadosti.com.br/> www.multidadosti.com.br
<http://www.timesheet.com.br/> www.timesheet.com.br
[Non-text portions of this message have been removed]
backend. This is justifiable, we have a very high number of connection
requests (lots of requests from lots of users).
We are using PHP-FPM connecting on firebird3 superserver.
We quickly run into memory usage issues - the pconnections are never
getting released by firebird.
Everytime a connection is created, it stays forever on the DB (we are
looking in mon@attachments), even if its never used again.
First I tought it could be a TCP keep alive issue, but the settings are ok
(5 mins tcp keepalive). Also tried using Dummypackets config and its no
good.
The thing is, on the windows network monitor, those connections are always
php never closes them, and, I assume, firebird always views them as healthy
and in-use.
My guess is that since fpm is a pool manager of its own, it doesnt have any
mechanism to release/close those connections anyway.
Since fpm keeps a minimum number of request servers on all the time, as long
as any request created a persistent connection, it will never be closed
(unless that server went offline, which it wont).
Atenciosamente,
Rudi Feijó
Multidados Informática Ltda.
* (11) 2579-8794 / 2579-8795
* <mailto:ariane.cutlac@...> rudi.feijo@...
* <http://www.multidadosti.com.br/> www.multidadosti.com.br
<http://www.timesheet.com.br/> www.timesheet.com.br
[Non-text portions of this message have been removed]