网站优化

网站优化

  • 前端优化

    • 合并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、 使用缓存

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容