Home >Backend Development >PHP Problem >What to do if there are too many php cgi.exe processes

What to do if there are too many php cgi.exe processes

藏色散人
藏色散人Original
2020-09-03 09:39:062904browse

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.

What to do if there are too many php cgi.exe processes

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!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn