linux清理内存的命令 linux 清理( 三 )


后来通过了解到,linux系统和平时使用的windwos系统内存运行机制不同 。
windows系统的内存是程序运行过程中需要使用才会用到,不用时空闲着 。所以当内存使用率过高时,需要检查是否超负载运行 。解决方法是停止掉一些进程 。
linux系统中,是进程优先使用内存,而不是磁盘 。这样会加快读取速度 。当有新的进程启动时,再从内存中开辟出一定空间,为新的进程所用 。即使进程退出,也不会立刻从内存中清理掉 , 这样可以加快下次启动进程的速度 。所以内存一直是使用率很高的 。这是linux系统的独特之处,初使用linux系统的同学需要转换一些思维 。不用为linux的内存使用率高而担心 。
在图1中,第三行反映出真实内存使用率为12.5%
再介绍一个linux查看内存的命令, free
free命令可以显示当前系统为使用和以使用的内存情况,还可以显示被内存使用的内存缓冲区 。
free命令默认以K单位来显示内存使用情况
Mem行显示数据
total:总内存大小
used:已使用内存大小
free:当前空闲内存大小
shared:多个进程共享的内存总额
buffers/cached:缓存内存数据
-/+ buffers/cache行数据显示
这一行的数据代表应用内存使用情况,可理解为真实内存使用情况 。如图1中第三行数据 。
used:当前(真实)使用内存总数
free:当前(真实)空闲内存总数
-/+ buffers/cache:10256047165460可理解为当前已经使用的内存为1/8,计算公式used/(used+free) 。也就是12.6%左右 。
Swap代表交换分区,不做过多详解
free常用参数:
free -b#以Byte为单位显示内存使用情况
【linux清理内存的命令 linux 清理】free -k#以KB为单位显示内存使用情况 , 也是默认参数
free -m#以MB为单位显示内存使用情况
free -g#以GB为单位显示内存使用情况
free -o#不显示应用(真实)内存使用情况列,不推荐
free -s数字 #间隔数字秒数刷新显示内存使用情况
free -t#显示内存总和列
free -V#显示当前版本
linux下清理内存以及swap第一步linux清理内存的命令:先执行sync命令
#sync
sync命令用于强制被改变的内容立刻写入磁盘linux清理内存的命令,更新超块信息,以防止释放 , sync命令则可用来强制将内存缓冲区中的数据立即写入磁盘中 。
第二步:清理linux内存缓存
#echo 3/proc/sys/vm/drop_caches
一般系统是不会自动释放内存的
关键的配置文件/proc/sys/vm/drop_caches 。这个文件中记录linux清理内存的命令了缓存释放的参数,默认值为0,也就是不释放缓存 。他的值可以为0~3之间的任意数字,代表着不同的含义:
0 – 不释放
1 – 释放页缓存
2 – 释放dentries和inodes
3 – 释放所有缓存
此指令输入立即生效,意在释放所有缓存 。
第三步:关闭swap,再开启swap
(如果只是清理swap,第二部可以不用进行操作,因为操作了第二步关闭swap时会使用更长的时间)
#swapoff -a这一步因为是后台 在一点一点的释放,如果配置的swap超大,这里就等待得超久一些
#swapon -a再开启
linux什么时候开始使用虚拟内存(swap)
A.[root@wenwen ~]# cat /proc/sys/vm/swappiness
60
上面这个60代表物理内存在使用60%的时候才会使用swap
swappiness=0的时候表示最大限度使用物理内存 , 然后才是 swap空间 , 
swappiness=100的时候表示积极的使用swap分区 , 并且把内存上的数据及时的搬运到swap空间里面 。

推荐阅读