Home >Backend Development >PHP Problem >What to do if there are too many php cgi.exe processes
php The solution to the problem of too many cgi.exe processes: first check the system disk space to see if there are too many temporary system files; then use the "del *.*" command to delete all files; then add the program configuration file to The StartProcesses value is reduced to 2; finally optimize the fastcgi configuration file parameters.
Recommended: "PHP Video Tutorial"
php Solution to too many cgi.exe processes :
There are too many php-cgi.exe processes on the server, causing the CPU to occupy 100%. Solution:
1. Check the system disk space. Check whether there are too many temporary files in the system. The temporary files of the MySQL database are saved to c:/windows/temp by default, resulting in the accumulation of tens of thousands or even millions of small files, overwhelming the system disk.
del *.* Delete all files
2. There is no built-in support for the PHP language in IIS. To use PHP, you must install it yourself. PHP can be installed in CGI mode or ISAPI mode. Since ISAPI mode has higher performance, it is recommended that you use ISAPI mode.
3. If you can modify the program, it is recommended to reduce the StartProcesses value in the program configuration file to 2 to see if it improves.
4. Check if there are any problems with the server.
Optimize the fastcgi configuration file fcgiext.ini in windows 2003 IIS6 to reduce the number of php-cgi.exe processes and the memory size
The configuration environment is windows 2003 IIS6 fastcgi (FCGI) PHP5.2.17 , found that PHP working in FastCGI mode will occupy more and more memory. If the access volume is slightly more, there will be N more php-cgi processes. In the same situation, it can be hundreds of MB more than when using isapi mode. The server memory is only 2G, so I can’t afford it.
The solution to this problem is to optimize the fastcgi configuration file parameters in the web server configuration.
In the C:\WINDOWS\system32\inetsrv\fcgiext.ini file you can set the php-cgi process related parameters, such as:
[Types] php = PHP [PHP] ExePath=C:\php-5.3.8-nts-Win32-VC9-x86\php-cgi.exe maxInstances=100 InstanceMaxRequests=10000 EnvironmentVars=PHP_FCGI_MAX_REQUESTS:10000 RequestTimeout=600 ActivityTimeout=900
In the above configuration:
ExePath specifies the path to the FastCGI parser,
instanceMaxRequests specifies the maximum number of requests that each instance can handle,
maxInstances specifies the maximum number of instances that can be started,
EnvironmentVars creates an environment variable PHP_FCGI_MAX_REQUESTS, with the default value set to 10000.
requestTimeout specifies the request timeout to 600 seconds, and
activityTimeout specifies the active session timeout to 900 seconds.
The following is the recommended value
maxInstances=
It is recommended to change this value to a smaller value
512M memory maxInstances=50
1G Memory change maxInstances=80
2G memory change maxInstances=140
Then modify
InstanceMaxRequests=
It is recommended to change this value to a smaller value
512M memory change InstanceMaxRequests=200
Change InstanceMaxRequests=300
for 1G of memory Change InstanceMaxRequests=500
for 2G of memory After the modification is completed, restart IIS.
The above is the detailed content of What to do if there are too many php cgi.exe processes. For more information, please follow other related articles on the PHP Chinese website!