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

news/2024/5/20 13:01:07/文章来源:https://blog.csdn.net/weixin_34191845/article/details/92659084

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/599540

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

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

相关文章

seo我告诉你

seo我告诉你,这回seo真的告诉你百度云链接 链接:http://pan.baidu.com/s/1qYpM9y8 密码:mad6 seo优化教程: 转载于:https://www.cnblogs.com/zhangmumu/p/7374825.html

奇奇seo优化软件_seo优化软件如何选择

如何选择sxaa0c1eo优化软件,随着现代化信息技术的发展,人们越来越多的从网络来获取信息。近年来,我们获取的信息绝大部分都是来源于网络,网络如今已成为信息的最大载体。为了让更多消费者了解并消费企业提供的服务和产品&#xff…

如何用python创建一个下载网站-用Python下载一个网页保存为本地的HTML文件实例...

我们可以用Python来将一个网页保存为本地的HTML文件,这需要用到urllib库。 比如我们要下载山东大学新闻网的一个页面,该网页如下:实现代码如下: import urllib.request def getHtml(url): html urllib.request.urlopen(url).read…

如何用python创建一个下载网站-用Python下载一个网页保存为本地的HTML文件实例...

我们可以用Python来将一个网页保存为本地的HTML文件,这需要用到urllib库。 比如我们要下载山东大学新闻网的一个页面,该网页如下:实现代码如下: import urllib.request def getHtml(url): html urllib.request.urlopen(url).read…

关于大型网站技术演进的思考(一)--存储的瓶颈(上)

首先我们要思考一个问题,什么样的网站才是大型网站,从网站的技术指标角度考虑这个问题人们很容易犯一个毛病就是认为网站的访问量是衡量的指标,懂点行的人也许会认为是网站在单位时间里的并发量的大小来作为指标,如果按这些标准那…

阿里P9架构师讲解从单机至亿级流量大型网站系统架构的演进过程

阶段一、单机构建网站 网站的初期,我们经常会在单机上跑我们所有的程序和软件。此时我们使用一个容器,如tomcat、jetty、jboos,然后直接使用JSP/servlet技术,或者使用一些开源的框架如mavenspringstructhibernate、mavenspringspr…

自学python推荐书籍同时找哪些来实践-Python学习路上有这些论坛、网站、书籍与你同行...

Python学习路上有这些论坛、网站、书籍与你同行 2019-05-03 18:24:41 613点赞 9508收藏 164评论 创作立场声明:希望我的一些经验可以给你少走一些弯路,但人总得走点弯路才可以成长。别怕,在学习python的路上有我陪着你。人生苦短,…

广州去厦门旅游攻略--(转自 #散文吧网站#)

广州去厦门旅游攻略 发布时间:2016-12-11 17:30厦门由厦门岛、离岛鼓浪屿、内陆九龙江南岸海沧半岛、集美半岛、翔安区以及同安等组成,陆地面积1699.39Km2,海域面积300多平方公里。厦门的主体——厦门岛南北长13.7公里,东西宽12.5公里&#x…

怎么在python下载网站内容-分析某网站,并利用python自动登陆该网站,下载网站内容...

本帖最后由 愤怒的小车 于 2019-5-8 09:41 编辑 一:本代码是我研究了好久才写出来,七功能主要有自动登陆、自动识别验证码、以及自动识别下载格式进行判断下载! 首先,搬上我们的主角网址,http://lavteam.org/&#xff…

音乐相册源码php,基于PHP的DIY音乐相册网站的设计与实现(MySQL)(含录像)

基于PHP的DIY音乐相册网站的设计与实现(MySQL)(含录像)(开题报告,毕业论文8000字,程序代码,MySQL数据库)本网站运用MYSQL作为后台数据库,以PHP为前端开发工具,实现了音乐相册等模块,方便了程序的扩展与维护,同时建立了程序功能复用…

python爬虫怎么爬同一个网站的多页数据-不踩坑的Python爬虫:如何在一个月内学会爬取大规模数据...

原标题:不踩坑的Python爬虫:如何在一个月内学会爬取大规模数据Python爬虫为什么受欢迎 如果你仔细观察,就不难发现,懂爬虫、学习爬虫的人越来越多,一方面,互联网可以获取的数据越来越多,另一方面…

常用技术网站

http://www.maczapp.com/charles抓包工具:Charles for Mac v3.9.1 http://www.cocoachina.com/ios/20160217/15328.html从零开始:你的第一个iOS App http://www.cnblogs.com/wendingding/p/3704562.html文顶顶最怕你一生碌碌无为 http://www.cnblogs.com…

夏俊:深入网站服务端技术(一)——网站并发的问题

编者按】 本文来自拥有十年IT从业经验、擅长网站架构设计、Web前端技术以及Java企业级开发的夏俊,此文也是《关于大型网站技术演进的思考》系列文章的最新出炉内容,首发于CSDN,各位技术人员不容错过。 以下为正文: 一、 引子 …

如何用python创建一个下载网站-用Python下载一个网页保存为本地的HTML文件实例...

我们可以用Python来将一个网页保存为本地的HTML文件,这需要用到urllib库。 比如我们要下载山东大学新闻网的一个页面,该网页如下:实现代码如下: import urllib.request def getHtml(url): html urllib.request.urlopen(url).read…

怎么查询网站的收录量

怎么查询网站的收录量 对于一个新建的网站,我们要时时关注网站的收录情况,一般是查询百度的收录情况,可以用一个地址标志开头搜索这个网页, 就会列出这个网页在这个搜索引擎中的收录量,我们就知道要怎么继续优化网站 打…

如何用python创建一个下载网站-用Python下载一个网页保存为本地的HTML文件实例...

我们可以用Python来将一个网页保存为本地的HTML文件,这需要用到urllib库。 比如我们要下载山东大学新闻网的一个页面,该网页如下:实现代码如下: import urllib.request def getHtml(url): html urllib.request.urlopen(url).read…

大型网站系统架构演化之路

前言 一个成熟的大型网站(如淘宝、京东等)的系统架构并不是开始设计就具备完整的高性能、高可用、安全等特性,它总是随着用户量的增加,业务功能的扩展逐渐演变完善的,在这个过程中,开发模式、技术架构、设计…

大型网站的灵魂——性能

前言 在前一篇随笔《大型网站系统架构的演化》中,介绍了大型网站的演化过程,期间穿插了一些技术和手段,我们可以从中看出一个大型网站的轮廓,但想要掌握设计开发维护大型网站的技术,需要我们一步一步去研究实践。所以我…

android token过期怎么跳转登录_用sa-token轻松解决网站权限验证

sa-token是什么?一个的JavaWeb权限认证框架,强大、简单、好用与其它权限认证框架相比,sa-token尽力保证两点: - 上手简单:能自动化的配置全部自动化,不让你费脑子 - 功能强大:能涵盖的功能全部涵…

自学python推荐书籍同时找哪些来实践-Python学习路上有这些论坛、网站、书籍与你同行...

Python学习路上有这些论坛、网站、书籍与你同行 2019-05-03 18:24:41 613点赞 9508收藏 164评论 创作立场声明:希望我的一些经验可以给你少走一些弯路,但人总得走点弯路才可以成长。别怕,在学习python的路上有我陪着你。人生苦短,…