Linux命令之free命令

free命令概述

free 命令是在 Linux 系统中用于显示系统的总体内存使用情况。本篇对该命令的一些常用语法进行简要说明。若想查看更多该命令的用法,可通过man free查看。

free命令语法

-k:以千字节(KB)为单位显示内存使用情况(默认)。-b(字节)-m(MB)-g(GB)同理
-h:以合适的单位显示内存使用情况

[root@VM-8-15-centos ~]# free -h
              total        used        free      shared  buff/cache   available
Mem:           2.0G        973M         77M        592K        947M        854M
Swap:            0B          0B          0B

-s N:每隔 N 秒刷新一次内存信息,N 填数字,可结合其他参数使用,但要写在 -s 前面

free命令扩展

1、free 命令各字段解析

[root@VM-8-15-centos ~]# free -h
              total        used        free      shared  buff/cache   available
Mem:           2.0G        973M         77M        592K        947M        854M
Swap:            0B          0B          0B
  • total:总内存大小
  • used:已使用的内存大小
  • free:未使用的内存大小
  • shared:多个进程共享的内存大小
  • buff/cache:被缓冲和缓存使用的内存大小,buffer,缓冲区;cache,缓存区
  • available:估算的可用于启动新应用程序的,未被使用的内存大小(不包括缓冲/缓存)

缓冲区与缓存区:

  • buffer(缓冲区)是指写入数据时,把分散的写入操作保存到内存中,达到一定程度集中写入硬盘,减少硬盘碎片以及反复的寻通时间。buffer解决的是空间问题,给数据写入提供一个暂存空间
  • cache(缓存区)是指把读取磁盘而来的数据保存在内存中,再次读取,下一次不用读取硬盘,而是直接从内存中读取,加速数据读取过程。cache解决的是时间问题,提高数据读取速度;cache利用的是内存极快的速度特性,读写速度是磁盘的很多倍

2、清理缓存
Linux系统会将一部分内存用作缓存,以加快文件系统的读写速度。当系统内存不足时,可以通过清理缓存来释放内存。就是清理 buff/cache 中的内存

[root@VM-8-15-centos ~]# free -h
              total        used        free      shared  buff/cache   available
Mem:           2.0G        979M        715M        592K        303M        867M
Swap:            0B          0B          0B
[root@VM-8-15-centos ~]# echo 1 > /proc/sys/vm/drop_caches
[root@VM-8-15-centos ~]# free -h
              total        used        free      shared  buff/cache   available
Mem:           2.0G        981M        843M        592K        174M        865M
Swap:            0B          0B          0B

上述命令的意思是将 1 写入到 drop_caches 中去,其中还可以写入2,3,各模式意义如下:
1:清理页缓存,页缓存用于存储最近访问过的文件内容,以加快对相同文件的后续访问速度。清理页缓存可能会导致后续的文件访问变慢,因为内容需要从磁盘重新读取。
2:理目录项缓存和 inode 缓存,目录项缓存用于存储目录项信息,而 inode 缓存用于存储文件的元数据。清理这些缓存可能会导致文件系统操作变慢,因为相关信息需要从磁盘重新读取。
3:清理页缓存、目录项缓存和 inode 缓存,这通常用于最大程度地释放内存,但同样会导致后续的磁盘访问和文件系统操作变慢。

注意:drop_caches 的使用应该谨慎,因为它可能会导致系统性能下降。在大多数情况下,Linux 内核会自动管理这些缓存,以优化系统性能。只有在特定的测试和调试场景下,才应该考虑使用 drop_caches。

3、当内存不足时,可通过以下命令查看进程占用内存的情况,停止不必要的进程释放内存

# 看出进程占用内存最高的前十项
# 第一列:进程号	第二列:内存占用
[root@VM-8-15-centos home]# ps -e -o 'pid,rsz' | sort -nrk 2 | head -10
 6688 766896
18333 47820
  379 47272
 1481 42736
 1408 28968
 1125 23308
 1107 17764
18408 15016
 2358 14764
18528 11276
  • 16
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值