nginx + php5-fpm регулярно падает.
June 29, 2013 03:22PM
доброго времени суток.

прошу помощи, так как уже понял, что самому не получается разобраться с проблемой:

есть виртуальный сервер на хостинге с Ubuntu и Nginx + Php5-fpm + Mysql
на нем сайт, который работает под Битриксом.
Иногда, примерно 3-4 раза в месяц сайт перестает работать.
я лезу в логи и вижу подобное:



[12-Jun-2013 15:45:01] NOTICE: fpm is running, pid 27431
[12-Jun-2013 15:45:01] NOTICE: ready to handle connections
[12-Jun-2013 15:54:01] NOTICE: Reloading in progress ...
[12-Jun-2013 15:54:01] NOTICE: reloading: execvp("/usr/sbin/php5-fpm", {"/usr/sbin/php5-fpm", "--fpm-config", "/etc/php5/fpm/php-fpm.conf"})
[12-Jun-2013 15:54:01] NOTICE: using inherited socket fd=7, "127.0.0.1:9000"
[12-Jun-2013 15:54:01] NOTICE: using inherited socket fd=7, "127.0.0.1:9000"
[12-Jun-2013 15:54:01] NOTICE: fpm is running, pid 27838
[12-Jun-2013 15:54:01] NOTICE: ready to handle connections
[12-Jun-2013 16:00:01] NOTICE: Reloading in progress ...
[12-Jun-2013 16:00:01] NOTICE: reloading: execvp("/usr/sbin/php5-fpm", {"/usr/sbin/php5-fpm", "--fpm-config", "/etc/php5/fpm/php-fpm.conf"})
[12-Jun-2013 16:00:01] NOTICE: using inherited socket fd=7, "127.0.0.1:9000"
[12-Jun-2013 16:00:01] NOTICE: using inherited socket fd=7, "127.0.0.1:9000"

вот тут видно, что начались проблемы

[12-Jun-2013 16:00:01] ERROR: Unable to create the PID file (/var/run/php5-fpm.pid).: Too many open files (24)
[12-Jun-2013 16:00:01] ERROR: Unable to create the PID file (/var/run/php5-fpm.pid).: Too many open files (24)
[12-Jun-2013 16:00:01] ERROR: FPM initialization failed
[12-Jun-2013 16:00:01] ERROR: FPM initialization failed


и через 49 сервак ребутнули

[12-Jun-2013 16:49:15] NOTICE: configuration file /etc/php5/fpm/php-fpm.conf test is successful

[12-Jun-2013 16:49:15] NOTICE: fpm is running, pid 927
[12-Jun-2013 16:49:15] NOTICE: ready to handle connections

это варнинги наасчет неправильной конфигурации php-fpm, конфиг ниже

[12-Jun-2013 16:49:19] WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 8 children, there are 6 idle, and

15 total children
[12-Jun-2013 16:49:24] WARNING: [pool www] server reached pm.max_children setting (20), consider raising it
[12-Jun-2013 16:54:01] NOTICE: Reloading in progress ...
[12-Jun-2013 16:54:01] NOTICE: reloading: execvp("/usr/sbin/php5-fpm", {"/usr/sbin/php5-fpm", "--fpm-config", "/etc/php5/fpm/php-fpm.conf"})

ну и дальше все работает нормально до следу.щего сбоя

[12-Jun-2013 16:54:01] NOTICE: using inherited socket fd=7, "127.0.0.1:9000"
[12-Jun-2013 16:54:01] NOTICE: using inherited socket fd=7, "127.0.0.1:9000"
[12-Jun-2013 16:54:01] NOTICE: fpm is running, pid 1680
[12-Jun-2013 16:54:01] NOTICE: ready to handle connections


параметры ВМ:

root@vm6997:~# cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=13.04
DISTRIB_CODENAME=raring
DISTRIB_DESCRIPTION="Ubuntu 13.04"

root@server:~# free
total used free shared buffers cached
Mem: 3170612 3015760 154852 0 197552 2265256
-/+ buffers/cache: 552952 2617660
Swap: 704508 0 704508


root@vm6997:~# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/xvda1 15G 8.6G 4.9G 64% /
devtmpfs 1.5G 4.0K 1.5G 1% /dev
tmpfs 1.6G 8.0K 1.6G 1% /dev/shm
none 310M 4.0M 306M 2% /run
none 5.0M 0 5.0M 0% /run/lock
none 1.6G 0 1.6G 0% /run/shm
none 100M 0 100M 0% /run/user
/dev/xvdp 134M 134M 0 100% /lib/modules



root@server:~# grep pm. /etc/php5/fpm/pool.d/www.conf
; static - a fixed number (pm.max_children) of child processes;
; pm.max_children - the maximum number of children that can
; pm.start_servers - the number of children created on startup.
; pm.min_spare_servers - the minimum number of children in 'idle'
; pm.max_spare_servers - the maximum number of children in 'idle'
pm = dynamic
; The number of child processes to be created when pm is set to 'static' and the
; maximum number of child processes to be created when pm is set to 'dynamic'.
; served. Equivalent to the ApacheMaxClients directive with mpm_prefork.
; Note: Used when pm is set to either 'static' or 'dynamic'
pm.max_children = 20
; Note: Used only when pm is set to 'dynamic'
pm.start_servers = 10
; Note: Used only when pm is set to 'dynamic'
; Note: Mandatory when pm is set to 'dynamic'
pm.min_spare_servers = 10
; Note: Used only when pm is set to 'dynamic'
; Note: Mandatory when pm is set to 'dynamic'
pm.max_spare_servers = 15
pm.max_requests = 500
; when pm tries to start more children (works only for
; pm 'dynamic')
;pm.status_path = /status
;php_admin_value[error_log] = /var/log/fpm-php.www.log



вроде бы и памяти добавил на ВМ нормально и все настроено не так уж плохо, к томуже я несколько раз подстраивал эти параметры, в конце даже обновил систему полностью, но не

помогает ничего. проблема внезапно возникает.


мне бы понять кто виноват, может действительно производительности не хватает.
вот в nginx включил показ статистики:

http://site.com/stat показывает примерно такое:

Active connections: 126
server accepts handled requests
2610 2610 10336
Reading: 6 Writing: 1 Waiting: 119

но не совсем понимаю, что это значит.
126 подключений вроде не так много для сервера.

гдето нагуглил такую команду:

root@server:~# ps -ylC php5-fpm --sort:rss | awk '!/RSS/ { s+=$8 } END { printf "%s\n", "Total memory used by PHP-FPM child processes: "; printf "%dM\n", s/1024 }'
Total memory used by PHP-FPM child processes:
463M

тоже вроде немного потребляет, хотя из 3 гиг свободно всегда не более 2з00 метров. и похоже проблемы начинаются когда свободной памяти меньше всего..
там еще есть mysql - он сильно грузит систему:

top - 19:18:37 up 1 day, 2:29, 1 user, load average: 0.36, 0.26, 0.26
Threads: 209 total, 2 running, 207 sleeping, 0 stopped, 0 zombie
%Cpu(s): 2.0 us, 0.7 sy, 0.0 ni, 97.0 id, 0.2 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem: 3170612 total, 3027504 used, 143108 free, 197952 buffers
KiB Swap: 704508 total, 0 used, 704508 free, 2270312 cached

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
24452 www-data 20 0 114m 35m 16m S 6.3 1.1 0:00.94 php5-fpm
24453 www-data 20 0 111m 31m 15m S 6.3 1.0 0:00.91 php5-fpm
5910 mysql 20 0 489m 278m 6828 S 5.6 9.0 4:06.23 mysqld
6586 mysql 20 0 489m 278m 6828 S 5.3 9.0 4:01.18 mysqld
24460 www-data 20 0 108m 30m 17m S 5.0 1.0 0:00.69 php5-fpm
11235 mysql 20 0 489m 278m 6828 S 4.3 9.0 2:06.71 mysqld
24466 postgres 20 0 125m 9844 7308 S 3.0 0.3 0:00.18 postgres
24464 postgres 20 0 125m 10m 7604 S 1.7 0.3 0:00.08 postgres
24539 root 20 0 8456 2812 2220 S 1.7 0.1 0:00.05 sshd
824 mysql 20 0 489m 278m 6828 S 0.7 9.0 2:27.72 mysqld
22844 www-data 20 0 6588 1892 992 S 0.7 0.1 0:00.55 nginx
24519 postgres 20 0 125m 9016 6692 S 0.7 0.3 0:00.06 postgres
6 root 20 0 0 0 0 S 0.3 0.0 0:02.09 events/0
5909 mysql 20 0 489m 278m 6828 S 0.3 9.0 4:06.07 mysqld
6585 mysql 20 0 489m 278m 6828 S 0.3 9.0 3:48.03 mysqld
900 root 20 0 2192 372 300 S 0.3 0.0 0:18.53 modd
24450 root 20 0 105m 11m 2252 S 0.3 0.4 0:00.02 php5-fpm
24467 root 20 0 5312 1356 952 R 0.3 0.0 0:00.11 top
1 root 20 0 3752 2092 1344 S 0.0 0.1 0:00.72 init
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd
3 root rt 0 0 0 0 S 0.0 0.0 0:00.06 migration/0
4 root 20 0 0 0 0 S 0.0 0.0 0:02.26 ksoftirqd/0
5 root rt 0 0 0 0 S 0.0 0.0 0:00.00 watchdog/0
7 root 20 0 0 0 0 S 0.0 0.0 0:00.00 cpuset
8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 netns


есть еще postgres, но он почти незаметен на фоне мускула.

может кто подскажет в какую сторону копать и как понять где может крыться прична проблемы.

спасибо заранее.
Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 126
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready