Maison >développement back-end >tutoriel php > php-fpm最近大量的创建和关闭进程的问题?
这张图片是fpm运行时进程数量。
机器上运行了两个fpm端口分别是9000、9002,运行的是不同的业务。
9000端口还基本稳定,但是9002看起来很不稳定!
php-fpm-9002.conf 配置
<code>[global] error_log = /data/error/php-fpm.log-9002 log_level = error events.mechanism = epoll process.max = 4096 rlimit_files = 65535 [www] listen = 127.0.0.1:9002 listen.backlog = 8192 pm = dynamic pm.max_children = 256 pm.start_servers = 64 pm.min_spare_servers = 32 pm.max_spare_servers = 64 pm.max_requests = 10000 pm.status_path = /phpstatus access.format = "%R - %u %t \"%m %r%Q%q\" %s %f %{mili}d %{kilo}M %C%%" slowlog = /data/error/$pool.log.slow-9002 request_slowlog_timeout = 2s request_terminate_timeout = 15s </code>
fpm error log
<code>[01-Apr-2016 17:36:45] ERROR: failed to ptrace(PEEKDATA) pid 28033: Input/output error (5) [01-Apr-2016 20:14:27] ERROR: failed to ptrace(PEEKDATA) pid 21882: Input/output error (5) [01-Apr-2016 20:57:12] ERROR: failed to ptrace(PEEKDATA) pid 21923: Input/output error (5) [01-Apr-2016 22:18:58] ERROR: failed to ptrace(PEEKDATA) pid 23378: Input/output error (5) [02-Apr-2016 21:35:43] ERROR: failed to ptrace(PEEKDATA) pid 28565: Input/output error (5) [03-Apr-2016 20:05:08] ERROR: failed to ptrace(PEEKDATA) pid 9252: Input/output error (5) [03-Apr-2016 22:05:22] ERROR: failed to ptrace(PEEKDATA) pid 9951: Input/output error (5) [04-Apr-2016 14:44:06] ERROR: failed to ptrace(PEEKDATA) pid 8669: Input/output error (5) [04-Apr-2016 21:31:51] ERROR: failed to ptrace(PEEKDATA) pid 24320: Input/output error (5) [05-Apr-2016 00:12:03] ERROR: failed to ptrace(PEEKDATA) pid 10573: Input/output error (5)</code>
这个errlog的时间点其实和fpm进程起伏其实对应不上。
不知道是什么原因引起的,这种问题该如何去查?
这张图片是fpm运行时进程数量。
机器上运行了两个fpm端口分别是9000、9002,运行的是不同的业务。
9000端口还基本稳定,但是9002看起来很不稳定!
php-fpm-9002.conf 配置
<code>[global] error_log = /data/error/php-fpm.log-9002 log_level = error events.mechanism = epoll process.max = 4096 rlimit_files = 65535 [www] listen = 127.0.0.1:9002 listen.backlog = 8192 pm = dynamic pm.max_children = 256 pm.start_servers = 64 pm.min_spare_servers = 32 pm.max_spare_servers = 64 pm.max_requests = 10000 pm.status_path = /phpstatus access.format = "%R - %u %t \"%m %r%Q%q\" %s %f %{mili}d %{kilo}M %C%%" slowlog = /data/error/$pool.log.slow-9002 request_slowlog_timeout = 2s request_terminate_timeout = 15s </code>
fpm error log
<code>[01-Apr-2016 17:36:45] ERROR: failed to ptrace(PEEKDATA) pid 28033: Input/output error (5) [01-Apr-2016 20:14:27] ERROR: failed to ptrace(PEEKDATA) pid 21882: Input/output error (5) [01-Apr-2016 20:57:12] ERROR: failed to ptrace(PEEKDATA) pid 21923: Input/output error (5) [01-Apr-2016 22:18:58] ERROR: failed to ptrace(PEEKDATA) pid 23378: Input/output error (5) [02-Apr-2016 21:35:43] ERROR: failed to ptrace(PEEKDATA) pid 28565: Input/output error (5) [03-Apr-2016 20:05:08] ERROR: failed to ptrace(PEEKDATA) pid 9252: Input/output error (5) [03-Apr-2016 22:05:22] ERROR: failed to ptrace(PEEKDATA) pid 9951: Input/output error (5) [04-Apr-2016 14:44:06] ERROR: failed to ptrace(PEEKDATA) pid 8669: Input/output error (5) [04-Apr-2016 21:31:51] ERROR: failed to ptrace(PEEKDATA) pid 24320: Input/output error (5) [05-Apr-2016 00:12:03] ERROR: failed to ptrace(PEEKDATA) pid 10573: Input/output error (5)</code>
这个errlog的时间点其实和fpm进程起伏其实对应不上。
不知道是什么原因引起的,这种问题该如何去查?
<code>request_slowlog_timeout = 2s </code>
你可以尝试禁用这句话试试
这个是9002的php-fpm
pm = dynamic
pm.max_children = 256
pm.start_servers = 64
pm.min_spare_servers = 32
pm.max_spare_servers = 64
看一下9000的php-fpm配置是不是
pm=static
http://www.jb51.net/article/37749.htm
==========================================
观察一下cpu与内存的使用情况。应该是这方面的原因,开的进程太多,负载太高了。