search
HomeBackend DevelopmentPHP ProblemHow to solve the problem of too many php cgi.exe

Solution to too many php cgi.exe: first check the system disk space; then install PHP in CGI mode or ISAPI mode; then modify the program; finally optimize the fastcgi configuration file parameters in the web server configuration .

How to solve the problem of too many php cgi.exe

Recommended: "PHP Video Tutorial"

The server has a large number of php-cgi.exe processes, resulting in Solution to 100% CPU usage

This problem is generally a program problem. For example, the program uses fastcgi mode to run PHP, and the StartProcesses set by the program are too large, such as 6 or even larger.

Solution reference:

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 stored in 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.PHP is a widely used dynamic scripting language, but there is no built-in support for the PHP language in IIS, so if you need to use PHP , you must install it yourself. PHP can be installed in CGI mode or ISAPI mode. Since ISAPI mode has higher performance, I recommend 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 whether there are any problems with the server and attacks.

Optimize the fastcgi configuration file fcgiext.ini in Windows 2003 IIS6 to reduce the number of PHP-cgi.exe processes and the memory size

I heard that fastcgi is better than isapi, so I installed it on the server Now, the configuration environment is Windows 2003 IIS6 fastcgi (FCGI) PHP5.2.17. After observing for a long time, we found that PHP working in FastCGI mode will occupy more and more memory, and the number of visits to the php-cgi process will be slightly more. There are N more. In the same situation, it can be hundreds of MB more than when using isapi mode. My server has only 2G of memory and I can't afford to hurt it.

I searched online and found that many people are facing the same problem. A more formal explanation from the PHP official is: There is no memory leak in the php-cgi process. php-cgi will recycle all the memory used by the script at the end of each request, but it will not release it to the operating system, but will continue. Held for next PHP request. This is probably done to reduce memory fragmentation or to solve the uncontrollable time required to apply for memory from the system and then release it back to the operating system. However, if by chance a PHP request uses a large memory operation such as ftp or zlib, a large chunk of system memory will be continuously occupied by php-cgi and cannot be used.

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 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  指定了FastCGI解析程序的路径,
instanceMaxRequests  指定了每个实例可以处理的最大请求数,
maxInstances 指定可以启动的最大实例数目,
EnvironmentVars 创建了一个环境变量 PHP_FCGI_MAX_REQUESTS ,默认值设为10000,
requestTimeout  指定了请求的超时时间为600秒,
activityTimeout  指定了活动会话超时时间为900秒。

The following is the recommended value:

maxInstances=

Change this value to a smaller value

Recommendation

512M 内存的改maxInstances=50
1G 内存的改maxInstances=80
2G 内存的改maxInstances=140

Modify again

InstanceMaxRequests=

Change this value to a smaller value

Suggestion

512M 内存的改InstanceMaxRequests=200
1G 内存的改InstanceMaxRequests=300
2G 内存的改InstanceMaxRequests=500

After modification, restart IIS.

instanceMaxRequests PHP_FCGI_MAX_REQUESTS These two parameters determine the maximum number of PHP requests accepted after a php-cgi process is created. The default configuration in lighttpd is 10000. In other words, this php-cgi process will terminate every time it accepts 10,000 PHP requests, release all memory, and be restarted by the management process. If you lower it, for example, to 100, the restart cycle of php-cgi will be greatly shortened, and the impact time of problems caused by accidental high memory operations will also be shortened.

maxInstances This parameter specifies the maximum number of instances that can be started, that is, the number of php-cgi.exe processes. If you lower it, for example, to 100, then there will be at most only the php-cgi.exe process in the task manager's process, and the total memory occupied by php-cgi.exe will be greatly reduced.

The server I am using now is a Windows 2003 operating system with 4G memory. A php-cgi.exe program takes up 7-25M of memory. I adjusted the maxInstances value to 300 to reduce the number of php-cgi.exe processes. The total number and memory usage have also been reduced, and the response speed is much faster than before. At least the amount of adjustment can be determined according to the number of visits to your site.

The above is the detailed content of How to solve the problem of too many php cgi.exe. 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
ACID vs BASE Database: Differences and when to use each.ACID vs BASE Database: Differences and when to use each.Mar 26, 2025 pm 04:19 PM

The article compares ACID and BASE database models, detailing their characteristics and appropriate use cases. ACID prioritizes data integrity and consistency, suitable for financial and e-commerce applications, while BASE focuses on availability and

PHP Secure File Uploads: Preventing file-related vulnerabilities.PHP Secure File Uploads: Preventing file-related vulnerabilities.Mar 26, 2025 pm 04:18 PM

The article discusses securing PHP file uploads to prevent vulnerabilities like code injection. It focuses on file type validation, secure storage, and error handling to enhance application security.

PHP Input Validation: Best practices.PHP Input Validation: Best practices.Mar 26, 2025 pm 04:17 PM

Article discusses best practices for PHP input validation to enhance security, focusing on techniques like using built-in functions, whitelist approach, and server-side validation.

PHP API Rate Limiting: Implementation strategies.PHP API Rate Limiting: Implementation strategies.Mar 26, 2025 pm 04:16 PM

The article discusses strategies for implementing API rate limiting in PHP, including algorithms like Token Bucket and Leaky Bucket, and using libraries like symfony/rate-limiter. It also covers monitoring, dynamically adjusting rate limits, and hand

PHP Password Hashing: password_hash and password_verify.PHP Password Hashing: password_hash and password_verify.Mar 26, 2025 pm 04:15 PM

The article discusses the benefits of using password_hash and password_verify in PHP for securing passwords. The main argument is that these functions enhance password protection through automatic salt generation, strong hashing algorithms, and secur

OWASP Top 10 PHP: Describe and mitigate common vulnerabilities.OWASP Top 10 PHP: Describe and mitigate common vulnerabilities.Mar 26, 2025 pm 04:13 PM

The article discusses OWASP Top 10 vulnerabilities in PHP and mitigation strategies. Key issues include injection, broken authentication, and XSS, with recommended tools for monitoring and securing PHP applications.

PHP XSS Prevention: How to protect against XSS.PHP XSS Prevention: How to protect against XSS.Mar 26, 2025 pm 04:12 PM

The article discusses strategies to prevent XSS attacks in PHP, focusing on input sanitization, output encoding, and using security-enhancing libraries and frameworks.

PHP Interface vs Abstract Class: When to use each.PHP Interface vs Abstract Class: When to use each.Mar 26, 2025 pm 04:11 PM

The article discusses the use of interfaces and abstract classes in PHP, focusing on when to use each. Interfaces define a contract without implementation, suitable for unrelated classes and multiple inheritance. Abstract classes provide common funct

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
4 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Best Graphic Settings
4 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. How to Fix Audio if You Can't Hear Anyone
4 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: How To Unlock Everything In MyRise
1 months agoBy尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser is a secure browser environment for taking online exams securely. This software turns any computer into a secure workstation. It controls access to any utility and prevents students from using unauthorized resources.

EditPlus Chinese cracked version

EditPlus Chinese cracked version

Small size, syntax highlighting, does not support code prompt function

DVWA

DVWA

Damn Vulnerable Web App (DVWA) is a PHP/MySQL web application that is very vulnerable. Its main goals are to be an aid for security professionals to test their skills and tools in a legal environment, to help web developers better understand the process of securing web applications, and to help teachers/students teach/learn in a classroom environment Web application security. The goal of DVWA is to practice some of the most common web vulnerabilities through a simple and straightforward interface, with varying degrees of difficulty. Please note that this software

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Integrate Eclipse with SAP NetWeaver application server.