亲清在线-江山新闻网

查看: 33|回复: 0

处理系统性能题目标银弹——缓存技术

[复制链接]

2万

主题

0

回帖

6万

积分

论坛元老

Rank: 8Rank: 8

积分
68546
发表于 2025-8-9 19:35 | 显示全部楼层 |阅读模式
仔细观察一下我们现有的系统假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,小到一颗CPU假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,大到一个在线买卖系统预警可以参考下述几点停止排查和优化需要将这两个部分毗连起来。任何性能题目都可以经过一种方式有用的处理假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,这类方式就是缓存预警可以参考下述几点停止排查和优化需要将这两个部分毗连起来。不错假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,缓存几近可以成为处理性能题目标银弹假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,百步穿杨预警可以参考下述几点停止排查和优化需要将这两个部分毗连起来。缓存的首要目标是下降数据拜候延时假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,实现手段多种多样假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,下面临分歧品种的缓存停止先容预警可以参考下述几点停止排查和优化需要将这两个部分毗连起来。
CPU的缓存
能想到的最小粒度的缓存生怕就是CPU的缓存了预警可以参考下述几点停止排查和优化需要将这两个部分毗连起来。CPU不单有缓存假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,而且将缓存分红了多种级别假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,如图1所示假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,别离是L1、L2和L3 3级缓存预警可以参考下述几点停止排查和优化需要将这两个部分毗连起来。其中L1和L2是一个焦点独享的缓存假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,而L3是同一颗CPU内的多个焦点同享的预警可以参考下述几点停止排查和优化需要将这两个部分毗连起来。图1架构是今朝CPU中最多见的架构假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,而CPU关于缓存的架构细节比这个还要复杂预警可以参考下述几点停止排查和优化需要将这两个部分毗连起来。大都CPU是将缓存分为指令缓存和数据缓存2中范例的缓存假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,有些还有一种称为TLB(translation lookaside buffer)的缓存假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,用于实现虚拟内存到物理内存的快速转换预警可以参考下述几点停止排查和优化需要将这两个部分毗连起来。



图1 CPU缓存架构
CPU并非生而就有缓存假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,以Intel的CPU为例假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,其在1992年才在386 CPU中引入L1 Cache预警可以参考下述几点停止排查和优化需要将这两个部分毗连起来。而L3Cache的引入则到2008年才在Core i3中引入预警可以参考下述几点停止排查和优化需要将这两个部分毗连起来。如图2是分歧存储范例拜候时延的差别假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,以寄存器拜候为1个时候单元假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,那末内存的拜候在100单元左右预警可以参考下述几点停止排查和优化需要将这两个部分毗连起来。也就是说假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,内存的拜候延时是寄存器的100倍预警可以参考下述几点停止排查和优化需要将这两个部分毗连起来。



图2 分歧存储拜候性能对照
基于上述缘由假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,在新一代的CPU设想傍边增加了缓存模块假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,其目标就是下降拜候内存数据的时延预警可以参考下述几点停止排查和优化需要将这两个部分毗连起来。利用Cache提升性能的道理在于数据拜候的部分性特点假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,别离是地区部分性和时候部分性预警可以参考下述几点停止排查和优化需要将这两个部分毗连起来。
  • Spatial Locality:对于刚被拜候的数据假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,其相邻的数据在未来被拜候的几率高预警可以参考下述几点停止排查和优化需要将这两个部分毗连起来。
  • Temporal Locality:对于刚被拜候的数据假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,其自己在未来被拜候的几率高预警可以参考下述几点停止排查和优化需要将这两个部分毗连起来。

    操纵系统缓存
    在操纵系统层面很多地方都用到了缓存预警可以参考下述几点停止排查和优化需要将这两个部分毗连起来。而操纵系统缓存的道理与CPU缓存根基分歧假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,也就2个部分特征预警可以参考下述几点停止排查和优化需要将这两个部分毗连起来。在操纵系统中最著名的缓存生怕就是文件系统的页缓存了吧预警可以参考下述几点停止排查和优化需要将这两个部分毗连起来。一样参考一下图2假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,可以看到拜候磁盘的时延是内存时延的10万倍假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,是以Linux操纵系统中一切文件系统都采用缓存来提升其读写性能预警可以参考下述几点停止排查和优化需要将这两个部分毗连起来。
    除了上面内存拜候性能与磁盘拜候性能的差别身分外假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,别的一个身分是机械磁盘随机拜候与顺序拜候的性能差别预警可以参考下述几点停止排查和优化需要将这两个部分毗连起来。以企业级SATA磁盘为例假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,随机写的带宽不到1MB/s假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,而顺序写可以轻松的到达100MB/s假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,差别多达100倍预警可以参考下述几点停止排查和优化需要将这两个部分毗连起来。发生如此大差别的缘由主如果机械磁盘读写数据需要寻址假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,寻址所消耗的时候占全部请求时候的比例很大预警可以参考下述几点停止排查和优化需要将这两个部分毗连起来。
    鉴于上述2个身分的考量假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,大大都文件系统都实现了基于内存的缓存预警可以参考下述几点停止排查和优化需要将这两个部分毗连起来。这样假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,用户对于文件系统的拜候性能获得了大幅的提升预警可以参考下述几点停止排查和优化需要将这两个部分毗连起来。缓存的首要从两方面提升拜候文件系统的性能假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,一方面是下降对磁盘的间接拜候假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,别的一个方面是将对磁盘的随机拜候只管转换为顺序拜候预警可以参考下述几点停止排查和优化需要将这两个部分毗连起来。
    对于第一个方面假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,文件系统数据写入缓存后即以为数据写入成功假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,向上层返回成果预警可以参考下述几点停止排查和优化需要将这两个部分毗连起来。由于拜候内存的性能是拜候磁盘性能的10万倍预警可以参考下述几点停止排查和优化需要将这两个部分毗连起来。是以假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,性能自然可以获得极大的提升预警可以参考下述几点停止排查和优化需要将这两个部分毗连起来。如图3所示的上半部分逻辑假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,写请求依次将数据写入缓存中预警可以参考下述几点停止排查和优化需要将这两个部分毗连起来。对于读请求也有类似的处置假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,文件系统中称为预读假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,也就是将数据提早读取到缓存假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,从而下降拜候磁盘的频度预警可以参考下述几点停止排查和优化需要将这两个部分毗连起来。



    图3 文件系统页缓存
    对于第二个方面假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,由于缓存的存在假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,当从缓存向磁盘刷写数据的时辰以数据的LBA停止排序预警可以参考下述几点停止排查和优化需要将这两个部分毗连起来。这样可以下降机械磁盘寻道的时候消耗比例假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,进而提升系统整体的性能预警可以参考下述几点停止排查和优化需要将这两个部分毗连起来。
    Web前真个缓存
    在大系统层面我们以Web利用为例先容畴前端到后真个缓存技术预警可以参考下述几点停止排查和优化需要将这两个部分毗连起来。这主如果由于在Web开辟范畴缓存的利用最为普遍假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,很是方便我们领会题目预警可以参考下述几点停止排查和优化需要将这两个部分毗连起来。缓存的技术范畴很普遍假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,技术的难度也很深假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,本文没法四平八稳假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,只是举一反三预警可以参考下述几点停止排查和优化需要将这两个部分毗连起来。
    熟悉前端开辟的同学都清楚假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,一个网站除了静态的内容外假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,还有很多图片、JS剧本和CSS样表等内容预警可以参考下述几点停止排查和优化需要将这两个部分毗连起来。而图片、JS剧本和CSS等内容一方面量比力大假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,别的一方面很少变化假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,除非网站升级预警可以参考下述几点停止排查和优化需要将这两个部分毗连起来。鉴于上述缘由假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,我们能否可以将这些内容缓存到用户的当地磁盘假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,这样当用户再次拜候网站是便可以间接从当地磁盘加载这些内容假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,而不需要从经过浩大的收集预警可以参考下述几点停止排查和优化需要将这两个部分毗连起来。



    图4 阅读器页面请求
    本色上阅读器已经具有该功用假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,正确的说不是阅读器假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,而是HTTP协议预警可以参考下述几点停止排查和优化需要将这两个部分毗连起来。如图我们翻开阅读器的调试工具假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,可以看到请求网页的很多内容并不会从办事器请求假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,而是从当地磁盘大概内存获得预警可以参考下述几点停止排查和优化需要将这两个部分毗连起来。如图4是请求某个网站页面时部份内容的情况预警可以参考下述几点停止排查和优化需要将这两个部分毗连起来。可以看到很大一部分并非从办事器获得预警可以参考下述几点停止排查和优化需要将这两个部分毗连起来。



    图5 Web阅读器缓存处置流程
    从当地获得有2个很是明显的益处假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,一个是页面的响应时候很快假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,别的一个是Web办事器的压力获得有很大的下降预警可以参考下述几点停止排查和优化需要将这两个部分毗连起来。
    在HTTP中是经过其响应消息头来肯定能否利用缓存中的内容的假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,这个消息头就是Cache-control假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,固然还要别的一些字段的配合预警可以参考下述几点停止排查和优化需要将这两个部分毗连起来。全部缓存处置的流程还是比力复杂的假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,需要按照分歧的字段作出判定假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,以便肯定从那里获得内容预警可以参考下述几点停止排查和优化需要将这两个部分毗连起来。如图是全部阅读器的处置流程预警可以参考下述几点停止排查和优化需要将这两个部分毗连起来。
    图6是经过阅读器的调试工具截获的某东主页的一个图片的响应头内容假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,从图中可以看出里面包括了缓存控制相关的内容预警可以参考下述几点停止排查和优化需要将这两个部分毗连起来。



    图6 Web缓存的HTTP协议
    阅读器缓存的内容广博精湛假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,很难在本篇文章中诠释完全预警可以参考下述几点停止排查和优化需要将这两个部分毗连起来。假如大师想深入的领会这方面的内容假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,本号保举大师看看《HTTP威望指南》假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,了解诠释的很是具体预警可以参考下述几点停止排查和优化需要将这两个部分毗连起来。
    拜候链路层面
    在Web范畴一个请求的链路能够会很是长假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,比如我们拜候一个美国的网站假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,全部通讯链路会跨越全部承平洋假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,间隔近2万千米预警可以参考下述几点停止排查和优化需要将这两个部分毗连起来。即使是阳光也要跑几十毫秒才能完成这段里程假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,而收集需要经过各类中继装备假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,耗时快要200ms预警可以参考下述几点停止排查和优化需要将这两个部分毗连起来。试想假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,一个网页凡是有上百个元素组成(例如图片假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,js剧本等)假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,这样在中国翻开一个美国的网站将消耗几多时候?
    处理上述题目最为有用的技术就是CDN(Content Delivery Network假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,内容分发收集)技术假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,该技术经过度部在离终极用户比力近的边沿办事器供给更快的办事预警可以参考下述几点停止排查和优化需要将这两个部分毗连起来。以上文网站为例假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,当用户从中国拜候美国的网站时假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,会先从国内的CDN节点获得内容假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,假如没有才会从美国的源办事器获得内容预警可以参考下述几点停止排查和优化需要将这两个部分毗连起来。由于大部份内容都可以从国内获得假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,免除了跨越大洋酿成的收集延时预警可以参考下述几点停止排查和优化需要将这两个部分毗连起来。



    图7 CDN表示图
    图7是一个CDN的表示图假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,其中ORIGINAL SERVER就是源办事器假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,而EDGE SERVER就是边沿办事器预警可以参考下述几点停止排查和优化需要将这两个部分毗连起来。从图中可以看出假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,终端用户的拜候途径预警可以参考下述几点停止排查和优化需要将这两个部分毗连起来。
    Web后真个缓存
    对于Web办事来说假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,凡是经过关系型数据来存储数据假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,而数据库的数据凡是存储在磁盘中预警可以参考下述几点停止排查和优化需要将这两个部分毗连起来。在高负载场景下数据库常常会成为性能瓶颈预警可以参考下述几点停止排查和优化需要将这两个部分毗连起来。是以假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,为了进步全部办事的承载才能假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,常常在营业办事器和数据库之间增加一个缓存办事预警可以参考下述几点停止排查和优化需要将这两个部分毗连起来。这个缓存办事的道理实在与上述的CPU缓存大概文件系统缓存有殊途同归之妙预警可以参考下述几点停止排查和优化需要将这两个部分毗连起来。
    由于对于一个Web办事来说假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,80%以上的请求都是读请求假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,Web缓存的设想也正是基于这样一个究竟预警可以参考下述几点停止排查和优化需要将这两个部分毗连起来。这些数据完全可以缓存到内存中假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,从而削减数据库拜候的负载预警可以参考下述几点停止排查和优化需要将这两个部分毗连起来。由于缓存承载了绝大大都的读请求假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,是以全部数据库的负载也获得很大的下降预警可以参考下述几点停止排查和优化需要将这两个部分毗连起来。



    图8 Web办事缓存
    如图8是利用Redis缓存的Web办事架构假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,本文只是一个简化的架构假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,现实架构要复杂的多(需要斟酌牢靠性和承载才能等)预警可以参考下述几点停止排查和优化需要将这两个部分毗连起来。在本架构中营业办事器会按照请求范例优先拜候缓存假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,并按照战略更新缓存内容预警可以参考下述几点停止排查和优化需要将这两个部分毗连起来。今朝利用最多的缓存应当是Redis缓存假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,大师可以深入领会一下预警可以参考下述几点停止排查和优化需要将这两个部分毗连起来。
    本文从微观到宏观假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,从分歧的层面先容了缓存在提升系统性能方面的利用预警可以参考下述几点停止排查和优化需要将这两个部分毗连起来。固然假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,缓存的利用范畴比本文触及的还要多很多预警可以参考下述几点停止排查和优化需要将这两个部分毗连起来。这里只是一个引子假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,希望大师可以获得一些启发假如您的虚拟主机处事出现流量超标预警可以参考下述几点停止排查和优化,为自己系统的性能优化供给一些思绪预警可以参考下述几点停止排查和优化需要将这两个部分毗连起来。
  • 本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    x
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    Archiver|手机版|小黑屋|亲清在线-江山新闻网  

    GMT+8, 2025-9-21 07:18 , Processed in 0.385895 second(s), 24 queries .

    Powered by Discuz! X3.4

    © 2001-2023 Discuz! Team.

    快速回复 返回顶部 返回列表