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

news/2024/5/9 4:55:38/文章来源:https://blog.csdn.net/weixin_34174105/article/details/92649563

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

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

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

相关文章

大型网站架构演化简述

2019独角兽企业重金招聘Python工程师标准>>> 前言 一个成熟的大型网站(如淘宝、京东等)的系统架构并不是开始设计就具备完整的高性能、高可用、安全等特性,它总是随着用户量的增加,业务功能的扩展 逐渐演变完善的&…

使用正则表达式,从网站上获取指定数据

2019独角兽企业重金招聘Python工程师标准>>> 最近做的一个项目中,其中有这样一个需求:用户要求我们实时在地图上显示某些指定景点的人数,但是却没有给我们数据的接口。不过可以从网页上获取到最新的数据,每小时更新一次…

IIS搭建本地服务器,花生壳实现外网通过域名访问网站

配置服务器     作为一个青年,没有实力,做不出标图所示的服务器。 作为一个学生,买不起服务器 作为一个小孩,买不起域名 但别忘了 作为一个平民玩家,只要有耐心 装备迟早会做出来的 (注:感觉…

api和restful_RESTful API和网站位于同一URL中

api和restful例如,查看Github RESTful API。 要获取有关存储库的信息,您应该向api.github.com/repos/yegor256/rultor发出GET请求。 作为响应,您将获得一个JSON文档,其中yegor256/rultor存储库的所有详细信息。 尝试一下&#xff…

高扩展性网站的原则

高扩展性网站的原则 本文转自被遗忘的博客园博客,原文链接:http://www.cnblogs.com/rollenholt/p/4445248.html,如需转载请自行联系原作者

zabbix web 监控 https网站

2019独角兽企业重金招聘Python工程师标准>>> 由于工作需要,通过WEB监控HTTPS网站,是否能访问。在配置界面上对网站认证,不需要勾选SSL。因为,实际通过curl访问,而CURL访问https网站是通过-k参数访问的&…

万网免费主机wordpress快速建站教程-万网主机申请

很多小伙伴在万网的免费主机申请活动中建立起了自己的个人网站,但还是还有许多小伙伴现在想建站,却发现官网找不到免费主机的申请地址了,以为活动结束了?其实还是可以继续申请免费主机的,接下来小编给大家介绍如何获取…

使用Windows Server 2003搭建一个asp+access网站

鼠标右键->新建->网站->下一步->描述(随便给一个,这里我以test为例) ->下一步->下一步->输入主目录的路径,默认路径下是C:\Inetpub\wwwroot->下一步->下一步->完成 当前已创建好网站,默认是停止状态的(因为默认…

Axure原型绘制篇(一)如何设计一款产品网站

2019独角兽企业重金招聘Python工程师标准>>> 很感谢开源中国这个平台能提供这样一个技术性的场地,供技术爱好者们勇往直前的学习。下面给大家讲述一下作为一个技术人员的转型史(工作经验),百转千回最后到了产品&#x…

【转】 普及下网站前端知识【局域网、公网、混合网络】站点监测(上篇)

针对web前端的性能,一时间不知道入手的同学,可以看看:前端性能测试对象:HTML、CSS、JS、AJAX等前端技术开发的Web页面影响用户浏览网页速度的因素:服务端数据返回、网络传输、页面渲染,页面资源结构等前端性…

jekyll静态博客主题_静态网站生成器枪战– JBake vs Jekyll

jekyll静态博客主题今年早些时候,我一直在尝试使用静态网站生成器。 我最终的目标是将这个博客以及其他一些博客转移到静态站点中。 经过一些实验,我的结论是可以预见的。 询问任何一个要使用博客的软件。 大多数人会立即建议WordPress 。 最长的时间&…

通过互动课程网站magic sandbox学习kubernetes:1.1入门magic sandbox及service概念整理

kubernetes互动课程学习 标签:kubernetes 实践 在师兄的介绍下发现了神奇的awesome-kubernetes,里面有着很多的资源,其中之一就是非常有趣的interactive learning environments。其实官方英文教程里面也有一些简单的H5互动模块,…

【程序员节特别推送】搭建一个与技术无关的博客网站(Java后台)

文章目录沉晓s Blog一、博客概述二、需求与功能三、开发介绍四、关于部署五、关于项目本身六、我与CSDN沉晓’s Blog 一、博客概述 ? 项目背景 我一直追求着一种纯粹,写技术博客,就好好地写,心无旁骛。 我目前唯一写作的平台就是CSDN&am…

LAMP环境搭建实现网站动静分离[转]

目录: 1、环境概述 2、动静分离拓扑图 3、各服务器功能规划 4、各服务器基础环境配置 5、httpd安装配置 6、php安装配置及启用opcache加速功能 7、mysql安装配置 8、wordpress论坛程序安装测试 9、CA证书服务器及ssl配置 10、phpmyadmin安装测试 11、php的opcache加…

Slog34_支配vue框架初阶项目之博客网站-注册页面-前后端的数据交互

ArthurSlogSLog-34Year1GuangzhouChinaAug 10th 2018GitHub掘金主页简书主页segmentfault沉睡的狮子 即将醒来 而世界将为之震撼 开发环境MacOS(High Sierra 10.13.5) 需要的信息和信息源: HTTP概述HTTP互联网是如何工作的万维网是如何工作的统一资源定位符(URL)什么…

浅谈web网站架构演变过程

原文:浅谈web网站架构演变过程前言 我们以javaweb为例,来搭建一个简单的电商系统,看看这个系统可以如何一步步演变。 该系统具备的功能:用户模块:用户注册和管理商品模块:商品展示和管理交易模块:创建交易和…

网站备案知多少

网站备案知多少 DBAplus社群 2016-09-13 21:00:13 首先谈谈为什么要备案据工信部规定,使用大陆境内服务器的组织或个人,若要使用独立域名开办网站 ,就需要履行备案手续。就像开公司要去工商局申请执照一样,在国内,没有…

GoTxt网页内容提取器,可提取小说网,360doc网站的文字

为什么80%的码农都做不了架构师?>>> 以前写的一个网站文本提取器,很粗的,最近没时间改,把源码和jar文件分享出来 程序运行截图: 代码地址:https://github.com/doobo/GoTxt 转载于:https://my.o…

大型分布式网站架构技术总结:高性能+高可用+可扩展+可伸缩架构

本文是大型分布式网站架构的技术总结,文末有分布式架构设计33精讲资料~ 一、大型网站架构特点 用户多,分布广泛 大流量,高并发 海量数据,服务高可用 安全环境恶劣,易受网络攻击 功能多,变更快,频…