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