Назад | Перейти на главную страницу

PHP-FPM зависает и высокий уровень ввода-вывода

На самом деле на моем сервере взаимного хостинга я использую PHP 5.6.3 с одним бассейном. Иногда мой процесс php-fpm застрял с 50% WA и я не могу его убить, я даже не могу перезапустить свою виртуальную машину.

Я использую 245MB / 3968MB, мой своп не используется.

Пока я понятия не имею, потому что не вижу ничего, кроме моего WA застрял при 50% на верхней команде (или htop), и когда я пытался убить свой процесс один за другим, только один застрял, мой php-fpm: разработчик пула обработать.

Я ничего не вижу ни через iotop, ни на моем графике диска. Мой единственный способ исправить это на данный момент, это сброс питания ...

верхняя команда

top - 16:22:39 up 2 days,  1:06,  4 users,  load average: 2,00, 1,96, 17,02
Tasks:  90 total,   1 running,  89 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0,2 us,  0,2 sy,  0,0 ni, 50,0 id, 49,7 wa,  0,0 hi,  0,0 si,  0,0 st
KiB Mem:   4063552 total,  1270532 used,  2793020 free,   230532 buffers
KiB Swap:   731132 total,        0 used,   731132 free,   788548 cached

  PID USER      PR  NI  VIRT  RES  SHR S  %CPU %MEM    TIME+  COMMAND
18487 root      20   0 71264 3720 2920 S   0,3  0,1   0:00.54 sshd
    1 root      20   0 10648  832  692 S   0,0  0,0   0:01.96 init
    2 root      20   0     0    0    0 S   0,0  0,0   0:00.00 kthreadd
    3 root      20   0     0    0    0 S   0,0  0,0   0:01.25 ksoftirqd/0
    5 root      20   0     0    0    0 S   0,0  0,0   0:00.00 kworker/u:0
    6 root      rt   0     0    0    0 S   0,0  0,0   0:00.04 migration/0
    7 root      rt   0     0    0    0 S   0,0  0,0   0:00.75 watchdog/0
    8 root      rt   0     0    0    0 S   0,0  0,0   0:00.02 migration/1
   10 root      20   0     0    0    0 S   0,0  0,0   0:01.34 ksoftirqd/1
   11 root      20   0     0    0    0 S   0,0  0,0   0:00.10 kworker/0:1
   12 root      rt   0     0    0    0 S   0,0  0,0   0:00.57 watchdog/1
   13 root       0 -20     0    0    0 S   0,0  0,0   0:00.00 cpuset
...
 3455 www-data  20   0  362m 111m  53m D   0,0  2,8   0:22.88 php5.6-fpm

iostat

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0,23    0,06    0,14   12,93    0,00   86,64

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0,06     0,32    0,18    0,54     2,44     4,15    18,33     0,00    4,89    5,19    4,78   2,22   0,16

php-fpm.conf

[global]
pid = run/php-fpm.pid
error_log = /var/log/php5.6-fpm.log
include=/etc/php5.6/fpm/pool.d/*.conf

Пул PHP

[dev]
user = www-data
group = www-data
listen = 0.0.0.0:60256
listen.owner = www-data
listen.group = www-data
listen.mode = 0666
pm = dynamic
pm.max_children = 64
pm.start_servers = 28
pm.min_spare_servers = 8
pm.max_spare_servers = 64
pm.status_path = /phpfpmstatus
ping.path = /phpfpmping
ping.response = pong
access.log = /var/log/fpm-php/$pool.access.log
access.format = "%R - %u %t \"%m %r%Q%q\" %s %f %{mili}d %{kilo}M %C%%"
slowlog = /var/log/fpm-php/$pool.log.slow
request_slowlog_timeout = 120s
chdir = /
security.limit_extensions = 
php_flag[display_errors] = on
php_admin_value[error_log] = /var/log/fpm-php/$pool-error.log
php_admin_flag[log_errors] = on
php_admin_value[memory_limit] = 2000M
php_value[memory_limit] = 2000M