昨日举荐: 每天学一个 Linux 命令(48):top
命令简介
free 命令用于显示内存的应用状况,显示可用和已用物理内存和替换内存的总数,以及内核应用的缓冲区。
语法格局
free [options]
选项阐明
-b #以 Byte 为单位显示内存应用状况
-k #以 KB 为单位显示内存应用状况
-m #以 MB 为单位显示内存应用状况
-g #以 GB 为单位显示内存应用状况
-o #不显示缓冲区调节列
-s< 距离秒数 > #继续察看内存应用情况
-t #显示内存总和列
-V #显示版本信息
利用举例
查看内存应用的总和
[root@centos7 ~]# free -t
total used free shared buff/cache available
Mem: 995684 124784 473344 7784 397556 698328
Swap: 2097148 0 2097148
Total: 3092832 124784 2570492
周期性打印出内存应用信息
[root@centos7 ~]# free -s 10
total used free shared buff/cache available
Mem: 995684 124780 473344 7784 397560 698332
Swap: 2097148 0 2097148
total used free shared buff/cache available
Mem: 995684 124780 473344 7784 397560 698332
Swap: 2097148 0 2097148
total used free shared buff/cache available
Mem: 995684 124780 473344 7784 397560 698332
Swap: 2097148 0 2097148
total used free shared buff/cache available
Mem: 995684 124780 473344 7784 397560 698332
Swap: 2097148 0 2097148
显示内存应用状况
[root@centos7 ~]# free -m
total used free shared buff/cache available
Mem: 972 121 462 7 388 682
Swap: 2047 0 2047
后果信息具体阐明如下:total #内存总和
used #曾经应用的内存
free #闲暇的内存
shared #以后曾经废除不必
Buffer/cache #缓存内存数
available #理论可用内存数
Linux 在内存治理方面做的十分的好,零碎在运行一段时间后,会将临时用不到的内存转为 buff/cache,这样在程序应用到这一部分数据时,可能很快的取出,从而进步零碎的运行效率。如果你看到服务器内存残余的非常少,不用放心,真正残余的内存是 free+buff/cache 的和才是理论可用的内存。如果应用程序须要内存空间时,Linux 会将缓存让出给程序应用,从而使内存达到最大化的利用率。
当大量的缓存占用内存空间时,应用程序就会应用到 sawp 替换分区,这样会使得零碎的运行变慢,从而影响整体运行效率。
所以,这个时候咱们须要手动去开释内存,开释内存的时候,首先执行命令 sync 将所有正在内存中的缓冲区写到磁盘中,其中包含曾经批改的文件 inode、已提早的块 I/O 以及读写映射文件,从而确保文件系统的完整性。
sync
echo 1 > /proc/sys/vm/drop_caches
echo 0 > /proc/sys/vm/drop_caches
Swap 是指替换分区,当可用内存少于额定值的时候,就会散会进行替换。额定值信息如下
[root@centos7 ~]# cat /proc/meminfo
MemTotal: 995684 kB
MemFree: 473460 kB
MemAvailable: 698452 kB
Buffers: 2108 kB
Cached: 321280 kB
SwapCached: 0 kB
Active: 229996 kB
Inactive: 132264 kB
Active(anon): 39304 kB
Inactive(anon): 7352 kB
Active(file): 190692 kB
Inactive(file): 124912 kB
Unevictable: 0 kB
Mlocked: 0 kB
SwapTotal: 2097148 kB
SwapFree: 2097148 kB
Dirty: 0 kB
Writeback: 0 kB
AnonPages: 38904 kB
Mapped: 20988 kB
Shmem: 7784 kB
Slab: 99432 kB
SReclaimable: 74176 kB
SUnreclaim: 25256 kB
KernelStack: 3728 kB
PageTables: 3280 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 2594988 kB
Committed_AS: 230116 kB
VmallocTotal: 34359738367 kB
VmallocUsed: 177420 kB
VmallocChunk: 34359310332 kB
Percpu: 22528 kB
HardwareCorrupted: 0 kB
AnonHugePages: 8192 kB
CmaTotal: 0 kB
CmaFree: 0 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
DirectMap4k: 69504 kB
DirectMap2M: 978944 kB
DirectMap1G: 0 kB
每天学一个 Linux 命令(46):du
每天学一个 Linux 命令(47):df
在本公众号后盾回复 学命令 能够查看往期文章去零碎学习 Linux 系统命令。