内存Memory Swap Buffer Cache

主要内容

1、swap 开关,创建
2、buffer 清空/释放,和cache 的区别与联系
3、内存条相关信息dmidecode
4、内存使用free 和/proc/meminfo
5、 进程使用内存pmap

一、动态指标

swap

关闭swapoff -a

开启swapon -a

swap 进出可通过dstat命令查看

yum install dstat
dstat

查哪些进程用了swap

for i in $(ls /proc | grep "^[0-9]" | awk '$0>100'); do awk '/Swap:/{a=a+$2}END{print '"$i"',a/1024"M"}' /proc/$i/smaps;done| sort -k2nr | head

pid swap

后台直接关闭swap

sudo swapoff -a &

保证内存够用,再关闭swap,会从buffer里面用

会自己关,慢慢关。这是临时关闭,永久关闭需要改配置文件

要是机械硬盘,用到swap 会很卡,要是有大的命令,IO Util 会到100%

前台清空swap

swapoff -a && swapon -a

如果已经使用了Swap,且当前清空下+buffers/cache还有空间,在执行 swapoff -a操作时,会触发把Swap中的内容交换到内存中,数据不会丢失。

创建swap

  1. 创建文件/var/swapfile,bs*count 是文件大下 4GB dd if=/dev/zero of=/var/swapfile bs=1M count=4096
  2. 格式化为分区文件mkswap /var/swapfile
  3. 启用 swapon /var/swapfile
  4. 查看是否创建成功 free -h
  5. 设置开机自启vim /etc/fstab 增加/var/swapfile swap swap defaults 0 0

释放buffer

清空cache buffer

sync

echo 1 > /proc/sys/vm/drop_caches

sync

echo 2 > /proc/sys/vm/drop_caches

sync

echo 3 > /proc/sys/vm/drop_caches

cat /proc/sys/vm/drop_caches

默认是0

sync:将所有未写的系统缓冲区写到磁盘中,包含已修改的i-node、已延迟的块I/O和读写映射文件

1:清空pagecache

2:清除回收slab分配器中的对象(包括目录项dentries缓存和inode缓存)。slab分配器是内核中管理内存的一种机制,其中很多缓存数据实现都是用的pagecache。

3:清空pagecache、slab(dentries和inodes)

二、内存信息

内存条相关信息

  1. 容量:存储容量,通常以 GB 为单位,比如 4GB、8GB、16GB 等。

  2. 类型:例如 DDR3、DDR4、LPDDR3 等。

    1. DDR:Double Data Rate 的缩写,是第一代双倍数据速率的内存条,其时钟频率为 100-200 MHz。
    2. DDR2:第二代双倍数据速率的内存条,其时钟频率为 400-800 MHz。
    3. DDR3:第三代双倍数据速率的内存条,其时钟频率为 800-1600 MHz。
    4. DDR4:第四代双倍数据速率的内存条,其时钟频率为 2133-4266 MHz。
    5. DDR5:即将推出的第五代双倍数据速率的内存条,其时钟频率预计为 4800-6400 MHz。
  3. 频率:工作频率,通常以 MHz 为单位,例如 2133MHz、2400MHz、3200MHz 等。

  4. 时序:表示内存条的访问速度,通常是由一组数字来表示的,例如 CL14-16-16-35、CL15-15-15-35 等,其中 CL 表示 CAS Latency,即内存延迟时间。

  5. 电压:表示内存条的电压,通常以 V 为单位,例如 1.2V、1.35V 等。

需要注意的是,不同的内存条规格不一定兼容,需要根据主板和 CPU 的支持规格选择合适的内存条。

dmidecode

  • 内存槽及内存条容量

    dmidecode |grep -A16 “Memory Device”

    dmidecode|grep -P -A5 “Memory\s+Device”|grep Size|grep -v Range

    grep -P是grep命令的一个选项,表示使用Perl兼容的正则表达式进行匹配。

    例如使用\d匹配数字,\w匹配字母数字字符,\s 匹配任何空白字符,包括空格、制表符、换行符等

    dmidecode

  • 查看内存条工作频率

    dmidecode|grep -A16 “Memory Device”|grep ‘Speed’

    dmidecode 频率

  • 机器内存最大容量

    dmidecode|grep -P ‘Maximum\s+Capacity’
    dmidecode

cat /proc/meminfo

在这里插入图片描述

free -h

free -h

total:总内存大小。

used:已经使用的内存大小(这里面包含cached和buffers和shared部分)。

free:空闲的内存大小。

shared:进程间共享内存(一般不会用,可以忽略)。

buffers:“缓冲” 内存中完的东西缓存起来,这样快速响应请求,后面数据再定期刷到磁盘上。buffers是将要写入硬盘中的数据缓存。

cache:内存中完缓存起来内容占的大小(为了下次查询更快返回)。cache是从硬盘或者存储设备读进计算机后缓存在内存中的数据。

Swap:即虚拟内存,硬盘上交换分区的使用大小。当物理内存不够用的时候,就要释放掉一部分空间,以供当前运行程序使用。

buffer&cache

Cache(缓存),为了调高CPU和内存之间数据交换而设计,

Buffer(缓冲)为了提高内存和硬盘(或其他I/O设备的数据交换而设计)。
buffer cache

cache和buffer都是为了解决速度不对等的问题。
cache buffer

page cache用来缓存文件数据,buffer cache用来缓存磁盘数据

服务器内存故障灯

内存故障可能会导致频繁重启
内存故障

pmap

pmap -p $pid
显示一个或者多个进程使用内存情况
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值