说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

扩展PHP的五个简单技巧,让单服务器并行支撑30000用户

HTML文档下载 WORD文档下载 PDF文档下载
两人小团队基于公司给100万个投资人同时发送电子邮件的业务需求,不得不弄清单服务器并行支持的最大用户数目。而在这个过程中,他们总结了5个PHP扩展的小技巧,让每个服务器可以同时支撑3万个用户。

Jonathan Block于RockThePost.com(集资公司)担任CTO一职,基于业务需求,公司需要他们同时给100万个投资人发送电子邮件。对于只有两个人的工程团队,确定服务器可以同时发送邮件的数目就成为了当务之急。

RockThePost.com建立于Ec2的LAMP堆栈之上,非常典型的小规模构造:

  • PHP的Zend Framework 2
  • 使用了2个m1.medium
  • 使用ELB分配负载
  • 主/从MySQL数据库
  • 使用Siege进行负载测试

在业务实现过程中,Block对其中的秘诀做出了总结,让网络服务器可以同时给3万用户并行发送邮件:

1. 使用PHP的APC特性。APC——Alternative PHP Cache,虽然官方称为“可选PHP缓存”,但是称为“另一个PHP缓存也不为过”,因为它可以切实的提升网站的性能。

2. 把所有不是.php的请求都分配给CDN(内容分发网络),不要使用你的服务器处理静态文件。他们使用S3来存储所有,并使用CloudFront作为他们的CDN。最近CloudFront出现的一些问题迫使他们不得不直接使用S3服务。

3. 切勿将PHP代码里的链接指向其它的服务器。比如数据库以及memcache服务器,除非是强制性的或者是没有其它方法实现你的目的。在执行流中让链接指向其它服务器是非常没有效率的:可能会使服务器受到限制,从而降低处理的速度。使用APC键/值存储来储存数据,并使用Barnish来缓存整个页面。

4. 使用Varnish。一般情况下,站点上的所有网页都不会改变或者是不会做大型的改动。Varnish就对于网络服务器缓存有着Memcache/ModRewrite的作用。同样在压力测试中,使用前后的性能差异很大。

5. 使用更大的服务器实例,比如c1.xlarge有8个核心可以应对负载,而m1.medium只有一个核心可以处理请求。

可以使用Google Analytics来分析每个用户在每个页面上花费的时间。收集这些信息,使用Siege来运行压力测试,从而不断的熟悉自己业务的负载类型,以便更好的提升程序的扩展性。

原文链接: Scale PHP on Ec2 to 30,000 Concurrent Users / Server (编译/仲浩 审校/王旭东)

欢迎关注 @CSDN云计算微博,了解更多云信息。

AMD:未来PC将同时搭载Android、Windows双系统 如果你是CEO,你打算给自己开多少工资? IBM X6架构中国首发,目标是云与大数据 Pivotal聘用eBay前副总裁,继续发力云计算市场 智能手机的功能越来越复杂,可惜用户不买账 熟悉日文编码的进来看看!!!!! 比较一下ORACLE和SQLSERVER? 高分查错 [病毒醒目]请不要打开「生活是美好的.pps」 问一句,remoting是个什么东西? 请问您是用什么工具开发struts!!! 一个程序,大家帮我看看 请教怎样 自动 把每天日期累加到列表框!程序如下:给100分! 便宜javabean出现的问题?未知异常? 幂指函数怎么讨论?x的n次方 x的2n此方这两个应 幂指函数y=x^x^2 函数取对数 得lny=x^ 1.Corn can be prepared __ 1.Mary is used to _______ 初三英语选择题求讲解On every piece 数学指数幂运算为啥总是不会做.化简的时候也不知道是 这些题有好评 幂指对函数log(12)27=a,用a表示log( 幂指函数的极限问题书上说 如果limf(x)=A> “魅力西藏”倾倒柏林德国或将有条件同意建立欧元区银行业共韩国呼吁整容节目热降温韩拟购先进雷达探测周边隐形战机德电视台开拍《中国人来了》“小饭桌”带学生横穿马路阿根廷暴民酝酿抢华人超市过节海南楼市缘何旺季降价以孤本的姿态落俗网上预约办护照增免费速递服务幻想回家之旅僵尸修神这货不是马超颠倒乾坤之南朝崛起斗移千垛景区旅游海湾公园旅游客都温泉旅游大宋东京梦华旅游开封小宋城旅游
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘