首页 技术 正文
技术 2022年11月6日
0 收藏 924 点赞 746 浏览 3181 个字

前言:乘着这次空闲,来记录下关于PHP和PHP-FPM配置文件的优化,也方便以后自己复习。

先说PHP的

1、PHP脚本执行时间

max_execution_time = 30

该选项设定PHP程序的最大执行时间,如果一个PHP脚本被请求,且该PHP脚本在max_execution_time时间内没能执行完毕,则PHP不再继续执行,直接给客户端返回超时错误。没有特殊需要该选项可保持默认设置30秒,如果您的PHP脚本确实需要长执行时间则可以适当增大该时间设置。

2、PHP脚本处理内存占用

memory_limit = 8M

该选项指定PHP脚本处理所能占用的最大内存,默认为8MB,如果您的服务器内存为1GB以上,则该选项可以设置为12MB以获得更快的PHP脚本处理效率。

3、PHP上传文件大小限制

upload_max_filesize = 2M

max_file_uploads = 3

该选项设定PHP所能允许最大上传文件大小,默认为2MB。根据实际应用需求,可以适当增大该设置,max_file_uploads表示单次请求最多只能上传 3 个文件

4、会话处理

session.save_handler = ‘memcached’   // 存放方式

session.save_path = ‘127.0.0.1:11211’  // 存放路径

该选项用于配置会话的存储方式和存放路径,默认是file文件方式,默认方式会拖慢大型应用,因为这个处理程序会把会话数据存储在硬盘中,需要创建不必要的磁盘 I/O,浪费时间。

以上就是一些常见的优化和配置了

再说下PHP-FPM的

说之前,我们先了解下什么是PHP-FPM。PHP-FPM(FastCGI Process Manager:FastCGI进程管理器)是一个PHPFastCGI管理器。那么PHP-FastCGI又是什么呢?

FastCGI是一个可伸缩地、高速地在HTTP服务器和动态脚本语言间通信的接口(FastCGI接口在Linux下是socket(可以是文件socket,也可以是ip socket)),主要优点是把动态语言和HTTP服务器分离开来。多数流行的HTTP服务器都支持FastCGI,包括Apache、Nginx和lightpd。

好了,这2个大概是了解了,下面说下PHP-FPM的配置

1、进程数

pm = static // 使用方式;还有一个dynamic(动态)

pm.max_children = 300  // 静态方式下开启的php-fpm进程数量pm.start_servers = 20 // 动态方式下的起始php-fpm进程数量pm.min_spare_servers = 5 // 动态方式下的最小php-fpm进程数pm.max_spare_servers = 30 // 动态方式下的最大php-fpm进程数量
关于选择静态还是动态对于内存大的服务器(比如8G以上)来说,指定静态的max_children实际上更为妥当,因为这样不需要进行额外的进程数目控制,会提高效率。对于小内存的服务器来说,比如256M内存的VPS,选择动态比较好,因为动态方式会结束掉多余的进程,可以回收释放一些内存,所以推荐在内存较少的服务器或VPS上使用。具体最大数量根据 内存/20M 得到。

 2、最大处理请求数

pm.max_requests = 10240

最大处理请求数是指一个php-fpm的worker进程在处理多少个请求后就终止掉,master进程会重新respawn一个新的。这个配置的主要目的是避免php解释器或程序引用的第三方库造成的内存泄露。 3、最长执行时间request_terminate_timeout = 30最大执行时间在php.ini和php-fpm.conf里都可以配置,配置项分别为max_execution_time和request_terminate_timeout。这两项都是用来配置一个PHP脚本的最大执行时间的。当超过这个时间时,PHP-FPM不只会终止脚本的执行,还会终止执行脚本的Worker进程。所以Nginx会发现与自己通信的连接断掉了,就会返回给客户端502错误。其作用及其影响参见:Nginx中502和504错误详解以上就是PHP-FPM配置文件的一些参数优化了 
既然说到了PHP-FPM了,那就简单介绍下php-fpm的高CPU使用率排查方法1、CPU使用率监控方法  1)top命令    直接执行top命令后,输入1就可以看到各个核心的CPU使用率。 2、开启慢日志 request_slowlog_timeout = 2slowlog = log/$pool.log.slow 配置输出php-fpm慢日志,阀值为2秒利用sort/uniq命令分析汇总php-fpm慢日志:[root@b28-12 log]# grep -v "^$" www.log.slow.tmp | cut -d " " -f 3,2 | sort | uniq -c | sort -k1,1nr | head -n 50   5181 run() /www/test.net/framework/web/filters/CFilter.php:41   5156 filter() /www/test.net/framework/web/filters/CFilterChain.php:131   2670 = /www/test.net/index.php   2636 run() /www/test.net/application/controllers/survey/index.php:665   2630 action() /www/test.net/application/controllers/survey/index.php:18   2625 run() /www/test.net/framework/web/actions/CAction.php:75   2605 runWithParams() /www/test.net/framework/web/CController.php:309   2604 runAction() /www/test.net/framework/web/filters/CFilterChain.php:134   2538 run() /www/test.net/framework/web/CController.php:292   2484 runActionWithFilters() /www/test.net/framework/web/CController.php:266   2251 run() /www/test.net/framework/web/CWebApplication.php:276   1799 translate() /www/test.net/application/libraries/Limesurvey_lang.php:118   1786 load_tables() /www/test.net/application/third_party/php-gettext/gettext.php:254   1447 runController() /www/test.net/framework/web/CWebApplication.php:135 参数解释:     sort:  对单词进行排序
     uniq -c:  显示唯一的行,并在每行行首加上本行在文件中出现的次数
     sort -k1,1nr:  按照第一个字段,数值排序,且为逆序
     head -10:  取前10行数据 好了,以上就是PHP和PHP-FPM配置的一些参数优化调整了。

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:8,949
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,475
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,288
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,103
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,735
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,770