PHP-FPM: Socket vs TCP/IP and sysctl tweaking

Tweaking FPM config

You may also need to tweak PHP-FPM config to match new sysctl.conf settings.

Open PHP-FPM pool config file:

vim /etc/php5/fpm/pool.d/www.conf

Look for line:

;listen.backlog = 128

Change it to:

listen.backlog = 65536

Restart php5-fpm service.

service php5-fpm restart

Additionally, make sure that operating system limit allows for above value.


sysctl net.core.somaxconn

Should display value 65536 or higher.

If no, then run following commands to verify.

echo "net.core.somaxconn=65536" >> /etc/sysctl.conf
sysctl -p


Check FPM status page via web interface or command-line:

curl localhost/status

It will display parameters like:

pool:                 www
process manager:      ondemand
start time:           06/Nov/2016:19:02:09 +0800
start since:          2
accepted conn:        4
listen queue:         0
max listen queue:     0
listen queue len:     65536
idle processes:       1
active processes:     2
total processes:      3
max active processes: 3
max children reached: 0
slow requests:        0

In the output, listen queue len value should  match listen.backlog value set in the config.

Using TCP/IP for FPM

Sockets are slightly faster as compared to TCP/IP connection. But they are less scalable by default.

If you start getting errors like below (as faced ovidiu here

connect() to unix:/var/run/php5-fpm.sock failed or **apr_socket_recv: Connection reset by peer (104)**

Then it means you need to either switch to TCP/IP or tweak with linux-system parameter so that your OS can handle large number of connections.

Open PHP-FPM pool config file

vim /etc/php5/fpm/pool.d/www.conf

Replace line:

listen = /var/run/php5-fpm.sock

by line:

listen =

Changes to Nginx

Next, open Nginx virtual-host config file(s).

Look for line

fastcgi_pass unix:/var/run/php5-fpm.sock;

Replace it with


Important: Reload php-fpm and nginx so that changes can take effect.

service php5-fpm reload && service nginx reload

Sysctl.conf Tweaking

Finally, don’t forget to tweak Linux’s sysctl values by following this –

Discuss your project
with our experts

No obligation. Limited slots.

Contact Form Business Enquiry

"*" indicates required fields

Please attach any RFP, project specification, or document that you would like to share.
Drop files here or
Max. file size: 5 GB.
    This field is for validation purposes and should be left unchanged.