Linux free命令介绍
free命令是一个用来显示系统物理内存和交换空间的使用情况的命令。它可以提供关于总量、已用、空闲、共享、缓冲和缓存的内存的信息。它还可以显示可用的内存,这是一个估计值,表示可以用来满足应用程序内存请求的内存量。free命令的输出可以帮助你了解系统的内存管理机制,以及如何优化内存的使用。
Linux free命令适用的Linux版本
free命令是一个通用的Linux命令,它可以在大多数的Linux发行版中使用,包括Ubuntu, Debian, Fedora, CentOS, Red Hat, SUSE, Arch等。 如果你的系统没有安装free命令,你可以使用以下命令来安装它:
- 对于基于Debian的系统,如Ubuntu,你可以使用apt命令:
[linux@bashcommandnotfound.cn ~]$ sudo apt update
[linux@bashcommandnotfound.cn ~]$ sudo apt install procps
- 对于基于Red Hat的系统,如CentOS,你可以使用yum或dnf命令:
[linux@bashcommandnotfound.cn ~]$ sudo yum install procps-ng
或者
[linux@bashcommandnotfound.cn ~]$ sudo dnf install procps-ng
free命令是procps或procps-ng软件包的一部分,这些软件包提供了一些用于监控系统资源和进程的命令,如ps, top, vmstat等。
Linux free命令的基本语法
free命令的基本语法如下:
free [选项]
选项可以用来改变free命令的输出格式,比如显示单位、总计、循环等。free命令没有必须的参数,但是可以接受一些可选的参数,我们会在后面介绍。
Linux free命令的常用选项说明
free命令有以下一些常用的选项:
- -b, --bytes: 以字节为单位显示内存。
- -k, --kilo: 以千字节为单位显示内存(默认)。
- -m, --mega: 以兆字节为单位显示内存。
- -g, --giga: 以吉字节为单位显示内存。
- --tera: 以太字节为单位显示内存。
- -h, --human: 自动调整显示单位为最短的三位数,并显示单位。使用的单位有B(字节),K(千字节),M(兆字节),G(吉字节),T(太字节)。
- -c, --count: 循环显示c次输出,与-s选项一起使用。
- -l, --lohi: 显示详细的低内存和高内存统计信息。
- -o, --old: 禁用显示缓冲调整后的行。
- -s, --seconds: 每隔s秒连续显示输出,s可以是小数。
- -t, --total: 在输出中添加一行显示列的总计。
- --help: 显示帮助信息并退出。
- -V, --version: 显示版本信息并退出。
Linux free命令的实例
下面是一些free命令的实例,你可以在你的系统上尝试运行它们,观察输出的变化。
- 不带任何选项的free命令,以千字节为单位显示内存使用情况:
[linux@bashcommandnotfound.cn ~]$ free
total used free shared buff/cache available
Mem: 8048372 2593004 1366712 658380 4088656 4494976
Swap: 0 0 0
- 使用-h选项的free命令,以人类可读的格式显示内存使用情况:
[linux@bashcommandnotfound.cn ~]$ free -h
total used free shared buff/cache available
Mem: 7.7Gi 2.5Gi 1.3Gi 643Mi 3.9Gi 4.3Gi
Swap: 0B 0B 0B
- 使用-t选项的free命令,显示内存和交换空间的总计:
[linux@bashcommandnotfound.cn ~]$ free -t
total used free shared buff/cache available
Mem: 8048372 2593004 1366712 658380 4088656 4494976
Swap: 0 0 0
Total: 8048372 2593004 1366712
- 使用-s选项的free命令,每隔2秒显示一次内存使用情况,直到按下Ctrl+C停止:
[linux@bashcommandnotfound.cn ~]$ free -s 2
total used free shared buff/cache available
Mem: 8048372 2593004 1366712 658380 4088656 4494976
Swap: 0 0 0
total used free shared buff/cache available
Mem: 8048372 2593004 1366712 658380 4088656 4494976
Swap: 0 0 0
total used free shared buff/cache available
Mem: 8048372 2593004 1366712 658380 4088656 4494976
Swap: 0 0 0
^C
- 使用-l选项的free命令,显示低内存和高内存的统计信息:
[linux@bashcommandnotfound.cn ~]$ free -l
total used free shared buff/cache available
Mem: 8048372 2593004 1366712 658380 4088656 4494976
Low: 8048372 2593004 1366712
High: 0 0 0
Swap: 0 0 0
Linux free命令的注意事项
- free命令的输出可能会随着系统的运行而变化,因为内核会根据需要动态地分配和回收内存。
- free命令的输出中,空闲的内存(free)并不代表系统可以使用的内存,因为缓冲和缓存的内存也可以被回收。因此,可用的内存(available)是一个更准确的指标,它表示系统可以分配给应用程序的内存量,而不会导致交换。
- free命令的输出中,共享的内存(shared)是指由tmpfs文件系统使用的内存,它是一种基于内存的文件系统,用于存储临时文件,如/run, /dev/shm等。
- free命令的输出中,缓冲和缓存的内存(buff/cache)是指由内核用于提高系统性能的内存。缓冲(buffers)是指用于存储磁盘块的内存,缓存(cache)是指用于存储文件系统元数据和文件内容的内存。
- 如果你想要释放缓冲和缓存的内存,你可以使用以下命令,但是这并不会提高系统的性能,反而可能会降低,因为内核会重新分配缓冲和缓存的内存:
[linux@bashcommandnotfound.cn ~]$ sudo sync
[linux@bashcommandnotfound.cn ~]$ sudo echo 3 > /proc/sys/vm/drop_caches
- 如果你想要查看内存的详细信息,你可以使用以下命令,它们会显示更多的内存相关的参数和统计数据:
[linux@bashcommandnotfound.cn ~]$ cat /proc/meminfo
[linux@bashcommandnotfound.cn ~]$ vmstat -s
评论区