How 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 .
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!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

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

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics











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 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 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 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.

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 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 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 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.
