一:内容分发网络(Content Delivery Network),通过将服务内容分发至全网加速节点,利用全球调度系统使用户能够就近获取,有效降低访问延迟,提升服务可用性,CDN 第一降低机房的使用带宽,因为很多资源通过CDN就直接返回用户了,第二解决不同运营商之间的互联,因为可以让联通的网络访问联通让电信的网络访问电信,起到加速用户访问的目的, 第三:解决用户访问的地域问题,就近返回用户资源。

百度CDN:https://cloud.baidu.com/product/cdn.html

阿里CDN:https://www.aliyun.com/product/cdn?spm=5176.8269123.416540.50.728y8n

腾讯CDN:https://www.qcloud.com/product/cdn

1.1:用户请求的具体流程:

1.2:关于302调度:

如用的是是联通的网络,但是设置了一个电信的DNS,或者电信的用户设置了一个联通的DNS,在刚建立连接的时候CDN法获取到用户的真实IP,而是只能获取到用户的local DNS而判定用户是联通还是电信的网络,假如设置了错误的运营商DNS会被调度到错误的CDN 边缘节点,当和边缘节点连接之后就可以获取到用户的真实IP从而判断用户是联通还是电信的网络,如果是电信的网络被调度到了联通的CDN边缘节点或者是电信的网络被调度到了联通的CND边缘节点,那么可以给用户再发送一个302重定向的回复,用户的浏览器再根据新的地址进行连接,即可访问到正确的CND 边缘节点。

1.3:内容分发与分层:

提前对静态内容进行预缓存,避免大量的请求回源,导致主站网络带宽被打满而导致数据无法更新,另外CDN可以将数据根据访问的热度不通而进行不通级别的缓存,例如访问量最高的资源访问CDN 边缘节点的内存,其次的放在SSD或者SATA,再其次的放在云存储,这样兼顾了速度与成本。

1.4:CND的主要优势:

缓存-缓存到最快的地方如内存,缓存的数据准确命中率高,访问速度就快

调度准确-将用户调度到最近的边缘节点

性能优化-CDN 性能相关

安全相关-抵御攻击等

1.5:自建CDN优缺点:

nginx+squid、nginx+varnish、nginx+ATS等方式可以自建

优点:

自建CDN 比较灵活,可以在访问用户较多的地方多部署服务器

成本比较容易控制

缺点:

费用高

团队技术要求高

问题不变排查,出问题不容易搞的定

二:应用层缓存:

2.1:应用程序级别的缓存:

指的是编译性语言需要编译成二进制可执行代码,比如c/c++/go等,其编译好之后就可以直接运行,另外还有解释性语言,比如php/python先编译成operate code即中间码也叫字节码,中间码不能直接运行需要解释器解释成机器码之后才能执行,因此中间码也算是缓存,php在5.5.0之后已经绑定了OPCache扩展,对于PHP 5.2,5.3,5.4等版本中可以使用PECL 扩展中的OPcache库,在5.5版本之前可以使用APC/Xcache等进行缓存也可以实现,但是5.5之后已经内置OPcache 就不需要APC和Xcache了,开启的话在编译PHP的时候使用–enable-opcache即可,因此使用PHP 推荐使用5.5之后的版本并打开OPcache以提升性能,另外如果在开启OPcache的情况下使用了软连接的方式部署代码会导致代码不更新,当代码更新之后需要重启php-fpm才可以识别并将新的代码进行编译成字节码并通过解释器解释给访问用户,apache 的mod_cache现在一般不使用,nginx的FastCGI缓存会导致代码代码更新后用户访问不生效,因此也不使用,所以动态语言就使用OPcache,FastCGI会导致不生效就直接关闭。

2.2:动态页面静态化:

将java的动态页面静态化,比如将每个具体产品的web页面静态化为html文件,然后通过nginx 的rewrite功能发布,即用户最终访问到的某个产品的web 页面是静态的页面,静态页面的访问速度是比较快的,生成的静态页面可以通过nfs、rsync、分布式存储等方式推送到各web服务器,如果静态页面生成的信息是错误的,可以将信息更改后通过推送平台重新生成新的web页面并同步到各web服务器,平时可以通过每间隔几个小时自动生成静态页面,比如每6小时生成一次动态页面并同步到各web服务器。

三:其他缓存:

3.1数据缓存

3.1.1:分布式缓存:redis、memcached

3.1.2:数据库:MySQL的Innodb缓存、MYISA缓存

3.2:系统层:

3.2.1:操作系统

CPU缓存(L1的数据缓存和L1的指令缓存)、二级缓存、三级缓存

内存:buffer和cache、内存表缓存

3.3:物理层:

3.3.1:磁盘缓存:磁盘有自己的缓存,用RAID 卡的时候磁盘的缓存是关闭的。

3.3.2:RAID 卡缓存:服务器在使用raid 卡的时候磁盘的缓存默认是关闭的,避免因为突然断电而导致的缓存里面的数据丢失,看看到磁盘的换粗是关闭的,因为raid 卡可以带电池供电。

3.3.3:RAID 卡的基本操作命令:

查看当前RAID卡缓存策略MegaCli64 -LDinfo -Lall -aAllDefault Cache Policy: WriteThrough, ReadAheadNone, Direct, No Write Cache if Bad BBUCurrent Cache Policy: WriteThrough, ReadAheadNone, Direct, No Write Cache if Bad BBU第一部分:WriteBack:写缓存策略WriteThrough:直接写入磁盘,不使用RAID卡缓存。第二部分:ReadAheadNone:不开启预读ReadAhead:开启预读,在读操作的时候,预先把后面顺序的数据载入raid卡缓存,在顺序读的环境中能提供很好的性能,但是在随机读的环境中反而降低读的性能(适合文件系统,不适合数据库系统)ReadAdaptive:自适应预读,在缓存和I/O空闲时选择预读,默认策略。第三部分:Direct:读操作不缓存到RAID卡缓存。Cached:读操作缓存到RAID卡缓存。第四部分:如果BBU(电池)出现问题是否启用Write CacheNo Write Cache if Bad BBU:如果BBU出现问题不使用Write Cache,从WriteBack自动切换到WriteThrough,默认配置。Write Cache OK if Bad BBU: 如果BBU出现问题仍启用Write Cache,这种配置是非常不安全的,除非是有UPS或者双电源的情况下。RAID卡策略更改修改WriteBack:MegaCli64 -LDSetProp -WB -Lall -aAll修改WriteThrough:MegaCli64 -LDSetProp -WT -Lall -aAll修改No Write Cache if Bad BBU:MegaCli64 -LDSetProp -NoCachedBadBBU -Lall -aAll修改Write Cache OK if Bad BBU:MegaCli64 -LDSetProp -CachedBadBBU -Lall -aAll4.其它相关命令查看机器型号    # dmidecode | grep"Product" 查看厂商    # dmidecode| grep "Manufacturer" 查看序列号    # dmidecode | grep "Serial Number" 查看CPU信息    # dmidecode | grep "CPU" 查看CPU个数    # dmidecode | grep "Socket Designation: CPU" |wc –l 查看出厂日期    # dmidecode | grep"Date" 查看充电状态    # MegaCli64 -AdpBbuCmd-GetBbuStatus -aALL |grep "Charger Status" 显示BBU状态信息    # MegaCli64 -AdpBbuCmd-GetBbuStatus –aALL 显示BBU容量信息    # MegaCli64 -AdpBbuCmd-GetBbuCapacityInfo –aALL 显示BBU设计参数    # MegaCli64 -AdpBbuCmd-GetBbuDesignInfo –aALL 显示当前BBU属性    # MegaCli64 -AdpBbuCmd-GetBbuProperties –aALL 查看充电进度百分比    # MegaCli64 -AdpBbuCmd-GetBbuStatus -aALL |grep "Relative State of Charge" 查询Raid阵列数    # MegaCli64 -cfgdsply -aALL|grep "Number of DISK GROUPS:" 显示Raid卡型号,Raid设置,Disk相关信息      # MegaCli64-cfgdsply –aALL 显示所有物理信息    # MegaCli64 -PDList-aALL 显示所有逻辑磁盘组信息    # MegaCli64 -LDInfo -LALL–aAll 查看物理磁盘重建进度(重要)    # MegaCli64 -PDRbld-ShowProg -PhysDrv [1:5] -a0 查看适配器个数    #MegaCli64 –adpCount 查看适配器时间    #MegaCli64 -AdpGetTime–aALL 显示所有适配器信息    #MegaCli64 -AdpAllInfo–aAll 查看Cache 策略设置    # MegaCli64 -cfgdsply -aALL|grep Polic

hierbernate 关闭缓存设置_CDN与其他层面缓存相关推荐

  1. raid 物理盘缓存状态_CDN与其他层面缓存

    一:内容分发网络(Content Delivery Network),通过将服务内容分发至全网加速节点,利用全球调度系统使用户能够就近获取,有效降低访问延迟,提升服务可用性,CDN 第一降低机房的使用 ...

  2. linux 磁盘缓存设置,Linux下的磁盘缓存

    前段时间在开发一个使用SSD做缓存的系统,在高速写入数据时会出现大量的磁盘缓存.太多的磁盘缓存如果没有及时的写入磁盘中,在机器出现问题时是非常危险的,这样会导致很多的数据丢失,但是如果实时的将数据刷入 ...

  3. linux设置TCP接收缓存,TCP缓存设置及自调节

    工作的原因,同事在单条流的性能测试中出现性能值低的问题,最后的问题点确认为缓存设置不合理.为什么要设置缓存?如何设置缓存? 缓存和带宽时延积 读缓存的上限应该由TCP接收窗口的最大值确定,过大或过小的 ...

  4. # html页面head缓存设置

    html页头head缓存设置 什么是应用程序缓存(Application Cache)? HTML5 引入了应用程序缓存,这意味着 web 应用可进行缓存,并可在没有因特网连接时进行访问. 应用程序缓 ...

  5. hierbernate 关闭缓存设置_华为手机必须关闭的5个设置,让你的手机永不卡顿,再用6年...

    阅读本文前,请您先点击上面的蓝色字体,再点击"关注",这样您就可以继续免费收到文章了.每天都有分享,完全是免费订阅,请放心关注.注:本文转载自网络,如有侵权,请联系我们进行删除,谢 ...

  6. 缓存系列之二:CDN与其他层面缓存

    缓存系列之二:CDN与其他层面缓存 一:内容分发网络(Content Delivery Network),通过将服务内容分发至全网加速节点,利用全球调度系统使用户能够就近获取,有效降低访问延迟,提升服 ...

  7. php 静态扩展,thinkphp5行为扩展实现html静态缓存设置

    thinkphp5行为扩展实现html静态缓存设置 2018-06-19 11:53:10ThinkPHP thnkphp5行为扩展html静态缓存 利用钩子thinkphp钩子进行行为扩展.先上本地 ...

  8. oracle11g设置数据库归档,oracle_Oracle11g RAC开启关闭、设置归档小结,关闭 1.先关数据库: 复制代 - phpStudy...

    Oracle11g RAC开启关闭.设置归档小结 关闭 1.先关数据库: [oracle@oeltan1 ~]$ srvctl stop database -d tantest2.再关闭crs服务 [ ...

  9. 【转载】uTorrent缓存设置,防止出现磁盘负荷100%

    http://blog.sina.com.cn/s/blog_563fbc8c01011vod.html 昨晚半夜需要在家里Down一个PT,很久没在家里Down了,在小本(D430,天杀的1.8寸硬 ...

  10. 云更新无盘服务器缓存,云更新无盘服务器缓存设置

    云更新无盘服务器缓存设置 内容精选 换一换 切换操作系统是为您的弹性云服务器重新切换一个系统盘.切换完成后弹性云服务器的系统盘ID会发生改变,并删除原有系统盘.如果弹性云服务器当前使用的操作系统不能满 ...

最新文章

  1. HTTP协议与TCP/IP协议的关系
  2. 05、HttpServletRequest
  3. R语言-csv文件数据追加
  4. java面试换背景颜色_证件照换底色 证件照换背景 证件照背景颜色
  5. 基于Boost::beast模块的同步WebSocket服务器
  6. Java 多态、抽象类 笔记
  7. SpringSecurity过滤器链加载原理
  8. oneinstack_OneinStack lnmp网站环境部署Namecheap SSL安全证书方法
  9. matlab根据url链接下载*.tar文件并解压
  10. ORA-28547 连接服务器失败,可能是Oracle Net 管理错误
  11. MySQL的简单使用
  12. mybatis学习(16):不使用接口的方式
  13. 发现VB6中SAX的乐趣[转]
  14. dynamic的使用
  15. Samba服务的安装
  16. 推荐系列:2008年第05期 总7期
  17. Java Web day14
  18. Java经典程序编程50题(较适合初学者)
  19. 数据库系统是采用数据库技术的计算机系统,1数据库系统是采用了数据库技术的计算机系统.doc...
  20. Python的pyhanlp库使用(自然语言识别、姓名)

热门文章

  1. Struts2的Action
  2. windows下kangle虚拟主机-easypanel跑iis6.0开php空间并支持ZendOptimizer教程
  3. mysql 二进制日志格式_MySQL 二进制日志格式深入理解
  4. 如何新建一个vue项目(图文详解)
  5. cpu频率_CPU频率的提升到底会产生哪些影响?
  6. C# 尝试还原程序包时出错:找不到“XXXXX”版本的程序包“XXXXXX”
  7. C#、net core、net5自定义实体注解
  8. 泛型list集合类转换成DataTable、datatable转list
  9. 北大计算机QS排名,2019最新QS世界大学排名:清华北大获历史最高名次
  10. macos 10.15.2 iso镜像网盘下载