PHP-FPM实现性能优化,php-fpm性能优化
PHP-FPM实现性能优化,php-fpm性能优化
简介:
PHP-FPM 是一个 PHP FastCGI 管理器,一般 Nginx 上面跑 PHP 程序都会将 PHP 程序丢给 PHP-FPM 来解析。好了,就这样!
PHP 5.4 开始集成了 PHP-FPM ,也就是说编译 PHP 时,只要 --enable-fpm 就装好了 PHP-FPM 。
一、安装 PHP-FPM
shell > ./configure --prefix=/usr/local/php \ --with-config-file-path=/usr/local/php --with-mysql=/usr/local/mysql/ \ --with-mysqli=/usr/local/mysql/bin/mysql_config --with-gd --with-xsl --with-bz2 \ --with-zlib --with-curl --with-pear --without-iconv --with-mcrypt \ --with-gettext --with-openssl --with-libxml-dir --with-png-dir --with-jpeg-dir --with-freetype-dir \ --with-libdir=lib64 --enable-ftp --enable-fpm --enable-opcache --enable-exif --enable-soap --enable-bcmath --enable-calendar \ --enable-sockets --enable-mbstring --enable-gd-native-ttf --disable-rpath --disable-debug
## 看到上面这堆参数了没有,这是在编译 PHP ,其中有一个参数是 --enable-fpm 没错,这就是启用 PHP-FPM 扩展。
shell > make; make install
二、配置 PHP-FPM
shell > cp /usr/local/src/php-5.6.17/php.ini-production /usr/local/php/php.ini # 这是 PHP 的配置文件 shell > cp /usr/local/src/php-5.6.17/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm # 这是 PHP-FPM 的启动脚本 shell > cd /usr/local/php/etc/ shell > cp php-fpm.conf.default php-fpm.conf # 复制一份配置文件 shell > vim php-fpm.conf [global] pid = run/php-fpm.pid # PID rlimit_files = 65535 # 打开文件数限制 [www] # 进程池 user = nginx # 以 nginx 身份运行 group = nginx listen = 127.0.0.1:9000 # 监听本机的 9000 端口 ;listen = /dev/shm/php-cgi.sock; # 监听 UNIX SOCKET ,并把 SOCKET 放在了内存空间中,速度更快 ( Nginx 也要相应修改 )! ;listen.backlog = 10240 # UNIX SOCKET 的方式高并发下有点不稳定,该参数用来缓解 ( SOCKET 等待队列长度 ) ;listen.owner = nginx # UNIX SOCKET 的权限 ;listen.group = nginx ;listen.mode = 0660 pm = dynamic # 创建进程的方式,动态创建 pm.max_children = 32 # 最大进程数 ( 不能只看内存来创建,要看具体使用率,有时内存足够,进程数大多时,导致 CPU 频繁上下文切换,负载会很高 ) pm.start_servers = 5 # 初始进程数 pm.min_spare_servers = 5 # 最小空闲进程数 pm.max_spare_servers = 10 # 最大空闲进程数 pm.status_path = /php_status # PHP-FPM 状态监控 ( Nginx 要设置访问权限 ) shell > service php-fpm start
三、监控 PHP-FPM
shell > vim /usr/local/nginx/conf/nginx.conf location ~ /php_status { # 创建一个单独的 server 或直接在 server {} 中加入配置 access_log off; allow 127.0.0.1; allow 36.110.41.194; # 做好权限 deny all; fastcgi_pass 127.0.0.1:9000; # 如果是 UNIX SOCKET 的方式,要类似这样写: fastcgi_pass unix:/dev/shm/php-cgi.sock; fastcgi_param SCRIPT_FILENAME $fastcgi_script_name; include fastcgi_params; } shell > kill -HUP `cat /usr/local/nginx/logs/nginx.pid` shell > curl http://127.0.0.1/php_status # 访问该路径得到如下数据 pool: www # 进程池名称 process manager: dynamic # 进程管理方式 start time: 22/Jan/2016:15:49:00 +0800 # 启动时间 start since: 375 # 运行时长 accepted conn: 7 # 当前进程池接受的请求数 listen queue: 0 # 请求等待队列,如果不为 0 ,意味着 FPM 进程不足,需要增加 max listen queue: 0 # 最大等待队列数量 listen queue len: 1024 # SOCKET 等待队列长度 idle processes: 4 # 空闲进程数 active processes: 1 # 活跃的进程数 total processes: 5 # 总进程数 max active processes: 1 # 最大活跃进程数 max children reached: 0 # 达到最大进程数的次数,如果不为 0 ,意味着最大进程数不足,需要增加 slow requests: 0 # 慢请求数量,需要设置 slow log shell > curl http://127.0.0.1/php_status # 这里有多种参数供选择,例如: http://127.0.0.1/php_status?html 、?json 、?xml 、?full
# 我想,用 python 脚本用做个监控,?json 格式是最好不过了吧!
您可能感兴趣的文章:
- 基于php-fpm的配置详解
- php配置php-fpm启动参数及配置详解
- linux下php-fpm开启关闭使用方法
- nginx调用php-fpm出错解决方法和nginx配置详解
- 实现Nginx中使用PHP-FPM时记录PHP错误日志的配置方法
- Nginx和PHP-FPM的启动、重启、停止脚本分享
- Linux系统下PHP-FPM的安装和配置教程

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

JWT is an open standard based on JSON, used to securely transmit information between parties, mainly for identity authentication and information exchange. 1. JWT consists of three parts: Header, Payload and Signature. 2. The working principle of JWT includes three steps: generating JWT, verifying JWT and parsing Payload. 3. When using JWT for authentication in PHP, JWT can be generated and verified, and user role and permission information can be included in advanced usage. 4. Common errors include signature verification failure, token expiration, and payload oversized. Debugging skills include using debugging tools and logging. 5. Performance optimization and best practices include using appropriate signature algorithms, setting validity periods reasonably,

Nginx performance tuning can be achieved by adjusting the number of worker processes, connection pool size, enabling Gzip compression and HTTP/2 protocols, and using cache and load balancing. 1. Adjust the number of worker processes and connection pool size: worker_processesauto; events{worker_connections1024;}. 2. Enable Gzip compression and HTTP/2 protocol: http{gzipon;server{listen443sslhttp2;}}. 3. Use cache optimization: http{proxy_cache_path/path/to/cachelevels=1:2k

This tutorial demonstrates how to efficiently process XML documents using PHP. XML (eXtensible Markup Language) is a versatile text-based markup language designed for both human readability and machine parsing. It's commonly used for data storage an

Static binding (static::) implements late static binding (LSB) in PHP, allowing calling classes to be referenced in static contexts rather than defining classes. 1) The parsing process is performed at runtime, 2) Look up the call class in the inheritance relationship, 3) It may bring performance overhead.

A string is a sequence of characters, including letters, numbers, and symbols. This tutorial will learn how to calculate the number of vowels in a given string in PHP using different methods. The vowels in English are a, e, i, o, u, and they can be uppercase or lowercase. What is a vowel? Vowels are alphabetic characters that represent a specific pronunciation. There are five vowels in English, including uppercase and lowercase: a, e, i, o, u Example 1 Input: String = "Tutorialspoint" Output: 6 explain The vowels in the string "Tutorialspoint" are u, o, i, a, o, i. There are 6 yuan in total

What are the magic methods of PHP? PHP's magic methods include: 1.\_\_construct, used to initialize objects; 2.\_\_destruct, used to clean up resources; 3.\_\_call, handle non-existent method calls; 4.\_\_get, implement dynamic attribute access; 5.\_\_set, implement dynamic attribute settings. These methods are automatically called in certain situations, improving code flexibility and efficiency.

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
