序言
在计算机硬件中缓/内存设计是用来机器启动的时候加载程序,分配运行空间数据,停机,缓/内存中的数据会丢失;磁盘用来持久化存储,提供数据加载到内存中,内存的读写速度比磁盘快很多,以下是Jeff Dean “Numbers Everyone Should Know” 中提供的数据(虽然过去10多年了), 读取1MB数据,从内存中读比从磁盘中读取快100+倍;但是缓/内存的空间比磁盘空间少,为了加快数据的访问,减少缓存/磁盘io,大概分为三种:1. 可以提前将数据从磁盘加载到内/缓存中(page)、2. 内/缓存miss从下层存储获取数据(cache,pool,page)、3. 无需加载,直接内/缓存evict;如果提供给进程的最大内/缓存资源到了最大限制,需要对存储资源进行evict操作,常用的evict策略可以从Cache_replacement_policies中了解;有关特定于分页的详细算法,请参阅页面替换算法;有关特定于 CPU 和 RAM 之间缓存的详细算法,请参阅CPU 缓存。这里主要关注LRU evict相关策略。