Linux内存管理:swap虚拟内存,free,vmstat,/proc/meminfo

 参考:

https://blog.51cto.com/bjdong/960558 (释放内存)

https://www.cnblogs.com/yangxiaoyi/p/7537949.html (内存优化)

https://blog.csdn.net/hixiaoxiaoniao/article/details/85982350 (内存性能优化思路)

https://www.cnblogs.com/pengdonglin137/p/3315124.html (free命令查看内存)

swap虚拟内存的使用

1,创建swap

参考:

https://blog.csdn.net/jinfeiwang/article/details/50133727 (创建swap)

https://blog.csdn.net/zhangxiaoyang0/article/details/82501209 (创建和关闭swap)

需要一个Swap空间,原来我的系统安装时没有分配交换空间。

电脑的内存是个珍贵东西,于是乎就有了swap这个东西,简单来说就是内存不够用的时候,用硬盘空间顶上。

这个分区在近些年来已经越来越不受大家的待见了,主要是因为现在内存比较宽裕,但是在小内存的VPS上,还是有自己的用武之地的,特别是当看到内存不足之类的错误出现在log中的时候,可以尝试创建swap来分担一下内存的压力。

swap无法替代物理内存,性能上也会差很多,在SSD硬盘上使用对读写性能会有所加成。

#1添加交换文件
mkdir -p /opt/temp
dd if=/dev/zero of=/opt/temp/swap bs=1024 count=4096000
#目录路径和大小自己看着办就好了
最小存储单元1Mb,虚拟内存大小4Gb
chmod 0600 -R /opt/temp/swap
#2创建交换空间 mkswap /opt/temp/swap #3启动新增加的4G交换空间 swapon /opt/temp/swap #4修改/etc/fstab,使新加的4G交换空间在系统重新启动后自动生效 echo "/opt/temp/swap swap swap defaults 0 0" >>/etc/fstab #5看看swap大小 free -mh #6 修改 swpapiness 参数 在 Linux 系统中,可以通过查看 /proc/sys/vm/swappiness 内容的值来确定系统对 SWAP 分区的使用原则。当 swappiness 内容的值为 0 时,表示最大限度地使用物理内存,物理内存使用完毕后,才会使用 SWAP 分区。当 swappiness 内容的值为 100 时,表示积极地使用 SWAP 分区,并且把内存中的数据及时地置换到 SWAP 分区。 查看修改前为 0,需要在物理内存使用完毕后才会使用 SWAP 分区。 可以使用下述方法临时修改此参数,假设我们配置为空闲内存少于 10% 时才使用 SWAP 分区: echo 10 >/proc/sys/vm/swappiness 若需要永久修改此配置,在系统重启之后也生效的话,可以修改 /etc/sysctl.conf 文件,并增加以下内容: vm.swappiness=10

2,关闭swap

#1关闭swap
swapoff /opt/temp/swap
rm -rf /opt/swapdata
#2修改 /etc/fstab 文件, 删除或注释相关配置,取消 SWAP 的自动挂载
删除 "/opt/temp/swap swap swap defaults 0 0" >>/etc/fstab
#3swappiness 参数调整:
#可以使用下述方法临时修改此参数,这里配置为 0%:
echo 0 >/proc/sys/vm/swappiness
#若需要永久修改此配置,在系统重启之后也生效的话,可以修改 /etc/sysctl.conf文件,并增加以下内容:
vm.swappiness=0

free

参考:https://www.jianshu.com/p/8676973770d2

#命令
free
free -m //单位m
free -h //友好
cat /proc/meminfo

#字段关系
total = used + free + buff/cache
available = free + buff/cache(只是部分)

el7中free的available其实对应:
cat /proc/meminfo  | grep MemAvailable

//buff/cache提高读写速度的内存区
buff: 写 IO 缓存
cache: 读 IO 缓存

#用 watch 命令监控内存变化
watch 'free -h'

 

vmstat

参考:https://www.cnblogs.com/ftl1012/p/vmstat.html(vmstat命令详解)

#安装
yum install -y vmstat

linux的内存映射文件

在linux中一切皆为文件,linux内核中把系统信息都映射到/proc 目录中,我们通过查看/proc/meminfo 文件来获取内存信息。

cat /proc/meminfo

 

 

 

 

 

posted @ 2021-01-07 20:27  小匡程序员  阅读(345)  评论(0编辑  收藏  举报