• ----:)欢迎访问源码网(:----
    • 首页
    • 博客
    • 学院
    • 下载
    • 论坛
    • 影视
    • 发布源码
    • RSS
    • ITPig
    • 笑话网
    • 百家姓
    • 繁體中文

源码网 - 中国第一源码门户
选择镜像:网通镜像 - 电信主站
  • 首 页
  • 新闻动态
  • 网站运营
  • 网页制作
  • WEB开发
  • 编程开发
  • 图像媒体
  • 操作系统
  • 数据库
  • 服务器
热门搜索 优化 SEO 故事 cms IIS7 MySQL 个人 AdSense 主题推广 | 文章搜索: 高级搜索
会员登录/控制面版您的位置: 学院首页 >> 服务器 >> Web服务器 >> 其他 >> 详细内容
 

推荐文章

 
 

热点文章

  • 主流七款web服务器软件点评
  • 主流WEB服务器软件比较
  • Nginx + PHP5(FastCGI)跑PHP动态程序可超过“700次请..
  • Nginx 0.6.31 + PHP 5.2.6(FastCGI)搭建胜过Apache十..
  • 网站架构——服务器与安全规划
  • 创建动态Web网页需要知道的10个服务器变量
  • 关于 Nginx 的几个误解
  • Web应用中缓存的七种武器
 
 

相关文章

  • php缓存类(php5版)
  • 基于php5的模板类
  • PHP5中的时间相差八小时的解决办法
  • PHP5+UTF8多文件上传类
  • 用PHP5的DirectoryIterators递归扫描目录
  • 关于 Nginx 的几个误解
  • Nginx 0.6.31 + PHP 5.2.6(FastCGI)搭建胜过Apache十..
  • PHP4和PHP5性能大对比 新版本速度优势明显
  • WINXP下安装IIS+PHP5+MySQL5
  • php5以及mysql等扩展在iis上的手动安装
  • Windows2008 最新版Apache2、PHP5、MySQL6、PHPMyadmi..
  • PHP5学习笔记 -- Classes and Objects in PHP5
 
 

百度搜索

 
 

Nginx + PHP5(FastCGI)跑PHP动态程序可超过“700次请求/秒”

  • 阅览次数:
  • 文章来源: http://blog.s135.com/read.php/?334
  • 原文作者:
  • 整理日期: 2008-03-27
  • 发表评论
  • 字体大小:
  • 小
  • 中
  • 大

  我生产环境下的两台Nginx + PHP5(FastCGI)服务器,跑多个一般复杂的纯PHP动态程序,从Nginx的日志可以统计出,单台Nginx + PHP5(FastCGI)服务器跑PHP动态程序的处理能力已经超过“700次请求/秒”,相当于每天可以承受6000万(700*60*60*24= 60480000)的访问量:

服务器①:DELL PowerEdge 1950(两颗 Intel(R) Xeon(R) 双核CPU 5120 @ 1.86GHz,4GB内存)

服务器②:DELL PowerEdge 1950(一颗 Intel(R) Xeon(R) 双核CPU 5140 @ 2.33GHz,4GB内存)

Web服务器:CentOS Linux 4.4 + Nginx 0.5.35 + PHP 5.2.6RC2(300 FastCGI Procees, unix-domain socket, with XCache)

PHP程序内容:大量Memcached读写、少量MySQL读操作、大量文件队列写操作,然后计算,生成供<script type="text/javascript" src="http://www.domain.com/abc.php?u=1"></script>方式调用的JS代码或XML数据。

网卡流量:1.5M~3M/秒

请求数统计方式:从Nginx访问日志中,统计每分钟的第15秒共有多少条日志记录。

引用
grep "25/Mar/2008:15:01:15" /data1/logs/nginx.log | wc -l


服务器的系统负载也不算高:


总结:
1、Nginx的处理能力超强,这块不是瓶颈。影响动态程序处理能力的因素主要在于PHP(FastCGI)。PHP(FastCGI)模式适用于执行时 间较短的PHP程序,一般复杂的PHP程序执行时间应该在100ms以内,例如我的博客首页执行时间为38ms左右。假设一个PHP程序的执行时间为 100ms,那么一个PHP(FastCGI)进程每秒可以处理完毕10个请求,300个FastCGI进程理论上每秒可以处理3000个请求。但是,在 生产环境下,还将受到内存、系统负载等多方面的影响,例如300个PHP(FastCGI)进程需要占用2.4GB左右的内存,每秒处理超过1000个请 求时,系统负载会飚升到100以上。因此,FastCGI的进程不是越多越好,而是够用就好。

2、使用PHP的XCache、APC等加速模块会提供速度10倍左右,降低系统负载50倍以上。

3、修改了spawn-fcgi,使它能够支持250个以上的FastCGI进程。

4、如果PHP直接对MySQL进行大量读写操作,速度是达不到“700 request/sec”的,PHP与MySQL之间需要一个中间层,这是关键的技术。

5、CPU的数量(多核算多个CPU,cat /proc/cpuinfo |grep -c processor)越多,系统负载越低,每秒能处理的请求数也越多。

6、使用PHP 5.2.6RC2,因为它修正了PHP 5.2.5的“zend_mm_heap corrupted”错误BUG。PHP 5.2.5(FastCGI)在高并发请求情况下,经常会出现该错误。

7、有空我将写一篇针对CentOS Linux环境Nginx + PHP5(FastCGI)安装、配置的最新博文。

上一篇:PHP使用zlib扩展实现页面GZIP压缩输出
下一篇:构建支持Master/Slave读写分离的数据库操作类
  • 网友评论:
  • 查看所有评论
  • 我要发表评论
您的网名:
留言主题:
你要发表的内容:

 

关于本站 | 广告联系 | 版权声明 | 网站地图 | 发布软件 | 帮助中心 | 源码论坛

Copyright © 2005-2007 CodePub.Com  程序支持:木翼  滇ICP备05005971号