Posted by:
努力记

努力记,通过记录,计划,让自己的努力可以触碰彩虹!

5,917

常规型网站负载分析

  • 2014-07-19
  • 暂无评论
如何提高网站负载
这个问题的回答,我觉得可以分为3个部分来考虑
  • 服务器架构:高性能服务方案(如apache及Nginx的对比甚至是node.js,针对不同的业务需求使用不同的服务架构),服务软件的集群及分布式
  • 网站架构:将网站进行:业务、服务等多纬度的划分,将负载承载在不同的机器上,以实现业务层面的分布式,有些服务是需要网站架构自身实现分布式,如Memcache,是由客户端实现分布式算法
  • 性能优化:CDN,前端缓存(客户端缓存,服务端缓存),SQL执行效率,代码算法效率,索引效果,缓存命中率等
首先要做的是防范于未然!
  1. 在选择技术方案的同时就要考虑到性能瓶颈,有些朋友说想的太早,增加了代码复杂性和运维复杂性,但肯定要比时候无从下手强
    特别是现在的分布式方案越来越轻量级,基本可以在不修改代码的基础上实现分布式,运维的操作也有很多已经达到智能的程度
  2. 在框架设计中,提高进行服务层面的分布式配置方案,我觉得应该是首选
  3. 当然是服务器负载的监控了,不能在负载到瓶颈才考虑问题,80%就已经是负载风险值,可以将负载问题提上日程了
  4. 不断关注技术更新,将优化方案也进行迭代!吸取别的软件的架构思想,进行一定程度的重构
其次性能优化不可忘!日志,复查是关键!
  1. 监控日志:各个服务的日志,特别是数据库的慢查询日志,大多sql的无限制修改下,原先的索引方案显得画蛇添足了,不但达不到提升效果的作用,反而还会消耗部分的性能
  2. 各种服务的性能指标:如缓存的命中率
  3. review code:通过定期的复查,保证代码的可控性
  4. 关注数据规模,不断进行调整:数据分表
最后是亡羊补牢,为时未晚!
在突发负载问题时,首先需要找出瓶颈,针对瓶颈处理问题,是目前唯一的选择
业务的复杂度越来越高,无法兼顾所有代码的性能
第一点:SQL,网站的性能元凶!查看数据库服务器性能是否正常
其次:网络节点的通信异常,网站通过会使用各种各样的第三方服务来承载数据及部分业务逻辑,这是网络中的通讯异常会产生连锁的访问问题(监控的重要性)
最后:针对服务器的攻击,照成这点的原因很多,但通常表现为服务器资源突然耗尽
注:准备一台备用机,随时应付不可预知的硬件风险,并随时进行分布式环境,承载负载


back up ↑

无觅相关文章插件,快速提升流量