>  기사  >  백엔드 개발  >  php-fpm最近大量的创建和关闭进程的问题?

php-fpm最近大量的创建和关闭进程的问题?

WBOY
WBOY원래의
2016-06-06 20:12:531346검색

 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进程起伏其实对应不上。

不知道是什么原因引起的,这种问题该如何去查?

回复内容:

 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进程起伏其实对应不上。

不知道是什么原因引起的,这种问题该如何去查?

<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与内存的使用情况。应该是这方面的原因,开的进程太多,负载太高了。

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.