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

CSDN 发表于:13年07月05日 10:31 [转载] DOIT.com.cn

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

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来运行压力测试,从而不断的熟悉自己业务的负载类型,以便更好的提升程序的扩展性。

[责任编辑:李洪亮]
李洪亮
随着云计算、大数据、移动计算等以软件为主导的新兴技术的发展,正在颠覆着传统业务模式。IBM作为国际商业机器公司,多年来一直致力于技术创新与业务的完美结合,帮助企业向新方向发展。
官方微信
weixin
精彩专题更多
存储风云榜”是由DOIT传媒主办的年度大型活动。回顾2014年,存储作为IT系统架构中最基础的元素,已经成为了推动信息产业发展的核心动力,存储产业的发展迈向成熟,数据经济的概念顺势而为的提出。
华为OceanStor V3系列存储系统是面向企业级应用的新一代统一存储产品。在功能、性能、效率、可靠性和易用性上都达到业界领先水平,很好的满足了大型数据库OLTP/OLAP、文件共享、云计算等各种应用下的数据存储需求。
联想携ThinkServer+System+七大行业解决方案惊艳第十六届高交会
 

公司简介 | 媒体优势 | 广告服务 | 客户寄语 | DOIT历程 | 诚聘英才 | 联系我们 | 会员注册 | 订阅中心

Copyright © 2013 DOIT Media, All rights Reserved. 北京楚科信息技术有限公司 版权所有.