生产环境跑PHP动态程序
服务器①: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秒共有多少条日志记录。
服务器的系统负载也不算高:
总结:
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)在高并发请求情况下,经常会出现该错误。
最新文章
- Css动画总结
- 整理mac上的php环境
- Access数据库的模糊查询到底是用*还是%
- DLUTOJ1216
- ASP.NET WebApi Document Helper
- 关于Json处理的两个实例
- Spark读取HDFS文件,文件格式为GB2312,转换为UTF-8
- lintcode 中等题:N Queens N皇后问题
- hive中sql解析出对应表和字段的调查
- float与double的范围和精度(摘录)
- Flash,EEPROM差别
- executeBatch()相关操作汇总
- lambda 表达式 自定义查询
- Spring Security 入门(1-1)Spring Security是什么?
- 对写博客的n种思考
- git解决Could not execute editor
- 30. CentOS终端命令行显示中文乱码的解决方法
- window启动程控制
- 1360: Good Serial Inc.(不知道是什么类型的题)
- Google Chrome中的高性能网络-[译]《转载》
热门文章
- js动态修改浏览器title
- TensorFlow实战第三课(可视化、加速神经网络训练)
- eclipse 导出jar 没有主清单属性的解决方法
- CentOS6、7升级Openssh至7.9
- Redhat更换Centos源
- Python学习【day01】- Python初识
- redis缓存雪崩
- Git 发生Another git process seems to be running in this repository, e.g. an editor opened by &#39;git commit&#39;.错误
- MYSQL中的UNION和UNION ALL
- js数据结构-链表