首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

缓存踩踏:Facebook 史上最严重的宕机事件分析

作者 | Sun-Li Beatteay 译者 | 王者 策划 | 万佳 2010 年 9 月 23 日,Facebook 遭遇了迄今为止最严重的宕机事件之一,网站关闭了四个小时,情况非常严重。...1什么是缓存踩踏? 当多个线程试图并行访问缓存时,就会发生缓存踩踏。如果缓存的值不存在,那么线程将同时尝试从数据源获取数据。...你可以在应用程序中采用类似的模式,其中内存缓存是 Layer 1(L1) 缓存,远程缓存是 Layer 2(L2) 缓存。 ? 这对于防止被频繁访问的数据发生踩踏事件特别有用。...即使 L2 缓存中的一个值过期,L1 缓存中可能仍然有缓存的值,避免了重新计算缓存值。 但这种方法有一些值得注意的地方。...在缓存键正式过期前,重新计算缓存值并延长过期时间。这可以确保缓存始终是最新的,并且不会发生缓存失效。 预先重计算最简单的实现是使用后台进程或 cron 作业。

76920
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【教程】checkra1n越狱教程+常用插件推荐

    checkra1n越狱发布也有一段时间了,今天让我们回顾一下 本篇文章前半部分主要写Linux+安卓手机引导越狱,后半部分写一下常用的插件 重要:越狱骨灰级玩家请忽略本篇文章,篇幅较长,大约2500+字...部分源改名AppStore Plus):AppAdmin替代品,AppStore降级插件 Apptools:icontools替代品,可以复制BundlelD,快捷打开软件程序目录,数据目录,初始化数据,清理缓存...(清理缓存可能不太好用)清理角标,重命名等等功能 AutoTouch:(触动精灵):录制lua脚本,可以循环执行一个操作 B batchomatic:cydia/sileo/zebra/installler...电话助手:功能丰富的插件,来电归属地,骚扰拦截,状态栏自定义,等等比较实用的插件 F filza:出名的文件管理器 flex 3:函数补丁库 I icleaner pro(小扫把):强力清理缓存垃圾的实用工具...PencilCharginglngicator:移植ApplePencil充电动画到手机,曲线救国去掉低电量提示弹窗 PowerSelector:控制中心增加注销(killall SpringBoard),清除图标缓存

    10.3K20

    随机IOPS全面超越,腾讯云CSG 存储网关高性能缓存技术详解

    缓存的大小受容量的限制只能保存一部分热点数据, 需要根据场景选择合适的缓存算法。评价缓存系统好坏一般通过命中率和延时两个指标,缓存算法一般都是在两者间权衡。...memcached 的LRU算法实现: 每个节点一把锁保护节点数据和索引 LRU链表分为hot、warm和cold三个子链表,大小比例为 32:32:34 每个子链表一把全局锁,maintainer 线程根上述比例维持链表长度时要加全局锁...LRU链表 链表由midpoint指针分为hot 和cold两个子链表,默认的节点数比例是 2:1 CSG也是通过midpoint把LRU链表划分为hot 和cold两个子链表来解决局部性差场景。...这样即保证了LRU特性提升了缓存命中率而且锁冲突也不严重, 实际测试4线程加全局锁修改链表可以达到50w+/s的并发满足了需求。...hash冲突时采用的链式冲突处理, 当load_factor > 1.0时会自动进行resize,保证key和 bucket锁得比例小于1:1。

    5K170

    MySQL内存相关的主要变量

    使得查询不可缓存 Qcahce_inserts 被加入缓存的查询数,包括新查询或缓存失效后重新被缓存的查询 Qcache_free_blocks 查询缓存中空闲块数,如果此值过高,说明缓存碎片严重 Qcache_lowmem_prunes...系统变量 query_cache_limit 限制可缓存查询的字节数,查询结果超过此值的查询不可缓存 query_cache_size 为查询缓存分配的总字节数 query_cache_type 0禁用缓存...,但并不回收查询缓存区;1启用缓存,除了以 SELECT SQL_NO_CACHE 开头的查询;2只对以 SELECT SQL_CACHE 开头的查询启用缓存 二、MyISAM 键缓存 1....系统变量 innodb_max_dirty_pages_pct 脏页所占缓冲池的百分比,InnoDB 主线程把缓冲池里的脏页写回磁盘,保证脏页所占比例不超过此值 innodb_buffer_pool_size...系统变量 threads_cache_size 服务器可缓存的线程数。MySQL 只有在连接关闭的时候才会把线程加入缓存,也只有在创建新连接的时候才从缓存中移除线程 五、表缓存 1.

    1.4K40

    秒杀系统架构优化思路

    3)服务层,向上游屏蔽底层数据细节 4)数据层,最终的库存是存在这里的,mysql是一个典型 三、优化方向 1)将请求尽量拦截在系统上游:传统秒杀系统之所以挂,请求都压倒了后端数据层,数据读写锁冲突严重...【一趟火车其实只有2000张票,200w个人来买,最多2000个人下单成功,其他人都是查询库存,写比例只有0.1%,读比例占99.9%】,非常适合使用缓存 四、优化细节 4.1)浏览器层请求拦截 点击了...a)同一个uid,限制访问频度,做页面缓存,x秒内到达站点层的请求,均返回同一页面 b)同一个item的查询,例如手机车次,做页面缓存,x秒内到达站点层的请求,均返回同一页面 如此限流,又有99%的流量会被拦截在站点层...4.3)服务层请求拦截与数据缓存 站点层的请求拦截,只能拦住普通程序员,高级黑客,假设他控制了10w台肉鸡(并且假设买票不需要实名认证),这下uid的限制不行了吧?...五、总结 没什么总结了,上文应该描述的非常清楚了,对于秒杀系统,再次重复下笔者的两个架构优化思路: 1)尽量将请求拦截在系统上游 2)读多写少的常用多使用缓存

    1K80

    秒杀系统架构优化思路

    3)服务层,向上游屏蔽底层数据细节 4)数据层,最终的库存是存在这里的,mysql是一个典型 三、优化方向 1)将请求尽量拦截在系统上游:传统秒杀系统之所以挂,请求都压倒了后端数据层,数据读写锁冲突严重...【一趟火车其实只有2000张票,200w个人来买,最多2000个人下单成功,其他人都是查询库存,写比例只有0.1%,读比例占99.9%】,非常适合使用缓存 四、优化细节 4.1)浏览器层请求拦截 点击了...a)同一个uid,限制访问频度,做页面缓存,x秒内到达站点层的请求,均返回同一页面 b)同一个item的查询,例如手机车次,做页面缓存,x秒内到达站点层的请求,均返回同一页面 如此限流,又有99%的流量会被拦截在站点层...4.3)服务层请求拦截与数据缓存 站点层的请求拦截,只能拦住普通程序员,高级黑客,假设他控制了10w台肉鸡(并且假设买票不需要实名认证),这下uid的限制不行了吧?...五、总结 没什么总结了,上文应该描述的非常清楚了,对于秒杀系统,再次重复下笔者的两个架构优化思路: 1)尽量将请求拦截在系统上游 2)读多写少的常用多使用缓存

    42420

    低功耗设计方法-电源门控概述(一)

    这种泄漏功耗不仅是对电池供电或便携式产品的严重挑战,而且日益成为服务器、路由器和机顶盒等有线设备必须解决的问题。 为了减少芯片的总泄漏功耗,最好增加关闭未使用的模块的机制。这种技术被称为电源门控。...活动性比例(睡眠或活动的比例和频率)。 首先,我们介绍一些进入和退出电源模式的术语: 睡眠事件:开始进入低功耗模。 唤醒事件:启动返回到活动模式。...如果每次CPU断电时缓存内容都丢失,那么在所有总线活动中,通电时重新填充缓存可能会有很大的时间和功耗成本。...净功耗节省取决于睡眠/唤醒活动比例,即当电源关闭时节省了多少能量,而在重新加载状态下花费了多少能量。 外围子系统可能比CPU的电源管理更好。...因为CPU已经完成了它的任务,所以本地缓存内容在电源门控时丢失并不是问题。CPU被唤醒,清理并重置,准备执行并缓存下一个任务。

    90520
    领券