缓存策略的选择

缓存策略的选择,第1张

适合缓存的内容

1 不变的图像,如logo,图标等

2 js、css静态文件

3 可下载的内容,媒体文件

适合协商缓存

1 HTML文件

2 经常替换的

3 经常修改的js、css文件,js、css文件的加载可以加入文件的签名来拒绝缓存,如‘indexcss签名’,‘index签名js’

不建议缓存的内容

1 用户隐私等敏感数据

2 经常改变的API数据接口

NGINX配置缓存策略

本地缓存配置

1 add_header指令:添加状态码为2XX和3XX的响应头信息,设置代码add_header name value [always];,可以设置Pragma、Expires、Cache-Control,可以继承

2 expires指令:通知浏览器过期时长,设置代码expires time;

3 Etag指令:指定签名,设置代码etag on|off,默认on

前端代码和资源压缩

优势

1 让资源文件更小,加快文件在网络中的传输,让网页更快的展现,降低带宽和流量的开销

压缩方式

1 js、css、、html代码的压缩

2 gzip压缩

gzip配置

gzip on|off; #是否开启gzipgzip_buffers 32 4K|16 8K; #缓冲(在内存中缓存几块?每块多大)gzip_comp_level [1-9] #推荐6,压缩级别(级别越高,压得越小,越浪费CPU计算资源)

gzip_disable #正则匹配UA,什么样的Uri不进行gzip

gzip_min_length 200 #开始压缩的最小长度

gzip_>所谓的缓存,就是将程序或系统经常要调用的对象存在内存中,一遍其使用时可以快速调用,不必再去创建新的重复的实例。这样做可以减少系统开销,提高系统效率。
1、通过文件缓存;顾名思义文件缓存是指把数据存储在磁盘上,不管你是以XML格式,序列化文件DAT格式还是其它文件格式;
2、内存缓存;也就是创建一个静态内存区域,将数据存储进去,例如我们B/S架构的将数据存储在Application中或者存储在一个静态Map中。
3、本地内存缓存;就是把数据缓存在本机的内存中。
4、分布式缓存机制;可能存在跨进程,跨域访问缓存数据
对于分布式的缓存,此时因为缓存的数据是放在缓存服务器中的,或者说,此时应用程序需要跨进程的去访问分布式缓存服务器。

所谓的缓存,就是将程序或系统经常要调用的对象存在内存中,一遍其使用时可以快速调用,不必再去创建新的重复的实例。这样做可以减少系统开销,提高系统效率。

1、通过文件缓存;顾名思义文件缓存是指把数据存储在磁盘上,不管你是以XML格式,序列化文件DAT格式还是其它文件格式;

2、内存缓存;也就是创建一个静态内存区域,将数据存储进去,例如我们B/S架构的将数据存储在Application中或者存储在一个静态Map中。

3、本地内存缓存;就是把数据缓存在本机的内存中。

4、分布式缓存机制;可能存在跨进程,跨域访问缓存数据

对于分布式的缓存,此时因为缓存的数据是放在缓存服务器中的,或者说,此时应用程序需要跨进程的去访问分布式缓存服务器。

扩展资料

当我们在应用中使用跨进程的缓存机制,例如分布式缓存memcached或者微软的AppFabric,此时数据被缓存在应用程序之外的进程中。

每次,当我们要把一些数据缓存起来的时候,缓存的API就会把数据首先序列化为字节的形式,然后把这些字节发送给缓存服务器去保存。

同理,当我们在应用中要再次使用缓存的数据的时候,缓存服务器就会将缓存的字节发送给应用程序,而缓存的客户端类库接受到这些字节之后就要进行反序列化的 *** 作了,将之转换为我们需要的数据对象。

如果你使用的是服务器 DD4 内存,并且想要降低内存延迟,你可以尝试以下几个方法:
1 调整内存频率:调整内存频率设置为最大功率可以增加内存带宽,从而提高内存传输速度。
2 启用 XMP 设置:在 BIOS 中启用 XMP(扩展内存配置文件)设置可以帮助系统自动优化内存性能,以实现更快的内存访问速度。
3 降低 CAS 延迟:CAS(列地址延迟)是内存访问中的一个重要参数。通过调整 CAS 设置,可以减少内存延迟和拖延时间。
4 更新 BIOS 和驱动程序:确保系统和驱动程序更新到最新版本,以优化硬件的兼容性和性能。
5 添加更多的内存通道:如果你的主板支持多个内存通道,向每个通道添加内存模块可以增加系统内存总带宽,从而提高内存传输速度。
请注意,在进行任何更改之前,请备份数据并小心 *** 作,以避免造成硬件故障或数据损坏。

三级缓存高可以提升应用的执行速度,每次打开应用都会保存一点数据在cpu中,就是这点数据,再下次读取的时候可以大幅度提升应用的响应速度,多任务切换。

三级缓存是为读取二级缓存后未命中的数据设计的—种缓存,在拥有三级缓存的CPU中,只有约5%的数据需要从内存中调用,这进一步提高了CPU的效率。其运作原理在于使用较快速的储存装置保留一份从慢速储存装置中所读取数据且进行拷贝,当有需要再从较慢的储存体中读写数据时,缓存(cache)能够使得读写的动作先在快速的装置上完成,如此会使系统的响应较为快速。

(一)三级缓存分类

Cache(三级缓存),分为两种,早期的是外置,以后的升级产品都是内置的。而它的实际作用即是,L3缓存的应用可以进一步降低内存延迟,同时提升大数据量计算时处理器的性能。降低内存延迟和提升大数据量计算能力对游戏软件都很有帮助。而在服务器领域增加L3缓存在性能方面仍然有显著的提升。

如具有较大L3缓存的配置利用物理内存会更有效,故它比较慢的磁盘I/O子系统可以处理更多的数据请求。具有较大L3缓存的处理器提供更有效的文件系统缓存行为及较短消息和处理器队列长度。

其实最早的L3缓存被应用在AMD发布的K6-III处理器上,当时的L3缓存受限于制造工艺,并没有被集成进芯片内部,而是集成在主板上。在只能够和系统总线频率同步的L3缓存同主内存其实差不了多少。后来使用L3缓存的是英特尔为服务器市场所推出的Itanium处理器。

接着就是P4EE和至强MP。Intel还打算推出一款9MB L3缓存的Itanium2处理器,和以后24MB L3缓存的双核心Itanium2处理器。但基本上L3缓存对处理器的性能提高显得不是很重要,如配备1MB L3缓存的Xeon MP处理器却仍然不是Opteron的对手,由此可见前端总线的增加,要比缓存增加带来更有效的性能提升。

(二)一级、二级和三级缓存谁更重要?

一级最重要,但是现在CPU的一级缓存几乎都一样,所以忽略。

二级缓存的话对于Intel的CPU是很重要的,Intel的CPU的二级缓存越大性能提升非常明显,而AMD的CPU虽然二级缓存也很重要,但是二级缓存大小对AMD的CPU的性能提升不是很明显。

三级缓存其实只是做了个辅助的作用,除了服务器,其实对大多数家庭机没什么用的,内存还是很重要的,但如果运行大型程序或游戏来说三级缓存就显得重要了,目前新型CPU已经有三级缓存了。

(三)主频、二级缓存和三级缓存哪个更重要?

要说主频、二级缓存和三级缓存哪个更重要,这个问题完全还要看你使用电脑追求什么了,主要执行什么任务。主频高运算速度快,二级缓存(L2)和三级缓存(L3)起到内存和CPU之间的缓冲作用,缓解内存和CPU速度不匹配问题会影响到CPU执行的效率。所以大的L2、L3在CPU长时间大量数据处理的时候效率会比较高。高主频在短时间内少量数据的处理上会比较快,其实3项这都很重要 ,哪一项达不到一定标准都会出现瓶颈效应。

IntelXeon 7100系列CPU(16MB三级缓存)

Intel正式发布了针对高端服务器的最新双核Xeon处理器,代号Tulsa的Xeon 7100系列。该处理器依然基于上一代NetBurst架构,但在性能和功耗表现方面都有不小的改进。

15台服务器不少也不算太多,搭建一个基于LAMP技术的网站绰绰有余了。我的建议是

选择其中的两台硬盘较大,内存还可以的两台作为数据库服务器。搭建一套主从热备的主从数据库,实现系统的读写分离。提高数据访问的速度。

选择硬盘最大的一台作为文件服务器,放置系统需要使用的等静态资源。这里可以看情况而定,如果文件数据量大的话可以考虑多用一两台的搭建分布式文件系统。选择内存较大的一或两台搭建缓存服务器,将网站上满足二八定律的、访问量集中的、那百分之二十的数据缓存起来。内存的访问速度比硬盘快太多。剩下的用于搭建应用服务器集群。使用一台作为负载均衡调度服务器。当请求访问时根据既定的策略将请求分发到集群中去。

如有不对请斧正。欢迎评论讨论。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/12584259.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存