网站的高性能架构

大型网站架构核心要素之性能:高性能架构 前言 上节我们讲了架构设计的五大核心要素,今天我们就讲第一个核心要素:性能,性能是一个网站给用户最直接的感受,是一个网站的灵魂。下面我们将从以下几个方面谈谈如何构建一个高性能架构:网站性能测试、web前端优化、应用服务器优化、存储性能优化。 网站性能测试 性能测试是性能优化的前提和基础,也是性能优化结果的检验和度量标准,不同视角下的网站有不同的标准,也对应不同的优化。下面我们将依次展开: 不同视角下的网站性能 用户视角:对于用户而言,发出一个请求,到响应结束所用的时间就是最直观的性能表现. 阅读详情

性能测试指标

网站性能测试的主要指标有相应时间、并发数、吞吐量、性能计数器等

响应时间

测试程序通过模拟应用程序,记录发出请求到响应的时间差,当一般请求时间都不长,容易产生误差,因此一般是测试上万次请求时间的总和,然后算出响应时间的平均值。

并发数

指系统能够同时处理请求的数目,这个数字也反应了系统的负载特性,对于网站而言,并发数即网站并发用户数,指同时提交请求的用户数目。

吞吐量

指单位时间内系统处理的请求数量,TPS(每秒事务数)是吞吐量的一个常用量化指标,此外还有HPS(每秒HTTP请求数)、QPS(每秒查询数)等。

在系统并发数由小逐渐增大的过程中(这个过程也伴随着系统资源消耗越来越大),系统的吞吐量先是逐渐增加,达到一个极限后,随着并发数的增加反而下降,达到系统崩溃点后,系统资源耗尽,吞吐量为0。可以比喻成高速公路的通信状况,车辆数量代表并发数,车辆速度代表响应时间,单位时间收到的过路费为吞吐量。

性能计数器

他是描述服务器或者操作系统性能的一些数据指标。包括System Load、对象与线程数、内存使用、CPU使用、磁盘与网络I/O等指标。

 

WEB前端性能优化

浏览器访问优化

① 减少HTTP请求

HTTP协议是无状态的应用层协议,意味着每次HTTP请求都需要建立通信链路、进行数据传输,而在服务端,每个HTTP请求都需要启动独立的线程去处理。这些通信和服务的开销很昂贵。

减少HTTP请求的主要手段是合并CSS、合并JavaScript、合并图片。将浏览器一次访问需要的前端文件合成一个文件。这样能很大程度减少HTTP请求次数。

② 使用浏览器缓存

一般网站的静态资源更新频率都比较低,可以将其缓存到浏览器中,同时静态文件的更新需要及时应用到客户端浏览器,这种情况,可以通过修改文件名实现,并更新HTML文件中的引用。

③ 启用压缩

在服务器端对文件进行压缩,在浏览器端对文件解压缩,可有效减少通信传输的数据量。但是压缩对服务器和浏览器产生一定的压力。

④ CSS放在页面最上面、JavaScript放在页面最下面。

⑤ 减少Cookie传输

 

CDN加速、反向代理

CDN原理

 

应用服务器性能优化

分布式缓存

① 缓存原理

缓存的本质是一个内存hash表,利用hash表和内存的高速访问特性,可很好改善系统性能。

② 合理使用缓存

以下是一些不适合运用缓存的场景:

  • 频繁修改的数据

  • 没有热点的访问

以下是缓存可能产生的问题

  • 数据不一致与脏读

  • 缓存可用性

新启动的缓存系统如果没有任何数据,系统的性能和数据库负载都不太好,最好在缓存系统启动时就把热点数据加载好,这种手段叫做缓存预热。

如果遇到恶意攻击持续高并发的请求某个不存在的数据,由于缓存中没有该数据,所有请求都会落到数据库上并造成很大压力,一种应对措施就是将这种奇特的热点数据,即使是不存在的数据也缓存起来。

③ 分布式缓存架构

分布式缓存指缓存部署在多个服务器组成的集群中,以集群方式提供缓存服务。

Memcached采用一种集中式的缓存集群管理,也被称为互不通信的分布式架构方式。应用程序通过一致性hash算法选择缓存服务器远程访问缓存数据,缓存服务器之间不通信。这是因为这个特性,集群可以做到几乎无限制的线性伸缩。

异步操作

使用消息队列将调用异步化

使用集群

通过负载均衡技术将一个请求随机公平的分配到集群中的一台服务器进行处理。

代码优化

待写

 

存储性能优化

continue ......

 

此文主要参考《大型网站技术架构》一书的内容

 

 

IMDb影评数据集:从下载到情感分析实战指南 本文提供了IMDb影评数据集从下载、探索到情感分析建模的完整实战指南。详细介绍了数据预处理、TF-IDF向量化方法,并对比了逻辑回归、随机森林、SVM及LSTM深度学习模型在情感分析任务上的应用与效果评估,帮助读者系统掌握自然语言处理的核心流程。 阅读详情

相关推荐

IFRS 9与CECL对比解析:跨国企业财务必须掌握的两种信用损失模型

本文深度解析IFRS 9与CECL两种信用损失模型的差异,帮助跨国企业应对财务合规挑战。从基础架构、数据治理到监管策略,详细对比三阶段模型与单一阶段模型的核心区别,并提供实施双轨制的实务建议,助力企业优化资本管理和税务筹划。

3c4x5z6v7b的博客 669

5.架构设计系列:如何设计高性能架构

要搞清楚什么是高性能架构,我们需先弄明白高性能是什么。高性能定义首先,性能是什么,怎么理解它?简单来说,性能,指的是一件事务的处理能力。那么,什么是高性能呢?高性能,指的是处理一件事务的速度更快,所消耗的资源更少。高性能架构那么,什么是高性能架构呢?高性能架构,是指在有限的资源投入下,通过采用适当的技术和策略,让系统具备了优秀的性能。对于技术人员来说,在有限的资源投入下,如何提高系统性能,这是一个挑战,更是一个机遇。

白云 3731

记一次在JAVA中客户端使用axis调用webservice服务端出现的异常:Unmarshalling Error: For input string: ""

在使axis调用webservice服务端,参照网上给的demo: Call call = (Call) service.createCall(); call.setTargetEndpointAddress(endpoint);//设置服务请求路径 QName qn = new QName(name); call.setOperationName(qn); call.addParamet

kry1201的专栏 8082

架构设计-高性能(一、存储高性能)

高性能数据存储结构及大数据引起的多元化问题解决方案。

Timmer的博客 758

STM32独立实现CANOpen主机功能:从零构建轻量级控制方案

本文详细介绍了如何在STM32上不依赖CanFestival库,从零构建一个轻量级的CANOpen主机方案。文章深入剖析了CANOpen主机的三大核心功能——NMT网络管理、SDO参数配置与PDO过程数据交换,并提供了从硬件准备、驱动层构建到协议实现的完整代码实战。该方案代码精简,资源占用低,特别适合在资源受限的STM32平台上实现工业控制、电机驱动等场景的稳定通信。

potato的博客 1072

STM32F407 CubeMX UART DMA高效解析BNO085九轴数据

本文详细介绍了如何在STM32F407平台上使用CubeMX配置UART和DMA高效解析BNO085九轴传感器数据。通过DMA循环接收机制实现低CPU占用的实时数据采集,并分享数据解析技巧、错误处理及实战调试经验,为嵌入式开发者提供完整解决方案。

o4p5q6r7s的博客 236

高性能架构(建议收藏)

这里想说,因为自己也走了很多弯路过来的,所以才下定决心整理,收集过程虽不易,但想到能帮助到一部分自学java想提升Java架构师技术的,P5-P6-P7-P8 的人,心里也是甜的!有需要的伙伴请点㊦方】

2301_76383397的博客 376

Adams二次开发实战指南:从CMD到Python与插件开发全解析

本文全面解析Adams二次开发的三种核心方法:CMD命令、Python脚本和C++插件开发。通过实战案例展示如何实现参数批量修改、自动化仿真流程和定制功能开发,显著提升多体动力学仿真效率。特别适合需要处理复杂建模和重复性任务的工程师学习参考。

weixin_29235923的博客 130

高性能数据库架构模式(一)

互联网业务兴起之后,海量用户加上海量数据的特点,单个数据库服务器已经难以满足业务需要,必须考虑数据库集群的方式来提升性能

流离岁月的博客 913

嵌入式NTC温度解算库:Steinhart-Hart定点实现与硬件解耦设计

NTC热敏电阻是嵌入式系统中最常用的模拟温度传感器,其阻值-温度关系高度非线性,需依赖Steinhart-Hart方程实现高精度转换。该方程通过三参数对数多项式建模,理论上可将误差控制在±0.1°C以内,但直接移植到MCU面临浮点开销大、定点溢出、系数精度损失等工程瓶颈。为此,归一化处理(ln(R/R₂₅))、Q24.8定点运算、查表+插值对数计算等优化技术成为资源受限场景下的关键技术路径。其核心价值在于将ADC采样与温度解算彻底解耦,适配各类HAL/裸机/RTOS环境,广泛应用于电池管理、工业PLC、Io

weixin_35756624的博客 647

从零开始:使用COLMAP与OpenMVS构建高精度三维Mesh模型

本文为零基础新手提供了使用COLMAP与OpenMVS构建高精度三维Mesh模型的完整实战指南。详细介绍了从环境配置、数据采集黄金法则,到COLMAP稀疏与稠密重建、OpenMVS网格生成与纹理映射的每一步操作,并分享了关键的避坑技巧与参数调优建议,帮助读者从二维照片中成功重建出属于自己的三维模型。

metal的博客 506

高性能架构——计算高性能

主要讲述阅读架构的书籍后学习到的内容总结,其中计算高性能是本章的重点,也是很重要的一部分。

qq_46863837的博客 1816

人像美肤 人体美型 CVPR 2022 ABPN

人像美肤 CVPR 2022 ABPN

jacke121的专栏 841

高性能网站架构基础知识

博客迁移至:高性能网站架构基础知识

KUN_PHP的专栏 1031

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

专访赵桂华:.Net也有春天及高性能网站架构实践

在本次专访之前,笔者一直都对.NET这个平台有所偏见,或者说是看不到.NET的优势,对Java Web、PHP、Ruby等更加看好,而之后SSH、ROR、LAMP等的流行也让笔者对这个观点更加坚信。然而在浏览完赵桂华的个人Blog后,笔者逐渐认识到对.NET这种不公平的看待,或许正如赵桂华所说,打造高性能网站架构是一个系统的工程,并非某个平台或某种语言能完成,所以高性能通常与编程语言无关。同时,.

zhengbiao141210的专栏 492

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

高性能网站架构和对应测试考虑

     今天早上把极客时间上的茹炳晟《软件测试52讲》正文完整地听完了。历时4个月,也是第一次正式购买这类学习课程。现在把最近的几讲内容,结合自己经验做个小结。        高性能网站架构,主要是考虑基本功能性需求满足基础上,效率(performance)、高可用性(Availability)、高伸缩性(Scalability)、高扩展性(Extensibility)。 1、性能  1....

Leonardo的博客 459

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

大型网站技术架构·核心原理与案例分析 第四章·瞬时响应:网站的高性能架构思维导图

瞬时响应:网站的高性能架构思维导图

LoveLifeAndLoveCode的博客 904

如何设计高性能LLMP网站架构

什么是 LLMP?    LLMP 是 Linux Lighty Mysql Python 的组合,作为一种高性能的网站架构设计存在。    什么是高性能的LLMP?    LLMP并不意味着高性能,只是比其他架构,更有性能的提升潜力。高性能的LLMP,需要从系统,程序,硬件各个层面上协同进行的。    在网站架构设计中,大家一定对 LAMP (Linux Apache Mysql

linuxboss的专栏 710

搭建高性能网站架构方案

前言:高性能网站架构方案,网站架构优化7种方案,用以优化网站响应时间,实现大型网站技术架构方案。无论是电子商务或者其他网站且可使用。 一、优化网站响应时间的架构方案: 网站能不能留的住用户,一方面是看内容,另一方面是看响应时间。通常有以下几个方式来降低网站响应时间: 减少HTTP请求。包括合并css和javascript。减少图片数量,比如利用css的偏移技术来在一个图片中选择不同的位置内...

Java编程基础 210

瞬时响应:网站的高性能架构

瞬时响应:网站的高性能架构 什么叫高性能的网站? 两个网站性能架构设计方案:A方案和B方案,A方案在小于100个并发用户访问时,每个请求的响应时间是1秒,当并发请求达到200的时候,请求的响应时间将骤增到10秒。B方案不管是10...

148

设计高性能网站架构-LLMP

在网站架构设计中,大家一定对 LAMP (Linux Apache Mysql Php) 不陌生。 LAMP确实是一个非常优秀的架构,秉承着自由,开放,高效,易用的设计理念。 但是,本文不打算探讨LAMP,网上有很多介绍LAMP的资料。 这里,想给大家介绍另一个在LAMP上衍生出来的,以提升性能为主要目的的开源网站架构。 1, 选择高性能 OS 首先,不难理解,任何一个server

563

浅谈千万级高性能高并发网站架构

浅谈千万级PV/IP规模高性能高并发网站架构   高并发访问的核心原则其实就一句话“把所有的用户访问请求都尽量往前推”。 如果把来访用户比作来犯的"敌人",我们一定要把他们挡在800里地以外,即不能让他们的请求一下打到我们的指挥部(指挥部就是数据库及分布式存储)。 如:能缓存在用户电脑本地的,就不要让他去访问CDN。 能缓存CDN服务器上的,就不要让CDN去访问源(静态

u011746030的专栏 2196

网站高性能架构设计——web前端

动静分离”就是把用户请求的数据(如 HTML 页面)划分为“动态数据”和“静态数据”。简单来说,“动态数据”和“静态数据”的主要区别就是看页面中输出的数据是否和 URL、浏览者、时间、地域相关,以及是否含有 Cookie 等私密数据。很多媒体类的网站,某一篇文章的内容不管是你访问还是我访问,它都是一样的。所以 它就是一个典型的静态数据,但是它是个动态页面。如果现在访问淘宝的首页,每个人看到的页面可能都是不一样的,淘宝首页中包含 了很多根据访问者特征推荐的信息,而这些个性化的数据就可以理解为动态数据了。

jakeswang的博客 749

4 瞬时响应:网站的高性能架构

weixin_44991625的博客 175
上一篇: 大型网站架构模式
下一篇: 网站的高可用架构
jj_jameholl
博客等级 码龄10年 5粉丝 29原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值