大型网站技术架构(四)网站的高性能架构

news/2024/5/10 2:32:15/文章来源:https://blog.csdn.net/weixin_33774308/article/details/92648905

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

网站性能是客观的指标,可以具体体现到响应时间、吞吐量、并发数、性能计数器等技术指标。

1、性能测试指标

1.1 响应时间

      指应用执行一个操作需要的时间,指从发出请求到最后收到响应数据所需要的时间。如下列出了系统常用的操作响应时间表.

操作

响应时间

打开一个网站

几秒

数据库查询一条记录(有索引)

十几毫秒

机械磁盘一次寻址定位

4毫秒

从机械磁盘顺序读取1M数据

2毫秒

SSD磁盘顺序读取1M数据

0.3毫秒

从远程分布式换成Redis读取一个数据

0.5毫秒

从内存读取1M数据

十几微妙

Java程序本地方法调用

几微妙

网络传输2Kb数据

1微妙

 实践中计算响应时间通常是通过平均时间计算的平均值。

1.2并发数

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

1.3吞吐量

指单位时间内系统处理的请求数量,体现系统的整体处理能力。对于网站,可用“请求数/秒”或“页面数/秒”或“访问人数/天”或“处理业务数/小时”等来衡量。
 TPS(每秒事物数)是吞吐量的一个常用量化指标。刺猬还有HPS(每秒HTTP请求数)、QPS(每秒查询数)。

1.4性能计数器

指操作系统的一些数据指标如System load(系统负载),CPU使用率、内存使用率、磁盘等使用情况。
 

2、性能优化策略

根据网站分层架构,可分为Web前端性能优化、应用服务器性能优化、存储服务器性能优化。

2.1 Web前端优化

2.1.1 浏览器访问优化

  • 减少HTTP请求数,主要可通过合并CSS,JavaScript、图片。
  • 使用浏览器端缓存。在某些时候,静态资源文件编写需要及时应用到客户端浏览器,这种情况下,可通过改变文件名来实现。
  • 启用页面压缩,文本文件的压缩效率可达80%以上。
  • CSS放在页面最上面,JavaScript放在页面最下面
  • 减少Cookie传输。可以考虑使用独立域名来发送Cookie等。

2.1.2 CDN加速

CDN的本质仍然是一个缓存,只是部署在离用户最近的服务器上,一般缓存的都是静态资源。

2.1.3 反向代理

除了能够保护网站安全的作用以及负载均衡的作用外,反向代理还能够提供缓存作用(动态资源)。

2.2 应用服务器性能优化

应用服务器就是处理网站业务的服务器,网站的业务代码都部署在这里,主要优化手段有缓存、集群、异步等。

2.2.1 分布式缓存

缓存主要用来存放哪些读写比很高、很少变化的数据。


 分布式缓存指缓存部署在多个服务器组成的集群中,以集群方式提供缓存服务,其具体架构有两种,一种是以JBoss Cache伪代码的需要更新同步的分布式缓存, 一种是以Memcached为代表的不互相通信的分布式缓存


 Jboss Cache 的分布式缓存在集群中的所有服务器中保存相同的缓存数据,当某台服务器有缓存更新的时候,会通知集群中其他机器跟新缓存数据。优点是应用程序可以 从本地快速的获取缓存数据,但当集群规模较大的时候,缓存更新信息需要通过到集群所有机器,其代价可想而知。

 大型网站需要的缓存数据一般都很大,可能会有TB的内存占用,这时候就的使用Memcached,是一中互不通信的架构,每台存储的缓存数据可以不一样。

2.2.2 异步操作

为了改善网站的扩展性,可以使用消息队列将调用异步化。

 

2.2.3 使用集群

在网站高并发访问的情况下,使用负载均衡技术为一个应用构建一个由多台服务器组成的集群,将并发访问请求分发到多台服务器上处理。 

2.2.4 代码优化

代码优化主要涉及多线程、资源复用(对象池或单例)、数据结构和垃圾回收。

2.3 存储性能优化

可以考虑使用分布式存储、openfiler、磁盘阵列、HDFS(Hadoop)。

转载于:https://my.oschina.net/zhanghaiyang/blog/593984

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_827832.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python+beautifulsoup+smtp爬取学院网站的信息公告+邮件发送

最近学习了利用python爬虫,甚是有趣。所以写了个试用的小程序分享出来。 学院的相关通知都会放在网站的信息公告上,但每天打开电脑->打开浏览器->打开学院网站,就为了看个信息公告,挺麻烦还容易忘记。但害怕错过重要通知&a…

python 爬网站上的图片

最近在做bot的动物识别,最后根据大会给出来的测试数据,发现对简笔画的动物识别处于懵圈状态,识别效果很差~故我需要自己爬取一些简笔画的图片~ 手写学习了某一网站的图片爬取: 附上代码: # -*- coding: utf-8 -*-…

ubuntu安装网站服务器,Ubuntu安装服务器

tomcat 的安装安装 Tomcat 需要首先安装配置 JDKJava 的安装在 Ubuntu 和 Linux Mint 上安装 Oracle JDK使用下面的命令安装,只需一些时间,它就会下载许多的文件,所及你要确保你的网络环境良好:sudo add-apt-repository ppa:webup…

织梦tag.php删,DedeCMS的TAG标签SEO问题改进及PHP源代码讲解

DEDECMS是最优秀的中文开源CMS系统之一了,不过,DEDE系统也不是尽善尽美的,存在许多待改善的地方,且不说它那基本广受诟病的安全问题,今天跟版网就找其中一个细节说说它的问题,那就是它的tag标签问题。DEDEC…

怎么把整个段落往左移_单页网站怎么做SEO优化与推广

单页网站SEO是一个相对特别的优化工作,它更多的应用于在线商品快速交易行业,单页网站其实往往更多的应用在SEM竞价推广,而不是SEO。SEO单页排名技术:指的是依赖于一个单独的页面,对目标关键词进行优化,通常…

怎么嵌入到网站的html源代码中_怎么用好结构化数据标记,手把手教你做schema markup code...

什么是结构化数据(schema markup)?Schema Markup( https://schema.org/)是一种代码形式用来帮助你的网页和搜索引擎进行友好的沟通,告诉搜索引擎更多关于你的信息,比如说有时候我们看到搜索结果…

seo管理php源码_网站建设之常用CMS系统的SEO优化功能分析

大家好!我是小熊优化的SEOER,在seo优化这个行业已经从业7年多了,优化过不少的个人和企业网站,根据多年的经验也总结出了不少的优化经验,现在大部分的网站,尤其是单位性质的网站基本都是采用CMS系统来做的&a…

推荐一个学习基础编程技术的网站

推荐一个学习基础编程技术的网站 RUNOOB-菜鸟教程 该网站简介: ----------------------------------------------------------------------------------------------------------------------------------------------------- 关于我们 菜鸟教程提供了最全的基础…

如何免费领取 Pluralsight 等各大学习网站会员?

步骤 首先你需要一个微软账号,如果你没有的话可以去注册一个,点击 注册 。 点击网址 微软 Visual Studio 福利 并登陆你微软账号,这时你会看到下面有很多激活码可以领取。 激活 点击Activate,根据操作步骤,在Pluralsight页面输入…

请检查网站服务器是否正常.,请检查服务器地址是否正确

请检查服务器地址是否正确 内容精选换一换网站的访问与云服务器的网络配置、端口通信、防火墙配置、安全组配置等多个环节相关联。任意一个环节出现问题,都会导致网站无法访问。本节操作介绍网站无法访问时的排查思路。网站无法访问怎么办?如果打开网站有…

实现WorkPress网站文章代码高亮显示

首先需要在WorkPress中下载WP Githuber MD,下载方法如下:插件—>安装插件—>右上角搜索框输入WP Githuber MD—>下载该插件。 有了插件后,在插件—>已安装插件中找到WP Githuber MD—>设置WP Githuber MD的属性。选中模组&am…

CTF_Crypto_MD5【BUUCTF网站题库】

题目 MD5 解压 解题 工具 MD5 解码工具 https://www.somd5.com/ 答案 最后 在flag输入 flag{admin1} 成功!!! 小结 MD5简介 MD5是一种常见的加密方式,但准确来说,它只是一种编码方式,它将任意有限…

CTF_Crypto_Url编码[BUUCTF网站]

题目 Url编码 由此可以看出是url编码和解码操作 即 encode and decode 题目 具体的url编码后的格式 解题 url编码–拓展 浏览器打包表单输入的格式 url编码是一种浏览器用来打包表单输入的格式。浏览器从表单中获取所有的name和其中的值 ,将它们以name/value…

【Ubuntu】}Ubuntu镜像网站

Ubuntu镜像下载 镜像下载 阿里云镜像站-aliyun mirrors 镜像网址: ** 浙江大学;(易进)xjtU(西安交通大学)华为云tsinghua(清华大学)Beijing University of Posts and Telecommunications(北邮大)&#x…

程序员必备网站和工具

程序员必备网站和工具 思维工具:XmindPPT模板:办公资源、站长素材、笨鸟网、PPTStone、六图网、欧酷PPT招聘软件:前程无忧、智联招聘、BOSS直聘Maven仓库:https://mvnrepository.com/清华大学开源软件镜像站:https://…

HttpClient4登陆有验证码的网站

其实就这个问题,本来是很简单的,我自己花了近两个下午才搞定,现在记录一下。也希望能帮助后来的朋友。先说httpclient 操蛋的httpclent!为什么说操蛋呢,因为从httpclient3到httpclient4,有很大的变化,而且我自己水平也不够,在jar包上出了很多问题(例如我不知道还有个httpcore…

大型网站技术架构 读书笔记4 高可用架构

说句掏心窝的话,高可用甚至比高性能更重要。为什么? 因为你把系统的性能优化10倍,你的老板可能会说:小董呀,干的不错。 可是,如果你负责的模块,三天两头就宕掉了,嘿嘿,你懂得。 可用性度量 99%-----网站年度不可用时间小于88个小时 99.9%---网站年度不可用时间小于9个小时 99.…

大型网站技术架构 读书笔记3 高性能架构

很明显,这一章是说性能优化的,那么在说性能之前,我们得先了解性能的具体定义,也就是说如何评定一个系统性能是好还是不好。因此,我们就先说说性能测试,然后分别是前端性能,应用服务器的性能以及存储性能的优化。性能测试 1 不同的人对性能的认识是不一样的对用户来说,他们认为的…

大型网站技术架构 读书笔记2 大型网站核心架构要素

通常情况下,一个网站的架构出来功能性需求外,还应该考量以下五个方面:性能可用性伸缩性扩展性安全性性能 性能的官方解释,我就不说了。对用户来说,就是系统的反应速度是否快。对网站来说,性能问题是无处不在的,继而,我们优化性能的手段也有很多。我们从前到后一个一个来说在浏览…

大型网站技术架构 读书笔记1 大型网站架构模式

架构,又名软件架构,是有关软件整体结构与组件的抽象描述,用于指导大型软件系统各个方面的设计。 关于什么是模式,这个来自建筑学的词汇是这样定义的:“每一个模式描述了一个在我们周围不断重复发生的问题及该问题解决方…