Home Backend Development PHP Problem How to solve the problem of too many php cgi.exe

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

Oct 12, 2020 am 10:04 AM
cgi php

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
Copy after login

In the above configuration:

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

The following is the recommended value:

maxInstances=
Copy after login

Change this value to a smaller value

Recommendation

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

Modify again

InstanceMaxRequests=
Copy after login

Change this value to a smaller value

Suggestion

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

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 of this Website
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

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

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Roblox: Bubble Gum Simulator Infinity - How To Get And Use Royal Keys
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Nordhold: Fusion System, Explained
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Mandragora: Whispers Of The Witch Tree - How To Unlock The Grappling Hook
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Hot Topics

Java Tutorial
1666
14
PHP Tutorial
1273
29
C# Tutorial
1252
24
PHP and Python: Comparing Two Popular Programming Languages PHP and Python: Comparing Two Popular Programming Languages Apr 14, 2025 am 12:13 AM

PHP and Python each have their own advantages, and choose according to project requirements. 1.PHP is suitable for web development, especially for rapid development and maintenance of websites. 2. Python is suitable for data science, machine learning and artificial intelligence, with concise syntax and suitable for beginners.

PHP: A Key Language for Web Development PHP: A Key Language for Web Development Apr 13, 2025 am 12:08 AM

PHP is a scripting language widely used on the server side, especially suitable for web development. 1.PHP can embed HTML, process HTTP requests and responses, and supports a variety of databases. 2.PHP is used to generate dynamic web content, process form data, access databases, etc., with strong community support and open source resources. 3. PHP is an interpreted language, and the execution process includes lexical analysis, grammatical analysis, compilation and execution. 4.PHP can be combined with MySQL for advanced applications such as user registration systems. 5. When debugging PHP, you can use functions such as error_reporting() and var_dump(). 6. Optimize PHP code to use caching mechanisms, optimize database queries and use built-in functions. 7

PHP in Action: Real-World Examples and Applications PHP in Action: Real-World Examples and Applications Apr 14, 2025 am 12:19 AM

PHP is widely used in e-commerce, content management systems and API development. 1) E-commerce: used for shopping cart function and payment processing. 2) Content management system: used for dynamic content generation and user management. 3) API development: used for RESTful API development and API security. Through performance optimization and best practices, the efficiency and maintainability of PHP applications are improved.

PHP vs. Python: Understanding the Differences PHP vs. Python: Understanding the Differences Apr 11, 2025 am 12:15 AM

PHP and Python each have their own advantages, and the choice should be based on project requirements. 1.PHP is suitable for web development, with simple syntax and high execution efficiency. 2. Python is suitable for data science and machine learning, with concise syntax and rich libraries.

The Enduring Relevance of PHP: Is It Still Alive? The Enduring Relevance of PHP: Is It Still Alive? Apr 14, 2025 am 12:12 AM

PHP is still dynamic and still occupies an important position in the field of modern programming. 1) PHP's simplicity and powerful community support make it widely used in web development; 2) Its flexibility and stability make it outstanding in handling web forms, database operations and file processing; 3) PHP is constantly evolving and optimizing, suitable for beginners and experienced developers.

PHP and Python: Code Examples and Comparison PHP and Python: Code Examples and Comparison Apr 15, 2025 am 12:07 AM

PHP and Python have their own advantages and disadvantages, and the choice depends on project needs and personal preferences. 1.PHP is suitable for rapid development and maintenance of large-scale web applications. 2. Python dominates the field of data science and machine learning.

PHP vs. Other Languages: A Comparison PHP vs. Other Languages: A Comparison Apr 13, 2025 am 12:19 AM

PHP is suitable for web development, especially in rapid development and processing dynamic content, but is not good at data science and enterprise-level applications. Compared with Python, PHP has more advantages in web development, but is not as good as Python in the field of data science; compared with Java, PHP performs worse in enterprise-level applications, but is more flexible in web development; compared with JavaScript, PHP is more concise in back-end development, but is not as good as JavaScript in front-end development.

PHP and Python: Different Paradigms Explained PHP and Python: Different Paradigms Explained Apr 18, 2025 am 12:26 AM

PHP is mainly procedural programming, but also supports object-oriented programming (OOP); Python supports a variety of paradigms, including OOP, functional and procedural programming. PHP is suitable for web development, and Python is suitable for a variety of applications such as data analysis and machine learning.

See all articles