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

扩展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云计算微博,了解更多云信息。

腾讯云公测终究还是来了 BAT云大战将开启? iOS 7将从这三方面影响IT界 超越Google,他企图将整个互联网塞进1台电脑 2013互联网安全大会议题先睹为快之CSA中国理事赵粮 移动建站工具(二):分秒钟DIY一个移动网站 2013上半年中国移动互联网报告,在线完整版 iOS开发者必备:九大设计类工具 已到“迟暮之年”?微软投资者提议两“救世主”外部候选 【SDCC讲师专访】Joseph G. Brown:云带来的软件销售方式变革 用户界面设计攻略:设计师需注意的九大要点 Google Glass的竞争对手来了:看YC演示日的五款新孵化项目! GPU Saturday技术沙龙:OpenCL程序员眼中的下一代APU架构 黑帽大会演讲中国第一人:从攻到防,从白帽黑客到创业者 15个步骤创立技术公司,并收获千万用户(完结) CTO容易犯的三大错误 谷歌艺术计划:互联网能否取代真实的博物馆? Hadoop技术沙龙:Hortonworks技术研发总监展望Hadoop 2.0 Marissa Mayer:雅虎月活跃用户增长了20%达8亿 移动用户3.5亿 气死偷车贼:脑电波防盗技术,让偷车贼无计可施 TIOBE 2013年9月编程语言排行榜:Transact-SQL首次进入前十 前Oracle总裁Charles Phillips:商业软件领域的“乔布斯” 留住你的用户:8款第三方移动推送服务 人气最旺:主流移动应用创建工具大合集(一) 不要强迫用户注册,请让他们先试用产品 Eve:基于Python的REST API框架 想扩展你的数据库吗?那么先了解一下I/O 白帽黑客将现场爆料Android系统及框架漏洞 9月13日:程序员节,一起来过节吧! 欲与Siri、Google Now比高低:微软开始打造个人助理Cortana 【开源专访】禅道创始人王春生:覆盖项目全周期,回归管理的本质 携程无线创业者大赛成功落幕 梁建章为头名“快展”颁20万奖金 如何知道Clientdataset中哪些记录改变了? 如何构建Access数据库? 有没有soap client for ce 呀? 关于在不同环境下的时钟问题!!! 关于在一张图上标识位置的问题 vs.net 2003的msdn 安装好后为何不能使用? 如何在asp中post一段xml包到一个地址 vc1.0编译的问题 怎麽在Jbuilder中调用带参数的ORACLE数据库中的存储过程 如何用VB来写配置IIS的程序? 如何卸载xp? 如何知道DBGrid中当前编辑的字段的长度? 绝对经典 如何在安装程序中注册windows service,up有分!! 程序异常终止了,那么函数中的对象会被析构吗、变量空间会被归还吗 为什么能用网页打开一个url,用流读却出错,是不是端口被封了阿? 请问各位高手:关于建库后的几个疑点! 连接服务器的问题 请教:怎样将combobox选中的记录添加到数据库中呢? 简单问题,如何修改FORM中文本框中按回车后的行为。 根据名称获得页面的某些对象,以及对这些对象可以进行操作? 2.0的大灵通出现的奇怪问题,请斑竹、大虾给个说法吧 新手提问:大家帮帮忙! 连接服务器的问题 CPU有大小有不同,478和423指的是什么啊。 Tquery是可修改的,如何限制用向下键使Tquery新增一条记录,我不想有新增的功能 连接服务器的问题 在intraweb中,有关iwdbgrid数据记录的分页显视.... 如何用PB实现视频实时监控画面的传送? 本科没拿到学位的,参加在职考研,有戏吗? 请问使用ado能否创建数据库? ***** 请问局域网看电影的速度要求 ***** 触发器里一变量有多数据的问题 tomcat的启动问题 大家帮帮我,写个读文本文件的函数 关于fastReport的书那里有,书名是怎样或者在那个网站有有关fastReport的电子书可参考啊 组播的I/O处理 高手们帮忙啊,win2000锁住计算机是不能自动关机问题? 如何用JAVA实现视频实时监控画面的传送? 初学C++遇到问题,请各位老师指导一下! 问一个弱问题 高分求一个触发器,一个作业 页面url传递参数问题????急!!!!!!! null在VB里该如何表示 在组件com+控制台树中,加入另一台机器后,为什么无法访问和管理此机的com+。快疯了!!!!! xp中在“我的电脑”右键的“管理”怎么不能用了,说找不到文件‘(null)’。是怎么回事? 寻求高速公路收费系统的开发高手& SOURCE CODE SYSTEM。。。。 饼干看到我的信息能和我联系吗? 今天在工车 怎样修改LINUX的显示时间? window之间怎么传参数(在线求教) 某混合气体由co2和co组成,在标态下,测得该混合气体8.96L的质量为16克,求混合气体中CO2的物质的量分数 "流芳百世, 有没有人提供下163封面素材我在别人相册看到有“请勿盗图谢谢”的163封面就是这类的163相册封面 流芳百世下一句是什么 丑字加偏旁 固有免疫的一种PRR可识别不同微生物的共有结构,而适应性免疫的BCR或TCR能区分仅有一个氨基酸差异的两个几乎相同的线性的蛋白表位,各有何道理? 简便计算撒. 自然界内存在被T B细胞TCR BCR同时识别的表位吗 简便计算,(额很笨,SO……)(十二乘以十四分之二)加(十四乘以十六分之二)加(十六乘以十八分之二)加(十八乘以二十分之二)加(二十乘以二十二分之二)加(二十乘以二十二分之二)加(二十二分 简便计算 用简便计算 格鲁吉亚选总统最高法强调依法办案 排除权力金钱人情河北冀宝斋博物馆馆长王宗泉去世 馆方俄称愿与北约就导弹防御系统进行建设性美4囚犯上演浴室版“越狱” 2人被缉美方称机密情报泄露未对美外交政策造成美方称机密情报泄露未对美外交政策造成北京首发蓝色预警 35监测站点全部重南京财政局长被问收入:没够单独申报个北京首发空气重污染蓝色预警 29日空索马里“伊斯兰青年运动”高级指挥官被品牌建设从什么时机入手合适?博士学位被取消江苏拟出新规定 逼迁依法追责任“土豪”榴莲,尝过没?斯柯达Yeti野帝启动预售台湾高龄京剧票友来宁联谊冷空气再来开了行车记录仪 抓到划车“凶手”幸福从山巅起航南京多家银行可提供“上门服务”欧冠联赛 是块试金石
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘