基本知识
1、Free:free命令用于查看系统的内存使用情况,常用参数包括-m(以MB为单位显示)和-h(以更易读的方式显示,如MB、GB等)。
free -m:以MB为单位显示内存使用情况。

free -h:以易读的方式显示内存信息。
2、Cat /proc/meminfo:cat /proc/meminfo命令用于查看详细的内存信息,如总内存量、空闲内存量、缓存使用量等。
3、Top/Htop:top和htop命令用于实时监视系统的进程和其内存使用情况。
4、Swap:除了物理内存外,Linux系统还可以使用交换分区来扩展内存空间。swapon和swapoff命令用于启用或禁用交换分区,swapon -s命令用于查看当前系统中启用的交换分区情况。
清空内存
1、Sync:在释放内存前,先使用sync命令将所有未写的系统缓冲区写到磁盘中,以确保文件系统的完整性。
sync
2、Echo 3 > /proc/sys/vm/drop_caches:通过写入特定的值到/proc/sys/vm/drop_caches文件来清空系统中的页缓存、目录项缓存以及索引节点缓存。
echo 3 > /proc/sys/vm/drop_caches
0:不释放(系统默认值)。
1:释放页缓存。
2:释放dentries和inodes。
3:释放所有缓存。
3、恢复自动分配内存:释放完内存后,可以输入以下命令让系统重新自动分配内存。
echo 0 > /proc/sys/vm/drop_caches
4、检查内存是否已释放:使用free -m命令查看内存是否已经释放掉。
free -m
相关问题与解答
1、问题一:为什么在Linux系统下需要手动释放内存?
解答:在Linux系统下,虽然系统已经将内存管理的很好,但有时候内存会被缓存占用掉,导致系统使用SWAP空间影响性能,当你在Linux下频繁存取文件后,物理内存会很快被用光,当程序结束后,内存不会被正常释放,而是一直作为缓存,此时就需要执行释放内存(清理缓存)的操作了。
2、问题二:在释放内存前为什么要先运行sync命令?
解答:在释放内存前先运行sync命令是为了避免数据丢失或损坏,因为sync命令会将所有未写的系统缓冲区写到磁盘中,包含已修改的i-node、已延迟的块I/O和读写映射文件,从而确保文件系统的完整性,如果不先运行sync命令,直接释放内存可能会导致这些未保存的数据丢失。