网站优化

网站优化

  • 前端优化

    • 合并js,css,图片等资源,减少http请求次数
    • 开启http缓存
    • 使用CDN缓存资源和静态页面,CDN最好使用独立域名(防止cookie占用流量,一个域名浏览器有并发请求限制)
    • css放在文件头部,js放在文件尾部。为了加快显示页面
    • 尽量减少cookie的数据,数据尽量放在session服务中,减少通信数据量
  • 后端优化
    依次按下面步骤来优化后端

    • 把应用服务、数据库服务、文件服务部署在独立的服务器
    • 数据库增加主备,增加数据读取效率和容灾能力
    • 增加缓存,减少数据库访问压力
    • 如果业务比较复杂的话,对业务进行纵向拆分,分成多个应用,独立部署
    • 搭建应用服务器集群。使用DNS、Nignx反向代理,LVS(通过keepalived实现lvs主备,提供高可用性;或者使用ali-lvs集群)
    • 搭建分布式缓存集群。使用Memcached或者Redis
    • 数据库分库分表(单表比较大的话会影响存取效率,太大的话甚至无法存取)。使用TDDL
    • 使用分布式文件系统存储更大、更多的文件,在文件比较大时,分布式文件系统效率也更高。使用OSS
    • SOA,水平拆分业务,使用分布式服务治理应用。使用Dubbo或者HSF
    • 使用分布式消息队列集群,使用分布式服务后,需要使用消息队列来进一步提升可用性、效率、削峰等。使用MetaQ

当出现性能问题的时候我们该怎么做?

一、CPU过高

1、 us过高
  • 死循环
  • 大计算
2、sy过高
  • 进程间切换
  • 线程间切换
  • 锁争用

二、内存消耗过高

1、 及时释放不必要的对象
2、 使用对象缓存池缓冲
3、 采用合理的缓存失效算法(关注弱引用、幽灵引用)

三、磁盘IO过高

1、 异步读写文件
2、 批量读写文件
3、 使用缓存技术
4、 采用合理的文件读写规则

四、网络

1、增加宽带流量

五、资源消耗不多但程序运行缓慢

1、使用并发包,减少锁竞争
2、对于必须单线程执行的使用队列处理
3、大量分布式处理

六、未充分利用硬件资源

1、 修改程序代码,使用多线程处理
2、 修正外部资源瓶颈,做业务拆分
3、 使用缓存

你可能感兴趣的:(网站优化)