《大型网站技术架构:核心原理与案例分析》-- 读书笔记 (2) : 大型网站核心架构要素(1) -- 性能...

1. 性能

    在浏览器端,可能通过浏览器缓存、使用页面压缩、合理布局页面、减少cookie传输等手段改善性能。还可以使用CDN,将网站静态内容分发至离用户最近的网络服务商机房。可以在网站机房部署反向代理服务器,缓存热点文件,加快请求响应速度。

    在应用服务器端,可以使用服务器本地缓存和分布式缓存。也可以通过异步操作将用户请求发送至消息队列等待后续任务处理,而当前请求直接返回给用户。

    将多台应用服务器组成一个集群共同对外服务。

    在代码层面,可以通过使用多线程,改善内存管理等手段优化性能。

    1.1 性能测试指标: 响应时间、 并发数、 吞吐量、 性能计数器

    1.2 性能测试方法:

          1.2.1 性能测试: 以系统设计初期规划的性能指标为预期目标,对系统不断施加压力,难系统在资源可接受范围内是否能达到性能预期

          1.2.2 负载测试: 对系统不断地增加并发请求以增加系统压力,直到系统的某项或多项性能指标达到安全临界值。如某种资源已经呈饱和状态,这时继续对系统施加压力,系统的处理能力不但不能提高,反而会下降。

          1.2.3 压力测试: 超过安全负载的情况下,对系统继续施加压力,直到系统崩溃或不能再处理任何请求,以此获得系统最大压力承受能力。

          1.2.4 稳定性测试: 在特定硬件、软件、网络环境条件下,给系统加载一定业务压力,使系统运行一段较长时间,以此检测系统是否稳定。

    1.3 性能优化

        1.3.1 前端性能优化:

            1.3.1.1 减少HTTP请求: 合并CSS,合并JS,合并图片

            1.3.1.2 使用浏览器缓存: 对于CSS,JS,LOGO及一些更新频率都比较低的表态资源文件,可通过设置HTTP头中Cache-Control和Expired的属性,缓存在浏览器中

            1.3.1.3 启用压缩: 压缩对服务端和浏览器都会产生一定的压力,需权衡考虑

            1.3.1.4 CSS放在页面最上面,JS放在页面最下面

            1.3.1.5 减少Cookie传输,考虑静态资源使用独立域名

        1.3.2 CDN加速

        1.3.3 反向代理

        1.3.4 应用服务器性能优化

            1.3.4.1 分布式缓存: Memcached

            1.2.4.2 异步操作: 任何可以晚点做的事情都应该晚点再做

            1.3.4.3 使用集群

            1.3.4.4 代码优化: 多线程、资源复用(数据库连接、复杂对象等)、数据结构、垃圾回收

        1.3.5 存储性能优化

            1.3.5.1 固态硬盘 vs 机械硬盘

            1.3.5.2 B+树 vs LSM 树

            1.3.5.3 RAID vs HDFS

         

 

转载于:https://www.cnblogs.com/langfanyun/p/6749525.html

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

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

相关文章

ubuntu18.04安装mysql8

下载apt包 https://dev.mysql.com/downloads/repo/apt/ 安装 sudo dpkg -i mysql-apt-config_0.8.13-1_all.deb #选择 OK sudo apt update 安装mysql8 sudo apt install mysql-server 输入密码 密码加密方式选择5.x Use Legacy Authentication Method (Retain MySQL 5.x Comp…

python3 centos7 Python.h无法找到

环境python3.6、centos7 安装geohash包时报错“致命错误:Python.h:没有那个文件或目录” 运行如下命令即可 yum install -y python3-devel 如果找不到该包,就比较麻烦了,即使下载到这个包,又依赖其他的包,其他的包也需要再找&am…

MATLAB入门学习(三)

我们再来看看矩阵常用的函数,除了上一篇提到的inv还有以下常见命令: det 计算方阵行列式 eig 计算特征值 trace 计算矩阵的迹 norm 计算矩阵的范数或模 orth 正交化 poly 求特征多项式 lu LU分解 【看到这些突然觉得我线性代数没学好(ノへ ̄、…

centos yum 安装python3.6+pip

yum install -y python3 或者 yum install -y python36 ln -s /usr/bin/python36 /usr/bin/python3 对应的执行命令 python3 pip3

centos7 python3.6编译安装

目录 安装编译依赖 下载python包 解压编译&安装 连接文件 安装pip 安装编译依赖 yum -y install gcc automake autoconf libtool make zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-deve…

P M P 常用缩写及公式

常用缩写 A AC:实际成本- Actual Cost : 在一个给定的时间段内,为完成进度活动或工作分解结构组成部分的工作,而实际发生并记录在案的总成本。实际成本有时仅为直接工时或直接成本,有时也为包括间接成本在内的所有成本。实际成本…

java控制台输出百分比进度条示例

System.out.print("\b") 会在控制台下往回删掉一个字符&#xff0c;如果你想回删多个字符就打印多个 "\b" public static void main(String[] args) throws Exception { System.out.print("Progress:"); for (int i 1; i < 100; i)…

myeclipse上进行tomcat远程调试

1.将Tomcat中的bin目录下的startup.bat启动脚本复制一份到本目录下并且修改名字为startup-debug.bat&#xff0c;然后打开startup-debug.bat文件 再startup-debug.bat文件的最下面找到 call "%EXECUTABLE%" start %CMD_LINE_ARGS% 这句话&#xff0c;将这句话修改为 …

elasticdump elasticsearch数据备份与迁移 导入导出

简单yum源安装方式在centos7中执行报错&#xff0c;nodejs版本太低 #yum install -y npm #npm install elasticdump -g 下面是可用的下载安装 下载最新nodejs包https://nodejs.org/en/download/ 这里是 https://nodejs.org/dist/v12.13.0/node-v12.13.0-linux-x64.tar.xz wge…

Eclipse插件安装

使用link文件法a.假设Eclipse的安装目录在C:\eclipse&#xff0c;在该文件夹下&#xff0c;新建这样的目录结构D:\eclipse\myplugin\jode\eclipse&#xff1b;b.解压下载的eclipse 插件或者安装eclipse 插件到指定目录BB&#xff08;如&#xff1a;D:\BB&#xff09;文件夹&…

centos7部署nodejs新版

yum方式安装版本较旧6.X&#xff0c;许多包都有问题&#xff0c;所以需要安装新版包。 下载最新nodejs包https://nodejs.org/en/download/ 这里是 https://nodejs.org/dist/v12.13.0/node-v12.13.0-linux-x64.tar.xz wget https://nodejs.org/dist/v12.13.0/node-v12.13.0-lin…

2015腾讯暑期实习笔试题目

2015腾讯暑期实习笔试题目 2015腾讯暑期实习笔试题目 &#xff08;1&#xff09;、层次遍历序列为ABCDEFG的二叉树&#xff0c;其中序遍历的序列是什么&#xff1f; &#xff08;2&#xff09;、ABCABC为入栈的顺序&#xff0c;倘若出栈的顺序为ABCCBA&#xff0c;那么,设栈的操…

360健康助手文件存储位置 获取图片

最近发现360健康助手的背景图都不错&#xff0c;想留下来当背景&#xff0c;故找一找…… 文件存储位置 %AppData%\Roaming\360safe\DesktopRest\eye bk_image目录中是背景图片&#xff0c;扩展名改成png即可打开 citytree.dat文件扩展名改成zip&#xff0c;打开后是一个cityt…

sqlserver实现分页的几种方式

sqlserver实现分页的几种方式 第一种:使用org.springframework.data.domain.Page来进行分页 package com.cellstrain.icell.repository.repositoryImpl;import com.cellstrain.icell.entity.V_Paper;import org.springframework.beans.factory.annotation.Autowired;import org…

FastDFS部署及测试

目录 简介 部署 测试 简介 FastDFS是一款开源的分布式文件系统&#xff0c;功能主要包括&#xff1a;文件存储、文件同步、文件访问&#xff08;文件上传、文件下载&#xff09;等&#xff0c;解决了文件大容量存储和高性能访问的问题。FastDFS特别适合以文件为载体的在线服…

FastDFS java api调用

介绍 本文讲述如何通过java调用FastDFS的文件上传、下载及删除&#xff0c;提供示例代码。 编译fastdfs-client-java 需要环境git、jdk8、maven git clone https://github.com/happyfish100/fastdfs-client-java.git cd fastdfs-client-java/ mvn package 配置 target目录…