linux db2 cached太大,cache

66b52468c121889b900d4956032f1009.png

8种机械键盘轴体对比

本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选?

查看缓存free/top 命令

cache memory命令:cat /proc/meminfo

读写文件,为了提高读写性能与速度,会将文件在内存中进行缓存,这部分内存就是Cache Memory(缓存内存).即使你的程序运行结束后,Cache Memory也不会自动释放

手动释放cache1

2

3

4

5

6# To free pagecache:

echo 1 > /proc/sys/vm/drop_caches

# To free dentries and inodes:

echo 2 > /proc/sys/vm/drop_caches

# To free pagecache, dentries and inodes:

echo 3 > /proc/sys/vm/drop_caches

查看cached里面的内容 linux-ftools1

2

3

4!/bin/bash

tar xf linux-ftools.tar.gz -C ./

cd linux-ftools/ && ./configure && make && make install

eg:查看/tmp 目录下缓存了哪些文件, 命令:

linux-fincore --pages=false --summarize --only-cached /tmp/*

缓存

缓存命中

cache miss(缓存没命中)

把缓存中的就对象踢出,把新的对象加入缓存池。(替换策略,最优的替代策略就是想把缓存中最没用的条目给踢出去,但是未来是不能够被预知的,所以这种策略是不可能实现的)

缓存替换算法

FIFO

先进先出

LFU

最近最少使用算法

如果一个数据在最近一段时间内使用次数很少,那么在将来一段时间内被使用的可能性也很小

利用一个数组存储 数据项,用hashmap存储每个数据项在数组中对应的位置,然后为每个数据项设计一个访问频次,当数据项被命中时,访问频次自增,在淘汰的时候淘汰访问频次最少的数据

LRU

最近最久未使用

如果一个数据在最近一段时间没有被访问到,那么在将来它被访问的可能性也很小

当需要插入新的数据项的时候,如果新数据项在链表中存在(一般称为命中),则把该节点移到链表头部,如果不存在,则新建一个节点,放到链表头部,若缓存满了,则把链表最后一个节点删除即可。在访问数据的时候,如果数据项在链表中存在,则把该节点移到链表头部,否则返回-1。这样一来在链表尾部的节点就是最近最久未访问的数据项

LRU vs LFULRU的淘汰规则是基于访问时间

LFU是基于访问次数

set(2,2),set(1,1),get(2),get(1),get(2),set(3,3),set(4,4)

LFU 置换(3,3)

LRU 置换(1,1)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值