-
TPS(吞吐量)、QPS(每秒查询率)、并发数、RT(响应时间)是什么意思
2020-09-29 21:03:59主要介绍了TPS(吞吐量)、QPS(每秒查询率)、并发数、RT(响应时间)是什么意思,需要的朋友可以参考下 -
mysql每秒吞吐量qps_TPS(吞吐量)、QPS(每秒查询率)、并发数、RT(响应时间)是什么意思...
2021-01-21 09:06:061. 响应时间(RT)响应时间是指系统对请求作出响应的时间。直观上看,这个指标与人对软件性能的主观感受是非常一致的,因为它完整地记录了整个计算机系统处理请求的时间。由于一个系统通常会提供许多功能,而不同功能...1. 响应时间(RT)
响应时间是指系统对请求作出响应的时间。直观上看,这个指标与人对软件性能的主观感受是非常一致的,因为它完整地记录了整个计算机系统处理请求的时间。由于一个系统通常会提供许多功能,而不同功能的处理逻辑也千差万别,因而不同功能的响应时间也不尽相同,甚至同一功能在不同输入数据的情况下响应时间也不相同。所以,在讨论一个系统的响应时间时,人们通常是指该系统所有功能的平均时间或者所有功能的最大响应时间。当然,往往也需要对每个或每组功能讨论其平均响应时间和最大响应时间。
对于单机的没有并发操作的应用系统而言,人们普遍认为响应时间是一个合理且准确的性能指标。需要指出的是,响应时间的绝对值并不能直接反映软件的性能的高低,软件性能的高低实际上取决于用户对该响应时间的接受程度。对于一个游戏软件来说,响应时间小于100毫秒应该是不错的,响应时间在1秒左右可能属于勉强可以接受,如果响应时间达到3秒就完全难以接受了。而对于编译系统来说,完整编译一个较大规模软件的源代码可能需要几十分钟甚至更长时间,但这些响应时间对于用户来说都是可以接受的。
2. 吞吐量(Throughput)
吞吐量是指系统在单位时间内处理请求的数量。对于无并发的应用系统而言,吞吐量与响应时间成严格的反比关系,实际上此时吞吐量就是响应时间的倒数。前面已经说过,对于单用户的系统,响应时间(或者系统响应时间和应用延迟时间)可以很好地度量系统的性能,但对于并发系统,通常需要用吞吐量作为性能指标。
对于一个多用户的系统,如果只有一个用户使用时系统的平均响应时间是t,当有你n个用户使用时,每个用户看到的响应时间通常并不是n×t,而往往比n×t小很多(当然,在某些特殊情况下也可能比n×t大,甚至大很多)。这是因为处理每个请求需要用到很多资源,由于每个请求的处理过程中有许多不走难以并发执行,这导致在具体的一个时间点,所占资源往往并不多。也就是说在处理单个请求时,在每个时间点都可能有许多资源被闲置,当处理多个请求时,如果资源配置合理,每个用户看到的平均响应时间并不随用户数的增加而线性增加。实际上,不同系统的平均响应时间随用户数增加而增长的速度也不大相同,这也是采用吞吐量来度量并发系统的性能的主要原因。一般而言,吞吐量是一个比较通用的指标,两个具有不同用户数和用户使用模式的系统,如果其最大吞吐量基本一致,则可以判断两个系统的处理能力基本一致。
3. 并发用户数
并发用户数是指系统可以同时承载的正常使用系统功能的用户的数量。与吞吐量相比,并发用户数是一个更直观但也更笼统的性能指标。实际上,并发用户数是一个非常不准确的指标,因为用户不同的使用模式会导致不同用户在单位时间发出不同数量的请求。一网站系统为例,假设用户只有注册后才能使用,但注册用户并不是每时每刻都在使用该网站,因此具体一个时刻只有部分注册用户同时在线,在线用户就在浏览网站时会花很多时间阅读网站上的信息,因而具体一个时刻只有部分在线用户同时向系统发出请求。这样,对于网站系统我们会有三个关于用户数的统计数字:注册用户数、在线用户数和同时发请求用户数。由于注册用户可能长时间不登陆网站,使用注册用户数作为性能指标会造成很大的误差。而在线用户数和同事发请求用户数都可以作为性能指标。相比而言,以在线用户作为性能指标更直观些,而以同时发请求用户数作为性能指标更准确些。
4. QPS每秒查询率(Query Per Second)
每秒查询率QPS是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准,在因特网上,作为域名系统服务器的机器的性能经常用每秒查询率来衡量。对应fetches/sec,即每秒的响应请求数,也即是最大吞吐能力。 (看来是类似于TPS,只是应用于特定场景的吞吐量)
更多关于网站运维的一些专业术语请查看下面的相关链接
-
PID是什么意思?
2020-12-13 11:52:35PID是比例,积分,微分的缩写.比例调节作用:是按比例反应系统的偏差,系统一旦出现了偏差,比例调节立即产生调节作用用以减少偏差。比例作用大,可以加快调节,...微分调节作用:微分作用反映系统偏差信号的变化率,具有预 -
tps是什么意思_什么影响了数据库查询速度、什么影响了MySQL性能
2020-12-09 15:57:14一、什么影响了数据库查询速度1.1 影响数据库查询速度的四个因素1.2 风险分析QPS:Queries Per Second 意思是“每秒查询率”,是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量...一、什么影响了数据库查询速度
1.1 影响数据库查询速度的四个因素
1.2 风险分析
QPS:Queries Per Second 意思是“每秒查询率”,是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。
TPS:是TransactionsPerSecond的缩写,也就是事务数/秒。它是软件测试结果的测量单位。客户机在发送请求时开始计时,收到服务器响应后结束计时,以此来计算使用的时间和完成的事务个数。
Tips:最好不要在主库上数据库备份,大型活动前取消这样的计划。
- 效率低下的sql:超高的QPS与TPS。
- 大量的并发:数据连接数被占满(max_connection默认100,一般把连接数设置得大一些)。并发量:同一时刻数据库服务器处理的请求数量
- 超高的CPU使用率:CPU资源耗尽出现宕机。
- 磁盘IO:磁盘IO性能突然下降、大量消耗磁盘性能的计划任务。解决:更快磁盘设备、调整计划任务、做好磁盘维护。
1.3 网卡流量:如何避免无法连接数据库的情况
- 减少从服务器的数量(从服务器会从主服务器复制日志)
- 进行分级缓存(避免前端大量缓存失效)
- 避免使用select * 进行查询
- 分离业务网络和服务器网络
1.4 大表带来的问题(重要)
1.4.1 大表的特点
- 记录行数巨大,单表超千万
- 表数据文件巨大,超过10个G
1.4.2 大表的危害
1.慢查询:很难在短时间内过滤出需要的数据
查询字区分度低 -> 要在大数据量的表中筛选出来其中一部分数据会产生大量的磁盘io -> 降低磁盘效率
2.对DDL影响:
建立索引需要很长时间:
- MySQL -v<5.5 建立索引会锁表
- MySQL -v>=5.5 建立索引会造成主从延迟(mysql建立索引,先在组上执行,再在库上执行)
修改表结构需要长时间的锁表:会造成长时间的主从延迟('480秒延迟')
1.4.3 如何处理数据库上的大表
分库分表把一张大表分成多个小表
难点:
- 分表主键的选择
- 分表后跨分区数据的查询和统计
1.5 大事务带来的问题(重要)
1.5.1 什么是事务
1.5.2事务的ACID属性
1、原子性(atomicity):全部成功,全部回滚失败。银行存取款。
2、一致性(consistent):银行转账的总金额不变。
3、隔离性(isolation):
隔离性等级:
- 未提交读(READ UNCOMMITED) 脏读,两个事务之间互相可见;
- 已提交读(READ COMMITED)符合隔离性的基本概念,一个事务进行时,其它已提交的事物对于该事务是可见的,即可以获取其它事务提交的数据。
- 可重复读(REPEATABLE READ) InnoDB的默认隔离等级。事务进行时,其它所有事务对其不可见,即多次执行读,得到的结果是一样的!
- 可串行化(SERIALIZABLE)在读取的每一行数据上都加锁,会造成大量的锁超时和锁征用,严格数据一致性且没有并发是可使用。
查看系统的事务隔离级别:show variables like '%iso%';
开启一个新事务:begin;
提交一个事务:commit;
修改事物的隔离级别:set session tx_isolation='read-committed';4、持久性(DURABILITY):从数据库的角度的持久性,磁盘损坏就不行了
redo log机制保证事务更新的一致性和持久性
1.5.3 大事务
运行时间长,操作数据比较多的事务;
风险:锁定数据太多,回滚时间长,执行时间长。
- 锁定太多数据,造成大量阻塞和锁超时;
- 回滚时所需时间比较长,且数据仍然会处于锁定;
- 如果执行时间长,将造成主从延迟,因为只有当主服务器全部执行完写入日志时,从服务器才会开始进行同步,造成延迟。
解决思路:
- 避免一次处理太多数据,可以分批次处理;
- 移出不必要的SELECT操作,保证事务中只有必要的写操作。
二、什么影响了MySQL性能(非常重要)
2.1 影响性能的几个方面
- 服务器硬件。
- 服务器系统(系统参数优化)。
- 存储引擎。
- MyISAM:不支持事务,表级锁。
- InnoDB: 支持事务,支持行级锁,事务ACID。
- 数据库参数配置。
- 数据库结构设计和SQL语句。(重点优化)
2.2 MySQL体系结构
分三层:客户端->服务层->存储引擎
- MySQL是插件式的存储引擎,其中存储引擎分很多种。只要实现符合mysql存储引擎的接口,可以开发自己的存储引擎!
- 所有跨存储引擎的功能都是在服务层实现的。
- MySQL的存储引擎是针对表的,不是针对库的。也就是说在一个数据库中可以使用不同的存储引擎。但是不建议这样做。
2.3 InnoDB存储引擎
MySQL5.5及之后版本默认的存储引擎:InnoDB。
2.3.1 InnoDB使用表空间进行数据存储。
show variables like 'innodb_file_per_table
如果innodb_file_per_table 为 ON 将建立独立的表空间,文件为tablename.ibd;
如果innodb_file_per_table 为 OFF 将数据存储到系统的共享表空间,文件为ibdataX(X为从1开始的整数);
.frm :是服务器层面产生的文件,类似服务器层的数据字典,记录表结构。
2.3.2 (MySQL5.5默认)系统表空间与(MySQL5.6及以后默认)独立表空间
- 系统表空间无法简单的收缩文件大小,造成空间浪费,并会产生大量的磁盘碎片。
- 独立表空间可以通过optimeze table 收缩系统文件,不需要重启服务器也不会影响对表的正常访问。
- 如果对多个表进行刷新时,实际上是顺序进行的,会产生IO瓶颈。
- 独立表空间可以同时向多个文件刷新数据。
强烈建议对Innodb 使用独立表空间,优化什么的更方便,可控。
2.3.3 系统表空间的表转移到独立表空间中的方法
1、使用mysqldump 导出所有数据库数据(存储过程、触发器、计划任务一起都要导出 )可以在从服务器上操作。
2、停止MYsql 服务器,修改参数(my.cnf加入innodb_file_per_table),并删除Inoodb相关文件(可以重建Data目录)。
3、重启MYSQL,并重建Innodb系统表空间。
4、 重新导入数据。
或者 Alter table 同样可以的转移,但是无法回收系统表空间中占用的空间。
2.4 InnoDB存储引擎的特性
2.4.1 特性一:事务性存储引擎及两个特殊日志类型:Redo Log 和 Undo Log
- Innodb 是一种事务性存储引擎。
- 完全支持事务的ACID特性。
- 支持事务所需要的两个特殊日志类型:Redo Log 和Undo Log
Redo Log:实现事务的持久性(已提交的事务)。
Undo Log:未提交的事务,独立于表空间,需要随机访问,可以存储在高性能io设备上。Undo日志记录某数据被修改前的值,可以用来在事务失败时进行rollback;Redo日志记录某数据块被修改后的值,可以用来恢复未写入data file的已成功事务更新的数据。
InnoDB小知识点:InnoDB一棵B+树可以存放多少行数据?
2.4.2 特性二:支持行级锁
- InnoDB支持行级锁。
- 行级锁可以最大程度地支持并发。
- 行级锁是由存储引擎层实现的。
2.5 什么是锁
2.5.1 锁
2.5.2 锁类型
2.5.3 锁的粒度
MySQL的事务支持不是绑定在MySQL服务器本身,而是与存储引擎相关
将table_name加表级锁命令:lock table table_name write; 写锁会阻塞其它用户对该表的‘读写’操作,直到写锁被释放:unlock tables;
- 锁的开销越大,粒度越小,并发度越高。
- 表级锁通常是在服务器层实现的。
- 行级锁是存储引擎层实现的。innodb的锁机制,服务器层是不知道的
2.5.4 阻塞和死锁
1.阻塞是由于资源不足引起的排队等待现象。
2.死锁是由于两个对象在拥有一份资源的情况下申请另一份资源,而另一份资源恰好又是这两对象正持有的,导致两对象无法完成操作,且所持资源无法释放。
关于MySQL锁的详解:学会MySQL中的索引和锁
2.6 如何选择正确的存储引擎
参考条件:
- 事务
- 备份(Innobd免费在线备份)
- 崩溃恢复
- 存储引擎的特有特性
总结:Innodb大法好。
注意:尽量别使用混合存储引擎,比如回滚会出问题在线热备问题。
2.7 配置参数
2.7.1 内存配置相关参数
确定可以使用的内存上限。
内存的使用上限不能超过物理内存,否则容易造成内存溢出;(对于32位操作系统,MySQL只能使用3G以下的内存。)
确定MySQL的每个连接单独使用的内存。
sort_buffer_size #定义了每个线程排序缓存区的大小,MySQL在有查询、需要做排序操作时才会为每个缓冲区分配内存(直接分配该参数的全部内存);join_buffer_size #定义了每个线程所使用的连接缓冲区的大小,如果一个查询关联了多张表,MySQL会为每张表分配一个连接缓冲,导致一个查询产生了多个连接缓冲;read_buffer_size #定义了当对一张MyISAM进行全表扫描时所分配读缓冲池大小,MySQL有查询需要时会为其分配内存,其必须是4k的倍数;read_rnd_buffer_size #索引缓冲区大小,MySQL有查询需要时会为其分配内存,只会分配需要的大小。
注意:以上四个参数是为一个线程分配的,如果有100个连接,那么需要×100。
MySQL数据库实例:
①MySQL是单进程多线程(而oracle是多进程),也就是说MySQL实例在系统上表现就是一个服务进程,即进程;
②MySQL实例是线程和内存组成,实例才是真正用于操作数据库文件的;
一般情况下一个实例操作一个或多个数据库;集群情况下多个实例操作一个或多个数据库。
如何为缓存池分配内存:
Innodb_buffer_pool_size,定义了Innodb所使用缓存池的大小,对其性能十分重要,必须足够大,但是过大时,使得Innodb 关闭时候需要更多时间把脏页从缓冲池中刷新到磁盘中;
总内存-(每个线程所需要的内存*连接数)-系统保留内存
key_buffer_size,定义了MyISAM所使用的缓存池的大小,由于数据是依赖存储操作系统缓存的,所以要为操作系统预留更大的内存空间;
select sum(index_length) from information_schema.talbes where engine='myisam'
注意:即使开发使用的表全部是Innodb表,也要为MyISAM预留内存,因为MySQL系统使用的表仍然是MyISAM表。
max_connections 控制允许的最大连接数,一般2000更大。
不要使用外键约束保证数据的完整性。
2.8 性能优化顺序
从上到下:
原文:segmentfault.com/a/1190000013672421
作者:唐成勇
来源:微信公众号
-
志高显示df什么意思_电脑显示器四大金刚是什么意思?显示器四大金刚和四小金刚区别...
2020-12-01 19:00:37而电竞显示器的特点就是在于高刷新率、高速响应时间。显示器四大金刚和四小金刚区别相信不少用户在选择电竞显示器的时候,听到有人推荐四大金刚和四小金刚的显示器,当然它不代表显示器品牌,也不...近几年电竞行业的火热,带动了不少硬件、外设等相关行业的发展,一系列的以“游戏”、“电竞”命名的产品频发,什么游戏显卡、游戏主板、游戏键鼠、游戏耳机、电竞桌、电竞椅等。而近年来,在显示器领域中,电竞显示器开始火热起来了。而电竞显示器的特点就是在于高刷新率、高速响应时间。
显示器四大金刚和四小金刚区别
相信不少用户在选择电竞显示器的时候,听到有人推荐四大金刚和四小金刚的显示器,当然它不代表显示器品牌,也不代表显示器型号。那么电脑显示器四大金刚是什么意思?下面装机之家分享一下显示器四大金刚和四小金刚区别。
电脑显示器四大金刚是什么意思?
所谓的显示器四大金刚指的是显示器同时具备G-sync垂直同步技术、144Hz或者165Hz高刷新率、2K分辨率、ips面板四大参数的显示器。
四大金刚显示器
现阶段在售的代表机型分别有优派XG2703-GS、华硕PG279Q,AOC AG271QG、宏碁XB271HU,四款型号,目前价格基本在四千元上下。
电脑显示器四小金刚是什么意思?
所谓的显示器四小金刚指的是显示器同时具备144Hz或者165Hz高刷新率、2K分辨率、ips面板三大参数的显示器,相比四大金刚不支持NVIDIA家的G-Sync垂直同步技术的显示器,但是支持AMD家的Free-sync。
显示器四小金刚
现阶段在售的代表机型分别有华硕MG279Q,宏碁VG270UP、XF270HU两者主要是新款和老款,以及有无升降支架,还有优派的VX2778-2K-Pro以及宏碁XV272U P,目前价格基本在三千元上下。
简单来科普显示器四大金刚参数知识:
1、2K分辨率
通常显示器的都是属于1080P的,分辨率是1920*1080,等于2073600个像素点,而2k分辨率是2560×1440,等于3686400个像素点,显示器可显示的像素越多,画面就越精细、细腻。
2、刷新率
显示器每秒钟刷新图像的次数,主流显示器是60hz刷新率,玩游戏时候,刷新率越高画面越稳定,越顺畅。而现在主打电竞的显示器,刷新率可以达到144Hz,拒绝游戏快速转角的拖影,但是高刷新率对显卡有一定的要求。
3、ips面板
主流显示器面板是IPS、VA、TN这三种:
通常来说TN面板的材质成本最低,可视角度小,显示效果最差,但是响应时间快。
IPS和TN面板对比
VA面板的屏幕称之为“软屏”,VA相对于TN面板,优点是采用VA面板的显示器可视角度大、黑色表现也更为纯净对比度高、色彩还原准确。VA面板的缺点是功耗比较高、响应时间比较慢、面板的均匀性一般、可视角度相比IPS稍差。
IPS面板的屏幕称之为“硬屏”,市面上的主流面板,最大的优势是可视角度大,响应速度快,色彩还原准确。IPS面板的缺点是漏光问题较严重,黑色纯度不够,要比PVA稍差,因此需要依靠光学膜的补偿来实现更好的黑色。IPS有好几种规格,E-IPS屏属低端产品,AH-IPS屏属中高端产品,最高端的是S-IPS屏,高端IPS屏色彩正,响应速度快。
4、G-Sync和Free-sync垂直同步技术
G-sync和Free-sync分别出自NVIDIA和AMD不同的厂商,其实FreeSync和G-Sync的工作方式、技术原理基本相同,都属于适应性的强化垂直同步技术,在一定限度内保证画面不再撕裂、卡顿、延迟等。由于NVIDIA在显示器内部装入了G-Sync硬件模块,对画质提升更加明显,缺点就是贵,而Free-sync效果不如G-sync,但是免费开源,所以成本低,效果可以接受。
G-sync和Free-sync
四大金刚和四小金刚为什么都是27英寸?
无论是四大金刚还是四小金刚,这些显示器型号都是27英寸的,目前电竞玩家所采用的尺寸是24英寸和27英寸,27英寸以上的尺寸有点过大,左顾右盼看起来有点累,由于考虑到2K分辨率,24英寸的2K没必要,字有点小,综合考虑无疑是27英寸。
以上就是装机之家分享的显示器四大金刚和四小金刚区别,其实四大金刚主要相比四小金刚多了一个G-sync垂直同步技术,不过支持了比较类似AMD家免费开源的Free-sync垂直同步技术,在价格上四大金刚要比四小金刚贵了至少上千元左右,主要显示器中多了G-sync模块。
-
cdn连接失败是什么意思_关于CDN的原理、术语和应用场景那些事
2020-12-31 06:26:57它是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。简单来说,...CDN的全称是ContentDelivery Network,即内容分发网络。它是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。
简单来说,CDN就是为了网络内容访问速度“更快“而生的。那么如今的网络本身四通八达,为什么还需要CDN呢?
一、为什么需要CDN?
举个简单的例子,假设我们忽略网络传输的损耗、设备延时,网络传输速度接近光速,是30万公里每秒,从东京到美国硅谷的距离大概为1万公里,也就是说,如果你的服务器在东京,你上传了一张很小的图片,美国用户访问至少需要60毫秒。而且,这只是理论数据,现实世界中,网络环境是十分复杂的,跨地域、跨运营商、网络拥塞、抖动等问题,都会积少成多,使得延时成倍增加,还有可能访问失败,最终影响访问体验。
CDN的出现,正是为了解决这个问题。我们将这张图片分发并缓存在美国的CDN节点之上,美国用户就无需从东京获取数据,直接从就近的美国本地CDN节点获取到图片,这大大节省了传输时间,提升访问效率。CDN的节点通常会遍布全球,源站的文件会被被缓存到世界各地,这样全球用户都可以实现快速访问。
它有点像分布于各地的仓储物流点,很多品牌会预先在仓储物流点储备一些爆款商品(静态文件使用CDN进行缓存),当用户从电商平台下单购买货物的时候(用户发起请求),平台根据用户的收获地址就近匹配到最近的仓储物流点并直接进行派货(就近分发),让用户以最快的速度拿到快递包裹(分发的内容)。我们可以用实际的生活经验来做个对比,如果从江浙沪包邮区寄给杭州的用户,一般第二天就能到,如果是从北京、深圳发货,一般需要2-3天!
这就是CDN的缘起。简单来说,它就是一个分布式的缓存服务器,主要作用就是尽可能减少资源在转发、传输、链路抖动等情况下的时延,保障信息的连贯与极速。当下,我们生活在互联网世界,视频和直播在数据上有巨大的吞吐量,CDN扮演着护航者和加速者的角色,更快速、稳定地将信息触达每一个用户。
二、CDN的工作原理
下面,我们来进一步了解下CDN的工作原理。首先,关于CDN的那些名词,需要扫个盲
Origin Server源站:做 CDN之前的客户真正的服务器。
User:访问者,也就是要访问网站的网民。
Last Mile:最后一公里,也就是网民到他所访问到的 CDN 服务器之间的路径。
域名:域名是Internet网络上的一个服务器或一个网络系统的名字,全世界,没有重复的域名。
CNAME记录:它是一个别名记录( Canonical Name );当 DNS 系统在查询 CNAME 左面的名称的时候,都会转向 CNAME 右面的名称再进行查询,一直追踪到最后的 PTR 或 A 名称,成功查询后才会做出回应,否则失败。
CNAME域名:CDN的域名加速需要用到CNAME记录,在阿里云控制台配置完成CDN加速后,您会得到一个加速后的域名,称之为CNAME域名(该域名一定是.http://kunlun.com), 用户需要将自己的域名作CNAME指向这个.http://kunlun.com的域名后,域名解析的工作就正式转向阿里云,该域名所有的请求都将转向阿里云CDN的节点。
DNS:DNS即Domain Name System,是域名解析服务的意思。它在互联网的作用是:把域名转换成为网络可以识别的ip地址。人们习惯记忆域名,但机器间互相只认IP地址,域名与IP地址之间是一一对应的,它们之间的转换工作称为域名解析,域名解析需要由专门的域名解析服务器来完成,整个过程是自动进行的。比如:上网时输入的http://www.baidu.com会自动转换成为220.181.112.143
边缘节点:也称CDN节点、Cache节点等;是相对于网络的复杂结构而提出的一个概念,指距离最终用户接入具有较少的中间环节的网络节点,对最终接入用户有较好的响应能力和连接速度。其作用是将访问量较大的网页内容和对象保存在服务器前端的专用cache设备上,以此来提高网站访问的速度和质量。
Cache:cache高速缓冲存储器一种特殊的存储器子系统,其中复制了频繁使用的数据以利于快速访问。存储器的高速缓冲存储器存储了频繁访问的RAM位置的内容及这些数据项的存储地址。当处理器引用存储器中的某地址时,高速缓冲存储器便检查是否存有该地址。如果存有该地址,则将数据返回处理器;如果没有保存该地址,则进行常规的存储器访问。因为高速缓冲存储器总是比主RAM存储器速度快,所以当RAM的访问速度低于微处理器的速度时,常使用高速缓冲存储器。、
接下来是CDN的工作原理,最简单的CDN网络由一个DNS服务器和几台缓存服务器组成,如下图所示:
①当用户点击网站页面上的内容URL,经过本地DNS系统解析,DNS系统会最终将域名的解析权交给CNAME指向的CDN专用DNS服务器。
②CDN的DNS服务器将CDN的全局负载均衡设备IP地址返回用户。
③用户向CDN的全局负载均衡设备发起内容URL访问请求。
④CDN全局负载均衡设备根据用户IP地址,以及用户请求的内容URL,选择一台用户所属区域的区域负载均衡设备,告诉用户向这台设备发起请求。
⑤区域负载均衡设备会为用户选择一台合适的缓存服务器提供服务,选择的依据包括:根据用户IP地址,判断哪一台服务器距用户最近;根据用户所请求的URL中携带的内容名称,判断哪一台服务器上有用户所需内容;查询各个服务器当前的负载情况,判断哪一台服务器尚有服务能力。基于以上这些条件的综合分析之后,区域负载均衡设备会向全局负载均衡设备返回一台缓存服务器的IP地址。
⑥全局负载均衡设备把服务器的IP地址返回给用户。
⑦用户向缓存服务器发起请求,缓存服务器响应用户请求,将用户所需内容传送到用户终端。如果这台缓存服务器上并没有用户想要的内容,而区域均衡设备依然将它分配给了用户,那么这台服务器就要向它的上一级缓存服务器请求内容,直至追溯到网站的源服务器将内容拉到本地。
三、CDN的关键技术组件
看似复杂庞大的CDN系统,其中有几个关键技术组件:调度、缓存和安全。
1、 调度是 CDN 中的重中之重,流量接入、流量牵引、选择合适的 CDN 节点服务器等工作,都是在调度环节完成的。具体调度的解释,可以参考《CDN 之我见》系列一:原理篇(由来、调度)
2、 缓存也叫 Cache,是 CDN 领域最重要的一个组成部分,对于静态内容分发,大至视频点播、文件下载,小至 html 页面、jpg/gif/png 图片、css/js 等,都可以缓存到本地,最终用户(网民)访问时,不必回到原始服务器拿取数据,从而节省了时间、降低了源站服务器的网络带宽支出和负载。对于 CDN 来说,每台 Cache 机器每天的请求量是十分惊人的,磁盘上所存储的内容量也多得可怕,十几块 TB 级的硬盘被塞满数据也是很正常的事情,因此当一个请求到来时,能迅速检索出磁盘上的文件并读取、吐给最终用户成了一件很重要的事情。具体的缓存,可以参考《CDN 之我见》系列二:原理篇(缓存、安全)
3、 针对各类网络攻击,比如带宽饱和攻击、反射攻击等蛮力型攻击,还有XSS跨站、SQL注入、漏洞利用等技巧型攻击,CDN可以从隐藏源站、分布式架构、安全防护三个层面进行安全防护。首先,当网站接入CDN后,源站信息会被隔离,攻击者就无法直接对源站进行直接攻击,其次,CDN天然分布式架构可以当某些节点被攻击的时候,很快察觉异常并智能调度至正常节点,确保业务稳定,再次,对于技巧性攻击,在CDN边缘节点前置安全防护能力,与中心联动形成更完整、更贴近边缘的防护策略,有利于安全隐患的拦截。
四、CDN可以应用在哪些场景?
1、网站与应用加速
网站或者应用中大量静态资源的加速分发,如各类型图片、html、css、js文件等,可以通过CDN缓存到边缘节点上,当用户访问即可就近获取。网站内容也存在相当一部分动态内容,比如电子商务、游戏和企业应用类网站,会存在很多如.aspx、.asp、.jsp、.php等为后缀的动态请求加速。通常缓存对静态内容支持得较好,而当面临动态内容请求的时候,一般会回源,源站再将内容传节点,进而传给用户,传输链路步骤增多,这势必会影响传输质量与效率。所以针对动态内容,CDN也提出了新的加速方法,就是利用智能选路、传输协议优化等算法寻找最快的传输路径,自动躲避拥堵和不稳定线路,以此来提升回源效率,实现动、静混合网站的加速效果保障。
2、视频、大文件下载分发加速
CDN可以针对各类文件、在线点播视频提供下载、分发加速,比如mp4、flv视频文件或者单个文件大小在20M以上的安装包等文件,CDN可以搭配对象存储OSS使用,提升回源速度,节约近2/3回源带宽成本。
3、直播加速
在体育或者游戏赛事直播中,通常成千上万的用户瞬间涌入,直播平台要承担高并发访问,一旦带宽不足,用户的观看就会产生卡顿、延时、评论刷不出来、连麦不成功,甚至最后直播直接瘫痪,用户无法观看。CDN结合弹性伸缩服务,及时调整服务器带宽,应对突发访问流量。可以为直播分发提供流畅的播放下行链路,借助负载均衡系统将将主播端采集的音视频数据推送到接近用户的数千个边缘节点,当观众端发起请求,就可以就近取得资源,减少网络抖动风险,增加直播链路稳定性和流畅性。
4、移动应用加速
CDN可以为移动APP更新文件(apk文件)分发,移动APP内图片、页面、短视频、UGC等内容的优化提供加速分发效果。提供httpDNS服务,避免DNS劫持并获得实时精确的DNS解析结果,有效缩短用户访问时间,提升用户体验。
阿里云CDN全民加速节活动火热进行中,感兴趣的用户可以登录阿里云官网,搜索“全民加速节”进行选购。
-
12bit的图像如何向8bit转化_显示器bit是什么意思?越大越好吗?显示器8bit和10bit的区别...
2021-01-17 20:41:07在之前写的关于显示器知识,基本为...那么显示器bit是什么意思?越大越好吗?显示器8bit和10bit的区别是什么,下面装机之家一一来为大家解说。显示器bit是什么意思?越大越好吗?我们知道显示器的色彩能力主要是三个... -
QPS、TPS是什么
2020-03-28 20:27:07QPS:全名 Queries Per Second,意思是“每秒查询率”,是一台服务器每秒能够响应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。 简单的说,QPS = req/sec = 请求数/秒。它代表的... -
QPS 与 TPS是什么
2019-12-07 12:30:17QPS:Queries Per Second意思是“每秒查询率”,是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。 TPS是 TransactionsPerSecond的缩写,也就是事务数/秒。... -
TPS、RPS和QPS是什么
2019-05-07 17:25:43Queries Per Second意思是“每秒查询率”,是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。 TPS Transactions Per Second的缩写,也就是事务数/秒。它是... -
什么是前后端分离? 真的需要前后端分离吗? 前后端分离将遇到的那些挑战 前后端分离的核心:后台提供数据,前端负责显示 输出逻辑:数据显示 不可避免的前端逻辑:表单 SEO 优化技巧 搜索引擎优化都是...
-
学习笔记:会是什么影响了数据库查询速度
2020-10-02 12:14:54QPS:Queries Per Second意思是“每秒查询率”,是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。TPS:是TransactionsPerSecond的缩写,也就是事务数/秒。它是... -
mysql500万数据查询速度_是什么影响了数据库查询速度
2020-11-20 05:41:05一、什么影响了数据库查询速度1.1 影响数据库查询速度的四个因素1.2 风险分析QPS:Queries Per Second意思是“每秒查询率”,是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量... -
什么是QPS、TPS、RT、吞吐量?
2020-10-01 01:15:41QPS:Queries Per Second意思是“每秒查询率”,是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。互联网中,作为域名系统服务器的机器的性能经常用每秒查询率... -
【软件测试基础知识】性能测试的负载和压力是什么
2020-07-09 10:09:08首先,性能测试包括压力测试和负载测试,测试的是不同负载条件下系统的各项性能指标,如吞吐量、响应时间、点击率等。 其次,压力从字面意思来讲就是给某物一定的,比如用手按压桌子等。压力测试就是给被测系统不断... -
到底什么是QPS、TPS、RT、PV、UV、IV、VV、IP、系统吞吐量?
2020-10-10 14:10:26QPS:Queries Per Second意思是“每秒查询率”,是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。 TPS: 是TransactionsPerSecond的缩写,也就是事务数/秒。它... -
mysql 碎片率_解决MySQL查询速度慢与性能差
2021-01-02 21:20:04一、什么影响了数据库查询速度1.1 影响数据库查询速度的四个因素1.2 风险分析QPS: QueriesPerSecond意思是“每秒查询率”,是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量... -
mysql 碎片率_分分钟解决 MySQL 查询速度慢与性能差
2021-01-02 21:20:01一、什么影响了数据库查询速度1.1 影响数据库查询速度的四个因素1.2 风险分析QPS: QueriesPerSecond意思是“每秒查询率”,是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量... -
mysql 碎片率_专业解决 MySQL 查询速度慢与性能差!
2020-12-28 22:21:08一、什么影响了数据库查询速度1.1 影响数据库查询速度的四个因素1.2 风险分析QPS:Queries Per Second意思是“每秒查询率”,是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量... -
MySQL性能管理及架构设计(一):什么影响了数据库查询速度、什么影响了MySQL性能
2018-03-30 09:44:19一、什么影响了数据库查询速度1.1 影响数据库查询速度的四个因素 1.2 风险分析QPS:Queries Per Second意思是“每秒查询率”,是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理... -
MySQL性能管理及架构设计(一):什么影响了数据库查询速度、什么影响了MySQL性能...
2019-07-23 15:39:30一、什么影响了数据库查询速度1.1 影响数据库查询速度的四个因素1.2 风险分析QPS:Queries Per Second意思是“每秒查询率”,是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量... -
什么影响了数据库查询速度
2020-03-30 16:52:58QPS: QueriesPerSecond意思是“每秒查询率”,是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。 TPS:是 TransactionsPerSecond的缩写,也就是事务数/秒。它... -
MySQL性能管理及架构设计(一):什么影响了数据库查询速度、什么影响了MySQL性能(收藏)
2020-09-27 16:03:38QPS:Queries Per Second意思是“每秒查询率”,是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。 TPS:是TransactionsPerSecond的缩写,也就是事务数/秒。它... -
什么影响了数据库查询速度?
2019-03-14 09:57:21QPS:Queries Per Second意思是“每秒查询率”,是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。 TPS:是TransactionsPerSecond的缩写,也就是事务数/秒。... -
lambda 查询大量数据速度很慢_MySQL性能管理及架构设计(一):什么影响了数据库查询速度、什么影响了MySQL...
2020-12-28 01:34:37一、什么影响了数据库查询速度1.1 影响数据库查询速度的四个因素1.2 风险分析QPS:Queries Per Second意思是“每秒查询率”,是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量... -
mysql 表空间收缩_MySQL性能及架构设计:什么影响了数据库查询速度与MySQL性能...
2021-01-09 20:29:51一、什么影响了数据库查询速度1.1 影响数据库查询速度的四个因素 1.2 风险分析QPS:Queries Per Second意思是“每秒查询率”,是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量... -
多核编程与CPU亲和力
2019-05-30 19:10:21这样的好处是什么?能够把重要的任务独立到一个CPU上运行,从而不受其他任务影响,提升该任务的响应速度。通过CPU绑定也能提升cache命中率,从而提高性能。具体到使用上,就是利用如下API绑定CPU: i... -
性能测试时常用的术语及意义
2017-09-14 19:40:53那么他们都是什么意思呢? 一、术语解释 1.响应时间 对请求作出响应所需要的时间 网络传输时间:N1+N2+N3+N4 应用服务器处理时间:A1+A3 数据库服务器处理时间:A2 响应时间=N1+N2+N3+N4+A1+A3+A2 所以,在... -
QPS、TPS、PV、UV、GMV、IP、RPS
2019-11-06 18:00:29但实际上,我认为是这是每个程序员必懂的知识点了,你可以搞不懂它们怎么计算的,但是你最少要知道它们分别代表什么意思吧?! QPS QPS:全名 Queries Per Second,意思是“每秒查询率”,是一台服务器每秒能够...
-
构建低成本高密度Wi-Fi网络实验床
-
第1关上 将错就错.mp4
-
php值转换之strval()、intval()、floatval()、bool
-
2021-02-25
-
朱老师C++课程第3部分-3.6智能指针与STL查漏补缺
-
AIC和RIE法制备的黑硅纳米林
-
【Java并发编程】synchronized(一):生产者消费者问题
-
PHP实现word文档转html以及pdf
-
解决 jvisualvm 启动后长时间 Computing description... 的问题
-
《算法竞赛入门经典》Chap5
-
WIDER FACE: A Face Detection Benchmark
-
STM32F373XXDataSheet.zip
-
从 Notbook 到 JupyterLab, 再配上代码帮手 Kite
-
做了一套模拟卷2021年2月25日02:36:43
-
龙芯实训平台应用实战(希云)
-
关于绝热演化的一般模型
-
Mockito 3.4.0 开始可 Mock 静态方法
-
jz2440-----Ubuntu与开发板之间互传文件(三)
-
有赞容器化实践
-
用nodejs抓取-源码