php maxInstances,win2008服务器IIS+fastCGI完美设置教程_weixin_39942213的博客-程序员宅基地

技术标签: php maxInstances  

帮用户配置服务器,装的WIN2008系统,在WIN2008的IIS7上用FASTCGI调使用PHP-CGI.EXE,默认只有4个进程,这样对于大流量的网站为说进程数不足带来的进程排队现象十分严重,处理方案如下

32位系统 http://www.iis.net/Downloads/files/AdminPack/TP2/AdminPack_x86.msi

64位系统 http://www.iis.net/Downloads/files/AdminPack/TP2/AdminPack_amd64.msi

下载如下工具,安装后,如下图

82314209c2b2d82f349c6b101a25910e.png

cde1ccd38b97cf4ca3e0f0d78277f444.png

增加

PHP_FCGI_MAX_REQUESTS = 10000

增加后,不使用重启IIS,就能在进程管理器看到效果。

393597337461a8a1dd52ee212014c92d.png

似乎并没有达到设定的值,不过浏览网站显著感觉到性能的提醒。

196a6195876b77bc93adad5414045b43.png

内存占使用~~ 其实微软的系统有一个不好处在于,服务器的内存占使用,要尽量让服务去用,而并不像用户端用一样,留足够多的内存给使用户的应使用程序。

我在这里要提示大家注意的是以下两个参数值得设置:

InstanceMaxRequests:fastcgi进程(php-fcgi.exe)能解决的最大请求数,超过了就要回收,默认是200

PHP_FCGI_MAX_REQUESTS:php自身控制的最大请求数,默认是500

既然要使用fastcgi去运行cgi,那一定是不想php自身去限制最大请求数!!

所以,肯定要保证InstanceMaxRequests小于 或者 等于 PHP_FCGI_MAX_REQUESTS,这样php自身永远没有机会去回收进程。

可以看micorsoft说的:

Make sure that FastCGI always recycles Php-cgi.exe processes before native PHP recycling starts. The configuration property instanceMaxRequests controls the FastCGI process-recycling behavior. This property specifies how many requests FastCGI will process before recycling. PHP also has a similar process-recycling functionality that is controlled by the environment variable PHP_FCGI_MAX_REQUESTS. By setting instanceMaxRequests to a value that is smaller than or equal to PHP_FCGI_MAX_REQUESTS, you can make sure that the native PHP process-recycling logic will never start.

建议

512M 内存的改maxInstances=50

1G 内存的改maxInstances=80

2G 内存的改maxInstances=140

再修改

InstanceMaxRequests=

把这个值改小

建议

512M 内存的改InstanceMaxRequests=200

1G 内存的改InstanceMaxRequests=300

2G 内存的改InstanceMaxRequests=500

改完, 重启IIS。

instanceMaxRequests PHP_FCGI_MAX_REQUESTS 这两个参数决定了一个php-cgi进程被创立出来之后,最多接受的PHP请求数,在lighttpd中默认配置是10000。也就是说这个php-cgi进程每接受10000次PHP请求后会终止,释放所有内存,并重新被管理进程启动。假如把它降低,比方改成100,那么php-cgi重启的周期会大大缩短,偶然的高内存操作造成的问题影响时间也会缩短。

maxInstances 这个参数指定可以启动的最大实例数目,即php-cgi.exe进程的数目。假如把它降低,比方改成100,那么在任务管理器的进程中最多只有php-cgi.exe进程,php-cgi.exe所占使用的总内存将大大减少。

我现在使用的服务器为windows 2003操作系统,4G内存,一个php-cgi.exe程序占使用7-25M内存,我把maxInstances值调为300,减少了php-cgi.exe进程的总数量,占使用内存也减小了,反应速度比以前快了不少,至少调整到多少,可根据您的站点访问量来决定。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_39942213/article/details/115684313

智能推荐

eclipse中解决import sun.misc.Unsafe报错的方法_黄油奥特曼的博客-程序员宅基地

想要学习学习RxJava,结果从github上下载下来,复制到java项目中,有一个UnsafeAccess的类报错,这个类报错影响到了别的类,引起了一大堆的类报错,报错截图如图所示: 找不到UnSafe这个类,经过多番搜索,解决方法如下: 右键项目名称,选择”Properties”,之后按照下图所示操作: 注意图中红框圈出来的地方,把”Error”全部改成”Warning”,这样就解

二、DevOps学习笔记_林【】姣的博客-程序员宅基地

DevOps学习笔记(第二节 docker底层技术)docker实际上是客户端对应服务端的cs架构 docker安装,参考官网即可,https://docs.docker.com/install/linux/docker-ce/centos/3.docker常用命令如: 操作镜像 docker images / docker rmi 镜像ID / sudo syst...

SQL使用(一)-----联合查询_sql联合查询_CherishZsq的博客-程序员宅基地

本文主要对内连接(inner Join 或 Join)、外连接(outer Join) 、左外连接(left outer Join 或 left Join)、右外连接(right outer Join 或 right Join)、全外连接(full outer Join 或 full Join)、交叉连接 (cross Join)、结果集链接 (union 和 union all)等SQL的联合查询进行了分析与介绍。

用本地C#写出的WebService利用MQTT协议去连接阿里云来实现数值的远程传输和使用(同步调用)第二篇:WebService的发布_Eragonl的博客-程序员宅基地

IIS的启动我们首先先启动IIS(博主这里用的是win10)然后点击 “启动或关闭windows功能”跳出如下界面:如上图,单击"Internet Information Services左侧的方框。如上图,展开“万维网服务”,展开“应用程序开发功能”,按图示勾选其中的四项。打开搜索框,搜索iis,应有下图所示的项目:  这样就表明已经成功打开了IIS。然后我们进入刚刚已经...

vector容器嵌套容器_多层vector容器嵌套_courage_lizy的博客-程序员宅基地

#include<iostream>#include<vector>#include<algorithm>//标准算法头文件using namespace std;//vector容器嵌套容器void test1() { vector<vector<int>>v; //创建小容器 vector<int>v1; vector<int>v2; vector<int>v3; //向小容器中添加数.

css-palm,[转载]【转】蛋白质翻译后修饰棕榈酰化位点预测工具 —— CS_weixin_39800112的博客-程序员宅基地

As a special class of post-translational modifications (PTMs),numerous proteins could be covalently modified by a variety oflipids, including myristate (C14), palmitate (C16), farnesyl (C15),geranylge...

随便推点

Java字符串_Roe D.的博客-程序员宅基地

一,装箱和拆箱低级别转为高级别,可以实现自动装和拆箱,反之是不行的public class Test{ public static void main(){ int a=10; Integer test1 = new Integer(i); // 基本类型转 封装类 int a = test1.IntValue(); // 封装类转 基本类型 Integer test...

AWS Auto Scaling (Amazon Auto Scaling)学习笔记_pg_edb的博客-程序员宅基地

Auto Scaling is a service that allows you to scale your Amazon EC2 capacity automatically by scaling out and scaling in according to criteria that you define.Auto Scaling PlansAuto Scaling has sever...

2021-05-14 uni-app配置小程序云开发,短信跳转小程序_uniapp 短信跳转小程序_倾姚的博客-程序员宅基地

1.下载 wx-server-sdknpm install --save [email protected]配置云开发在project.config.json 中配置"cloudfunctionRoot": "cloudfunctions/",在manifest.json 中配置"cloudfunctionRoot": "cloudfunctions/"3.项目根目录下新建文件 cloudfunctions(下边先建一个js文件,因为不能为空)4.在A...

openEuler安装Docker和踩坑分析_openeuler yum-utils_Jairoguo的博客-程序员宅基地

12 月 8 日,CentOS 开发团队在其官博宣布,CentOS 8 将在 2021 年 12 月 31 日结束支持,CentOS 7 会按照计划维护至生命周期结束即 2024 年 6 月 30 日,接下来接下来将重点建设 CentOS Stream。免费的RedHat没有了,但生活还得继续。接下来我的目光转向openEuler,openEuler 是一个开源、免费的 Linux 发行版平台,将通过开放的社区形式与全球的开发者共同构建一个开放、多元和架构包容的软件生态体系。它由华为公司开源,众多国内企业

C# 企业微信消息推送对接,实现天气预报推送_c#企业微信推送消息_今晚打老虎z的博客-程序员宅基地

C# 企业微信消息推送对接,实现天气预报推送准备工作需要获取的东西1. 企业Id,2.应用secret 和 应用ID获取企业id注册完成后,在我的企业=》企业信息=》最下面企业id获取应用secret 和 应用ID发送微信消息 class WeCom { public static string weComCId = "ww2b b0bf8";//企业Id① public static string weComSecret = "EbKnQqG

StringUtils方法全集_leaderway的博客-程序员宅基地

org.apache.commons.lang.StringUtils中方法的操作对象是java.lang.String类型的对象,是JDK提供的String类型操作方法的补充,并且是null安全的(即如果输入参数String为null则不会抛出NullPointerException,而是做了相应处理,例如,如果输入为null则返回也是null等,具体可以查看源代码)。除了构造器,Strin

推荐文章

热门文章

相关标签