`

[转]PHP-FPM高负载技巧

 
阅读更多

 

转 http://www.187299.com/archives/category/nginx/page/4

http://www.zhiyuanjun.net/?p=9

于Nginx对高并发的优良性能,故配了个Nginx+php-fpm来跑在线代理程序,是按照张宴文章配的,刚配置好时运行正常,但运行一段时间 后,网站打开很慢,打开网站后,在输入框输入要访问的网站,也慢得不行。在网站打开慢时,在SSH终端上输入命令也慢,怀疑是机房网速问题,但在ssh上 输入

w3m www.example.com

这个打开也慢,基本可以排除机房的网速问题。

当打开网站慢时,把服务器重启后,就会快起来,后来发现,用

/usr/local/webserver/php/sbin/php-fpm restart

把fastcgi重启下也会快起来,最把它加入计划任务,每小时重启下,基本保证网站不会慢,但终究不是办法。

查看了nginx.log和php-fpm.log,根据里面的错误,找了以上转载的几篇文章,总算是把问题解决了,主要修改了两个地方
1、
问题:
发现/usr/local/webserver/php/etc/php-fpm.conf文件里定义的打开文件描述符的限制数量是
<value name=”rlimit_files”>51200</value>
但用 命令ulimit -n查看,发现只有1024

我已在/etc/rc.local里添加了
ulimit -SHn 51200

竟然没生效

解决:
vi  /etc/security/limits.conf

文件最后加上
*        soft    nofile  51200
*        hard    nofile  51200

2、
问题:
用命令

netstat -np | grep 127.0.0.1:9000 |wc -l

发现只有100多

解决:
根据服务器内存情况,可以把PHP FastCGI子进程数调到100或以上,在4G内存的服务器上200就可以
服务器上内存为8G,我把PHP FastCGI子进程数调整到300

vi /usr/local/webserver/php/etc/php-fpm.conf
将max_children修改为300
<value name=”max_children”>300</value>

重启服务器,这样,网站打开速度快,而且稳定了。

When you running a highload website with PHP-FPM via FastCGI, the following tips may be useful to you : )
如果您高负载网站使用PHP-FPM管 理FastCGI,这些技巧也许对您有用:)

1. Compile PHP’s modules as less as possible, the simple the best (fast);
1.尽量少安装PHP模块,最简单是最好(快)的

2. Increas PHP FastCGI child number to 100 and even more. Sometime, 200 is OK! ( On 4GB memory server);
2.把您的PHP FastCGI子进程数调到100或以上,在4G内存的服务器上200就可以
注:我的1g测试机,开64个是最好的,建议使用压力测试获取最佳值

3. Using SOCKET PHP FastCGI, and put into /dev/shm on Linux;
3.使用socket连接FastCGI,linux操作系统可以放在 /dev/shm中
注:在php-fpm.cnf 里设置<value name=”listen_address”>/tmp/nginx.socket</value>就可以通过socket连接 FastCGI了,/dev/shm是内存文件系统,放在内存中肯定会快了

4. Increase Linux “max open files”, using the following command (must be root):
# echo ‘ulimit -HSn 65536′ >> /etc/profile
# echo ‘ulimit -HSn 65536 >> /etc/rc.local
# source /etc/profile
4.调高linux内核打开文件数量,可以使用这些命令(必须是root帐号)
echo ‘ulimit -HSn 65536′ >> /etc/profile
echo ‘ulimit -HSn 65536′ >> /etc/rc.local
source /etc/profile
注:我是修改/etc/rc.local,加入ulimit -SHn 51200的

5. Increase PHP-FPM open file description rlimit:
# vi /path/to/php-fpm.conf
Find “<value name=”rlimit_files”>1024</value>”
Change 1024 to 4096 or higher number.
Restart PHP-FPM.
5. 增加 PHP-FPM 打开文件描述符的限制:
# vi /path/to/php-fpm.conf
找到“<value name=”rlimit_files”>1024</value>”
把1024 更改为 4096 或者更高.
重启 PHP-FPM.

6. Using PHP code accelerator, e.g eAccelerator, XCache. And set “cache_dir” to /dev/shm on Linux.
6.使用php代码加速器,例如 eAccelerator, XCache.在linux平台上可以把`cache_dir`指向 /dev/shm

分享到:
评论

相关推荐

    nginx+php-fpm优化技巧总结

    ### Nginx+php-fpm优化技巧总结 #### 一、引言 随着互联网应用的不断发展壮大,服务器的性能优化成为提升用户体验的关键因素之一。在众多高性能架构中,Nginx+php-fpm的组合因其高效稳定而备受青睐。本文将深入探讨...

    解决Linux下php-fpm进程过多导致内存耗尽问题

    在Linux系统中,php-fpm(FastCGI Process Manager)是PHP的一个重要组件,它用于管理PHP进程池,处理来自Web服务器(如Nginx)的请求。当php-fpm进程过多时,可能会导致内存耗尽,从而影响到其他服务,如数据库服务...

    FPM培训.zip

    综上所述,FPM在PHP应用中扮演着至关重要的角色,通过理解和掌握FPM的工作原理、配置技巧以及性能优化方法,我们可以更好地管理和提升PHP应用的性能,确保系统的稳定运行。在实际操作中,应结合具体的业务场景和...

    windows nginx +php 配置

    Nginx采用反向代理和负载均衡模式,通过接收客户端请求并转发给后端服务器(如PHP-FPM)来处理,然后将处理结果返回给客户端。它的优势在于能够高效处理高并发请求,而且内存占用少。 接着,我们来安装和配置Nginx...

    实战Nginx:取代Apache的高性能Web服务器----张宴

    通过"实战Nginx:取代Apache的高性能Web服务器"的学习,读者将能够掌握Nginx的基本配置和高级应用技巧,从而在实际工作中更好地利用Nginx构建高效稳定的Web服务环境。这本书对于想要从Apache迁移到Nginx的开发者来说...

    Scaling PHP Applications

    Nginx是一个高性能的HTTP和反向代理服务器,PHP-FPM(FastCGI进程管理器)用于管理PHP进程,它们的组合使用可以极大地提升PHP应用的性能。 7. 正确选择PHP版本:根据应用需求选择合适的PHP版本对于扩展性同样重要,...

    linux环境下web服务器搭建完整版

    本文将详细讲解如何在Linux系统上构建一个完整的Web服务器环境,包括选择合适的软件、安装配置、以及一些实用技巧。 1. **选择Web服务器软件** 在Linux系统中,常见的Web服务器软件有Apache和Nginx。Apache以其...

    Nginx-for-WordPress-Configurations-源码.rar

    对于WordPress,Nginx可以作为静态文件服务器,直接返回HTML、CSS、JavaScript等文件,而将PHP请求转发到PHP-FPM(FastCGI进程管理器)处理,这样既减轻了服务器负载,又提高了页面加载速度。 接下来,我们关注...

    实战Nginx取代Apache的高性能Web服务器.rar

    《实战Nginx取代Apache的高性能Web服务器》一...通过阅读本书,读者不仅可以了解Nginx的基本原理,还能掌握实际操作中的技巧和最佳实践,从而在项目中成功实现Nginx替换Apache,构建出更高性能、更稳定的Web服务环境。

    Nginx软件及Nginx高性能Web服务器详解.zip

    Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/...掌握Nginx的安装、配置和优化技巧,对于构建高性能的互联网服务至关重要。通过不断学习和实践,你可以充分发挥Nginx的潜力,满足各种复杂的应用场景。

    Nginx高性能Web服务器详解

    Nginx是一款强大的高性能Web服务器,它以其反向代理、负载均衡、静态文件处理和HTTP缓存等功能在互联网行业中广泛应用。本章将深入探讨Nginx的架构、配置、优化及与其他技术的集成,帮助你全面理解其核心优势。 一...

    nginx-tutorial:最全面,最深入的nginx从入门到精通的教程

    Nginx 是一款高性能、轻量级的 Web 服务器和反向代理服务器,广泛应用于互联网服务,尤其在处理高并发场景时表现出色。本教程“nginx-tutorial”旨在帮助用户从基础到深入地理解 Nginx 的各项功能与配置技巧。 一、...

    nginx-1.5.17

    1. PHP-FPM:通过fastcgi_pass指令,Nginx可以与PHP-FPM配合,处理PHP动态内容。 2. Redis、Memcached:通过proxy_pass或redis_pass,Nginx可以与缓存服务进行通信,提高动态数据的访问速度。 3. CDN集成:作为...

    基于PHP的得推地方O2O综合门户系统PHP源码.zip

    7. **部署与优化**:部署PHP应用通常需要Apache或Nginx服务器,结合PHP-FPM或mod_php运行。性能优化方面,可以考虑缓存技术(如Redis、Memcached)、OPcache、负载均衡等。 8. **O2O业务逻辑**:系统可能包含预约...

    学生公寓管理系统php

    通过负载均衡、缓存策略、数据库优化等手段,确保系统在高并发场景下的稳定运行。 综上所述,构建“学生公寓管理系统php”需要掌握PHP开发基础,理解Web应用的架构原理,熟练运用数据库设计与管理,并结合前端技术...

    【Swoole 从入门到实战】学习笔记,从零开始学 Swoole,包括 Swoole Task,Swoole Web.zip

    通过深入学习《Swoole从入门到实战》的学习笔记,开发者可以全面掌握Swoole的核心概念和实践技巧,利用Swoole的强大功能开发高性能的PHP应用。无论是对个人技能提升,还是在企业级项目开发中,Swoole都是一个值得...

    php网游入门php网游入门php网游入门php网游入门php网游入门php网游入门php网游入门

    11. **负载均衡与集群**:随着玩家数量的增长,可能需要部署多台服务器以分摊负载,了解如何使用Nginx的负载均衡配置或者设置PHP-FPM集群是必要的。 12. **持续集成与自动化测试**:利用Git进行版本控制,使用...

    基于PHP的网络设计网站建设类网站.zip

    3. **服务器配置**:设置Apache或Nginx服务器,并配置PHP解析器(如mod_php或php-fpm),以支持PHP脚本运行。 4. **数据库交互**:使用PHP连接和操作数据库,如MySQL,通过PDO(PHP Data Objects)或mysqli扩展进行...

    高性能PHP应用开发pdf

    通过阅读《高性能PHP应用开发》,开发者不仅能学习到具体的优化技巧,还能培养起性能敏感度,学会从架构层面思考问题,以实现更高效的PHP应用开发。书中的实战案例和解决方案将帮助读者在实际工作中更好地运用这些...

Global site tag (gtag.js) - Google Analytics