前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >干货分享!设计一个系统架构时怎么去做性能优化?

干货分享!设计一个系统架构时怎么去做性能优化?

作者头像
lyb-geek
发布2020-08-06 15:08:29
5570
发布2020-08-06 15:08:29
举报
文章被收录于专栏:Linyb极客之路Linyb极客之路
概述

设计系统架构中最核心的几个要素包括:性能,可用性,伸缩性,扩展性和安全性,而性能又是其中最为重要的,本篇简要说下网站性能优化方面所需做的一些事情;


1. 网站性能问题概要

2. 网站性能测试

站在开发、测试人员角度,性能测试的主要指标:响应时间、并发数、吞吐量、服务器各性能指标;


3. 性能优化

根据性能测试,定位产生性能问题的具体原因,找到瓶颈点,逐步优化;

一般性能优化分为Web前端性能优化、应用服务器性能优化、存储服务器性能优化(数据库优化的太多点了,后面再讲)

Web前端性能优化

1. 浏览器访问优化

2. CDN加速

上面说了,CDN的本质仍然是缓存,将数据缓存在离用户最近的机房,提升访问速度,降低中心机房服务器的压力;

CDN能够缓存的一般都是静态资源,如图片,文件,视频,CSS,JS等,将访问频度高的静态资源放到CDN中;

3. 反向代理

推荐用nginx来做缓存和负载,跟tomcat或其他中间件做动静分离。

应用服务器性能优化

1. 分布式缓存

网站性能优化第一定律:优先考虑使用缓存优化性能

缓存的本质是内存Hash表,数据以Key/Value的形式存储在Hash表中,时间复杂度O(1),Hash表存储如下图所示:

hash表存储

只要是缓存,就会涉及到缓存未命中与缓存失效问题,因此,缓存中的数据一般都是读取比例很高,很少变化的数据;

2. 异步操作

可使用消息队列将请求调用异步化,发送的请求发送给消息队列后立即返回,再由消息队列的消费者进程从消息队列中获取数据,异步写入数据库;

在高并发情况下,使用消息队列,能够有效降低数据库服务器压力,降低用户端响应延时;

消息队列可以消除高并发下的访问高峰,消峰效果如下图所示:

3. 使用集群

在高并发下,可使用负载均衡技术构建应用服务器集群,将请求分发到多台应用服务器来处理,降低单台服务器压力,提升响应速度;

4. 代码优化

存储服务器性能优化

在很多情况下,磁盘的访问速度成为整个系统的瓶颈,而且磁盘中的数据是网站最重要的资产,故磁盘的容错性和可用性都至关重要;

  • 适当使用SSD;
  • 合理使用RAID(RAID0,RAID1,RAID10,RAID5,RAID6等)
  • 合理使用HDFS等分布式文件系统
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-08-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Linyb极客之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
消息队列 CMQ 版
消息队列 CMQ 版(TDMQ for CMQ,简称 TDMQ CMQ 版)是一款分布式高可用的消息队列服务,它能够提供可靠的,基于消息的异步通信机制,能够将分布式部署的不同应用(或同一应用的不同组件)中的信息传递,存储在可靠有效的 CMQ 队列中,防止消息丢失。TDMQ CMQ 版支持多进程同时读写,收发互不干扰,无需各应用或组件始终处于运行状态。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档