web服务器php-fpm文件分析

php-fpm目前主要又两个分支,分别对应于php-5.2.x的版本和php-5.3.x的版本。在5.2.x的版本中,php-fpm.conf使用的是xml格式,而在新的5.3.x版本中,则是和php.ini一样的配置风格。

1.php-FPM 提供了慢执行日志,可以将执行比较慢的脚本的调用过程 dump 到日志中。
PHP 5.3.3 之前设置如下:

<value name="request_slowlog_timeout">5s</value>
<value name="slowlog">logs/php-fpm-slowlog.log</value>

PHP 5.3.3 之后设置以下如下:

request_slowlog_timeout = 5s
slowlog = /usr/local/php/log/php-fpm-slowlog.log

2.还可以将执行时间太长的进程直接终止,request_terminate_timeout
参数表示等待10秒后,结束那些没有自动结束的php脚本,以释放占用的资源。

PHP 5.3.3 之前版本:

<value name="request_terminate_timeout">10s</value>

PHP 5.3.3+:

request_terminate_timeout = 10s

3.php-fpm两种进程管理方式

pm表示使用那种方式,就是static(静态)或者dynamic(动态)。在更老一些的版本中,dynamic被称作apache-like。

pm.max_children:静态方式下开启的php-fpm进程数量。
pm.start_servers:动态方式下的起始php-fpm进程数量。
pm.min_spare_servers:动态方式下的最小php-fpm进程数量。
pm.max_spare_servers:动态方式下的最大php-fpm进程数量。

如果dm设置为static,那么其实只有pm.max_children这个参数生效,系统会开启设置数量的php-fpm进程。

如果dm设置为dynamic,那么pm.max_children参数失效,后面3个参数生效。

系统会在php-fpm运行开始 的时候启动pm.start_servers个php-fpm进程,然后根据系统的需求动态在pm.min_spare_servers和pm.max_spare_servers之间调整php-fpm进程数。

那么,对于我们的服务器,选择哪种执行方式比较好呢?事实上,跟Apache一样,运行的PHP程序在执行完成后,或多或少会有内存泄露的问题。这也是为什么开始的时候一个php-fpm进程只占用3M左右内存,运行一段时间后就会上升到20-30M的原因了。

对于内存大的服务器(比如8G以上)来说,指定静态的max_children实际上更为妥当,因为这样不需要进行额外的进程数目控制,会提高效率。

因为频繁开关php-fpm进程也会有时滞,所以内存够大的情况下开静态效果会更好。数量也可以根据 内存/30M 得到,比如8GB内存可以设置为100,那么php-fpm耗费的内存就能控制在 2G-3G的样子。如果内存稍微小点,比如1G,那么指定静态的进程数量更加有利于服务器的稳定。这样可以保证php-fpm只获取够用的内存,将不多的 内存分配给其他应用去使用,会使系统的运行更加畅通。

对于小内存的服务器来说,比如256M内存的VPS,即使按照一个20M的内存量来算,10个php-cgi进程就将耗掉200M内存,那系统的崩溃就应该很正常了。

因此应该尽量地控制php-fpm进程的数量,大体明确其他应用占用的内存后,给它指定一个静态的小数量,会让系统更加平稳一些。或者使用动态方式,因为动态方式会结束掉多余的进程,可以回收释放一些内存,所以推荐在内存较少的服务器或VPS上使用。具体最大数量根据 内存/20M 得到。比如512M的VPS,建议pm.max_spare_servers设置为20。至于pm.min_spare_servers,则建议根据服务器的负载情况来设置,比较合适的值在5~10之间。

参考:

http://www.linuxde.net/2011/12/3254.html

http://www.linuxde.net/2013/02/12101.html

web服务器php-fpm文件分析

时间: 2024-10-21 23:35:01

web服务器php-fpm文件分析的相关文章

web服务器上传文件过程

通过web服务器上传文件,需要提前准备好下面3步,然后才能通过第4步上传文件1.web服务器的配置 1.1 将代码src目录中的select.c文件的170行的REQUEST_TIMEOUT改为10*REQUEST_TIMEOUT 1.2 在buildroot中选中boa后保存编译,然后更新nfs_root中内容: 1.3 重启单板 1.4 配置/etc/boa/boa.conf文件 1.4.1 屏蔽掉Group nobody,增加Group 0 1.4.2 去掉Errorlog前的屏蔽 1.4

rsync+inotify实现对web服务器上的文件自动同步

rsync: rsync是一个远程同步工具,非常强大的一款工具,在同步时可以保持文件的权限,属性,硬链接等,通过"rsync算法"来实现本地和远程主机的数据同步,并且是扫描两个主机之间不同的文件来进行传输,而不是整份的传输,因此速度相当快.但是随着系统规模的越来越大,rsync暴露出很多不足. 首先,rsync同步数据时,需要扫描所有文件后进行比对,进行差量传输.如果文件数量达到了百万甚至千万量级,扫描所有文件将是非常耗时的.而且正在发生变化的往往是其中很少的一部分,这是非常低效的方式

CSAPP Tiny web 服务器源码分析及搭建运行

1. Web基础 web客户端和服务器之间的交互使用的是一个基于文本的应用级协议HTTP(超文本传输协议).一个web客户端(即浏览器)打开一个到服务器的因特网连接,并且请求某些内容.服务器响应所请求的内容,然后关闭连接.浏览器读取这些内容,并把它显示在屏幕上. 对于web客户端和服务器而言,内容是与一个MIME类型相关的字节序列.常见的MIME类型: MIME类型 描述 text/html HTML页面 text/plain 无格式文本 image/gif GIF格式编码的二进制图像 imag

web站点服务器日志管理及分析

管理Web网站不只是监视Web的速度和Web的内容传送.它不仅要关注服务器每天的吞吐量,还要了解这些Web网站的外来访问,了解网站各页面的访问情况.根据各页面的点击频率来改善网页的内容和质量,提高内容的可读性,以及跟踪包含有商业交易的步骤及管理Web网站"幕后"的数据等. 为了更好地提供WWW服务,监控Web服务器的运行情况.了解网站内容的详细访问状况就显得越来越重要和迫切了.而这些要求都可以通过对Web服务器日志文件的统计和分析来实现.本文将对Web服务器日志分析的原理和技术进行讨论

关于Web服务器的认识

马上就要毕业了,也要开始找工作了,大学写了这么多代码了,却没有好好总结一下常用的概念很是遗憾额,就通过这篇博客记录一下我最常用的一些知识好了. 说到Web服务器,有很多文章都介绍的很好,之前看到一篇非常不错的,对我帮助很大,可惜现在找不到原文了,看到博客园有人转载,我就在这里也记一下好了,在此非常感谢作者的分析,受益匪浅. 那么在说Web服务器之前,先说说线程.进程.以及并发连接数. 1.进程与线程 进程是具有一定独立功能的程序,关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一

Web服务器集群搭建

前言:本文记述了搭建一个小型web服务器集群的过程,由于篇幅所限,系统.软件的安装和基本配置我这里就省略了,只记叙关键配置和脚本内容.假如各位朋友想了解各软件详细配置建议查阅官方文档. 一 需求分析: 1.整体需求:搭建一个高可用的网站服务器集群,能承受高并发请求,能抵御一般的网络攻击,任何一台服务器的退服不影响整个集群的运作,并且能对各服务器的运行情况作出实时监控. 2.详细需求分析: 根据需求,计划根据以下拓扑搭建运行环境: 二 详细功能描述: 1.前端服务器采用nginx实现反向代理和负载

实验五(简单嵌入式WEB服务器实验)问题总结

实验五问题总结 问题链接:<信息安全系统设计基础>实验五实验报告 虽然将07_httpd文件中全部拷贝进了bc中,文件夹中拥有Makefile文件,但是还是无法通过make得到该文件夹中copy和httpd的可执行文件.解决:第一次是觉得Makefile文件中的PATH路径不对,将其改成了/home/bc/07_httpd存盘退出后发现还是无法执行,第二次我们直接使用gcc对其单步进行编译:armv4l-unknow-linux-gcc –E copy.c –o copy.iarmv4l-un

Web服务器性能优化

Web 服务器性能与站点访问性能优化思路 要优化 Web 服务器的性能,我们先来看看 Web 服务器在 web 页面处理上的步骤:1.Web 浏览器向一个特定的服务器发出 Web 页面请求;2.Web 服务器接收到 web 页面请求后,寻找所请求的 web 页面,并将所请求的 Web 页面传送给 Web 浏览器;3.Web 浏览器接收到所请求的 web 页面内容,并将它显示出来. 上面三个步骤都关系 Web 服务器,但实际 Web 服务器性能相关最大的是在第 2 步,这里 Web 服务器需要寻找

攻城狮在路上(肆)How tomcat works(一) 简单的web服务器

 该节总共三个类:Request\Response\HttpServer---user.dir 该节的目的是实现简单web服务器对静态文件的访问.需要对请求头.请求体的格式有所了解,不然就没有办法解析. 1.Request: 主要的方法是parse,该方法的主要逻辑是解析Socket的Inputstream,读取输入流,解析出请求访问的地址uri,比如:/index.jsp 解析uri时,是针对HTTP请求的标准格式进行解析:GET /articles/news/today.asp HTTP/1

CentOS6.5 web服务器apache的安装与基本设置啊

使用yum安装apache yum install httpd -y Apache  web 服务器目录的文件 目录 描述 WEB站点目录 /var/www Apache web站点文件的目录 /var/www/html 存放WEB站点的WEB文件 /var/www/cgi-bin 存放CGI程序文件 /var/www/html/manual 存放服务器手册 配置文件 .htaccess 基于目录的配置文件..htaccess文件包含对它所在目录中文件的访问控制指令 /etc/httpd/con