在使用 linux 的时候,我们经常发现系统的空闲内存差不多总是被用完了。
我们可以通过 top 和 free 查看内存使用情况

Windows 和 linux 的 内存分配区别
但是,事实真的是内存被用完了吗,要了解这个问题,我们需要了解 linux 的内存分配管理机制,在 linux 中为了充分发挥和利益可用的内存空间,linux 会把一些程序调用过的硬盘数据写入内存,利用内存的读写高速的特性提高 linux 系统的数据访问性能。这恰恰是 linux 内存管理的高明之处。
那么我们看下 Windows,Windows 操作系统的内存是只有当使用的时候,才会分配内存,这就导致你有4个 g 内存,但是实际只用了2个 g,而剩下的2个 g 就一直处于空闲状态,而linux 则将所有的内存都利用起来。
linux 的这个特性,主要是把物理内存划分出一部分的空间,我们称作 cache/buffers,以此来提高数据的访问性能,页面的缓存(cahce)是 linux 内核实现的一种主要磁盘缓存。主要用来减少对磁盘 I/O 的操作。
|
free 可以查看 当前的内存使用情况
纵向的
- total 表示内存总大小
- used 表示已使用的物理内存大小
- free 表示空闲的内存大小
- shared 表示多个进程共享的内存大小
- buffers/cached 表示磁盘缓存的大小
横向的 第一行 men 表示物理内存 第二行表示 swap 交换分区的使用情况。
使用-s参数我们可以指定每3秒显示一次知道你退出终端,加上-c参数设置多少次退出。
|
显示最高和最低的内存使用情况
|
通常 swap 的大小设置的是(物理内存大小X2倍)。
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 阿文的博客!