cpu缓存问题
为什么有cpu缓存?
为了解决CPU运算速度与内存读写速度不匹配的矛盾,就出现了CPU缓存。
CPU的运算速度要比内存读写速度快很多,这样会使CPU花费很长的时间等待数据的到来或把数据写入到内存中。
cpu的三级缓存:L1>L2>L3
就像数据库缓存一样,获取数据时首先会在最快的缓存中找数据,如果缓存没有命中(Cache miss) 则往下一级找, 直到三级缓存都找不到时,那只有向内存要数据了。一次次地未命中,代表取数据消耗的时间越长

(一)查看方法:
方式1:
$ lscpu
L1d cache: 32K <span style="white-space:pre"> </span>(一级数据缓存)
L1i cache: 32K <span style="white-space:pre"> </span><span style="font-family: Arial, Helvetica, sans-serif;">(一级指令缓存)</span>
L2 cache: 256K <span style="white-space:pre"> </span>(二级缓存)
L3 cache: 8192K<span style="white-space:pre"> </span>(三级缓存)
方式2:
$ cat /proc/cpuinfo
cache size : 3072 KB
那么cpu、内存、缓存的区别是什么:
缓存cache,也叫高速缓存器
它存在于内存和cpu之间
cache:分为:L1,L2,L3
CPU可以从内存、cache和硬盘中读取数据,cache最快、内存次之、硬盘最慢。
读取速度:
cache(L1>L2>L3)>内存>磁盘
1.linux查看占用cpu最高的进程
ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head
或者top (然后按下M,注意这里是大写)
2.linux查看占用内存最高的进程
ps aux|head -1;ps aux|grep -v PID|sort -rn -k +4|head
或者top (然后按下P,注意这里是大写)
3.这里还有个问题。就是我们新买的服务器可能买的是4G内存,但是进到服务器内部看free是达不到4096的:
这是因为系统的内核以及bios是会占用部分内存资源的,另外系统启动有些必备进程例如systemd也会占用内存,当然造成内外内存大小不一致的主要原因还是内核和bios的问题:
这里使用以下命令去查看自己实例的正确指标:
sudo dmidecode -t memory | grep Size: | grep -v "No Module Installed"
free 读取的是/proc/meminfo的内容
本文来自博客园,作者:{白白爱幻想},书山有路勤为径,学海无涯苦作舟,转载请注明原文链接:https://www.cnblogs.com/moutain94/articles/15465758.html

浙公网安备 33010602011771号