近日,效劳器涌现异常,网站不能平常接见。经排查是php的题目。
在重启php-fpm时,恢复平常。1分钟以后又涌现毛病。检察php日记文件 /usr/local/php/var/log 后提醒:
WARNING: [pool www] server reached pm.max_children setting (5), consider raising it
子历程数已到达设置的最大值。
要设置php历程数目。须要在php-fpm.conf文件中修正。
先看/usr/local/php/etc/php-fpm.conf文件各项设置剖析
pid = run/php-fpm.pid #pid设置,默许在装置目次中的var/run/php-fpm.pid,发起开启 error_log = log/php-fpm.log #毛病日记,默许在装置目次中的var/log/php-fpm.log log_level = notice #毛病级别. 可用级别为: alert(必需马上处置惩罚), error(毛病状况), warning(正告状况), notice(平常重要信息), debug(调试信息). 默许: notice. emergency_restart_threshold = 60 emergency_restart_interval = 60s #示意在emergency_restart_interval所设值内涌现SIGSEGV或许SIGBUS毛病的php-cgi历程数假如凌驾 emergency_restart_threshold个,php-fpm就会文雅重启。这两个选项平常坚持默许值。 process_control_timeout = 0 #设置子历程接收主历程复用信号的超时时候. 可用单元: s(秒), m(分), h(小时), 或许 d(天) 默许单元: s(秒). 默许值: 0. daemonize = yes #背景实行fpm,默许值为yes,假如为了调试能够改成no。在FPM中,能够运用差别的设置来运转多个历程池。 这些设置能够针对每一个历程池零丁设置。 listen = 127.0.0.1:9000 #fpm监听端口,即nginx中php处置惩罚的地点,平常默许值即可。可用花样为: ‘ip:port’, ‘port’, ‘/path/to/unix/socket’. 每一个历程池都须要设置. listen.backlog = -1 #backlog数,-1示意无限定,由操作体系决议,此行解释掉就行。backlog寄义参考: http://www.3gyou.cc/?p=41 listen.allowed_clients = 127.0.0.1 #许可接见FastCGI历程的IP,设置any为不限定IP,假如要设置其他主机的nginx也能接见这台FPM历程,listen处要设置成当地可被接见的IP。默许值是any。每一个地点是用逗号分开. 假如没有设置或许为空,则许可任何效劳器要求衔接 listen.owner = www listen.group = www listen.mode = 0666 #unix socket设置选项,假如运用tcp体式格局接见,这里解释即可。 user = www group = www #启动历程的帐户和组 pm = dynamic #关于专用效劳器,pm能够设置为static。 #怎样掌握子历程,选项有static和dynamic。假如挑选static,则由pm.max_children指定牢固的子历程数。假如挑选dynamic,则由下开参数决议: pm.max_children #,子历程最大数 pm.start_servers #,启动时的历程数 pm.min_spare_servers #,保证余暇历程数最小值,假如余暇历程小于此值,则建立新的子历程 pm.max_spare_servers #,保证余暇历程数最大值,假如余暇历程大于此值,此举行清算 pm.max_requests = 1000 #设置每一个子历程重生之前效劳的要求数. 关于能够存在内存走漏的第三方模块来讲黑白常有效的. 假如设置为 ’0′ 则一向接收要求. 等同于 PHP_FCGI_MAX_REQUESTS 环境变量. 默许值: 0. pm.status_path = /status #FPM状况页面的网址. 假如没有设置, 则无法接见状况页面. 默许值: none. munin监控会运用到 ping.path = /ping #FPM监控页面的ping网址. 假如没有设置, 则无法接见ping页面. 该页面用于外部检测FPM是不是存活而且能够响应要求. 请注意必需以斜线开首 (/)。 ping.response = pong #用于定义ping要求的返回响应. 返回为 HTTP 200 的 text/plain 花样文本. 默许值: pong. request_terminate_timeout = 0 #设置单个要求的超时中断时候. 该选项能够会对php.ini设置中的’max_execution_time’由于某些特别缘由没有中断运转的剧本有效. 设置为 ’0′ 示意 ‘Off’.当经常涌现502毛病时能够尝试变动此选项。 request_slowlog_timeout = 10s #当一个要求该设置的超时时候后,就会将对应的PHP挪用客栈信息完全写入到慢日记中. 设置为 ’0′ 示意 ‘Off’ slowlog = log/$pool.log.slow #慢要求的纪录日记,合营request_slowlog_timeout运用 rlimit_files = 1024 #设置文件翻开描述符的rlimit限定. 默许值: 体系定义值默许可翻开句柄是1024,可运用 ulimit -n检察,ulimit -n 2048修正。 rlimit_core = 0 #设置中心rlimit最大限定值. 可用值: ‘unlimited’ 、0或许正整数. 默许值: 体系定义值. chroot = #启动时的Chroot目次. 所定义的目次须如果绝对路径. 假如没有设置, 则chroot不被运用. chdir = #设置启动目次,启动时会自动Chdir到该目次. 所定义的目次须如果绝对路径. 默许值: 当前目次,或许/目次(chroot时) catch_workers_output = yes #重定向运转过程当中的stdout和stderr到重要的毛病日记文件中. 假如没有设置, stdout 和 stderr 将会依据FastCGI的划定规矩被重定向到 /dev/null . 默许值: 空.
依据以上设置的剖析,在php-fpm.conf文件中增加以下设置:
pm.max_children = 100 pm.start_servers = 30 pm.min_spare_servers = 20 pm.max_spare_servers = 100 pm.max_requests = 500
引荐教程:PHP视频教程
以上就是php历程数目怎样决议的细致内容,更多请关注ki4网别的相干文章!