如何查看Linux中的内存参数?

平时工作中也会查看一些系统的内存指标,但对一些参数的具体含义不太清楚,这里记录下常见参数的含义。

平时我们看的比较多的可能是通过top命令显示的内存指标

上面的图中和程序内存相关的列主要是三列:

VIRT(Virtual Memory): 虚拟内存大小,它是程序使用的虚拟地址空间大小,包含代码段、数据、共享库等部分所占的大小。
RES(Resident Memory): 常驻内存大小,程序运行时占用的物理内存大小。
SHR(Shared Memory): 共享内存大小,它是多个进程共享的内存大小,比如共享库占用的内存。

这可能是我们平时用的比较多的查看和内存相关的指标,但除了这些,linux中其实有更丰富的和内存相关的指标数据,它存在于/proc/meminfo文件,这里面包含了更为详尽的各种内存指标数据

MemTotal: 总内存大小;
MemFree: 空闲的物理内存大小;
Buffers: 缓存的数据大小;
Cached: 磁盘缓存的大小;
SwapCached: 交换缓存的大小,包括在交换分区中的和已经被交换出去的;
Active: 正在使用的内存数量,即根据最近使用顺序存放在内存中的页面;
Inactive: 不活跃的内存大小,这些页面虽然还在内存中,但是已经很长时间没有使用,需要用户空间程序或内核重新请求才能复用;
SwapTotal: 交换分区总大小;
SwapFree: 未使用的交换分区大小;
Dirty: 等待写入到磁盘的内存大小;
Writeback: 正在被写回到磁盘的脏页大小;
AnonPages: 匿名页的大小,即没有对应文件的页,通常是由用户进程映射的页;
Mapped: 映射文件的大小;
Slab: 内核中使用的缓存对象的大小;

这里我只是截取了比较常用的一些指标进行列举,还有其它的一些指标没有介绍,可以发现这里的内存指标真是不少。其实,我们刚才介绍的top指令,还有常用的free命令,它们的内存数据都是来自这里。

其中,有两个参数BuffersCached(即buffer,cache),我想再介绍下,因为我觉得可能很多人和我一样对这两个参数的含义含混不清。

Buffers 是对原始磁盘块的临时存储,也就是用来缓存磁盘的数据,通常不会特别大(20MB 左右)。这样,内核就可以把分散的写集中起来,统一优化磁盘的写入,比如,从磁盘读取数据时,将更有效地将一个较大的数据块读入缓冲区,然后将其分段传输到应用程序中,而不是一次读取一个字节。缓冲区有助于减少读取数据所需的I/O操作数量,并提高系统的性能。

Cached 是从磁盘读取文件的页缓存,也就是用来缓存从文件读取的数据。这样,下次访问这些文件数据时,就可以直接从内存中快速获取,而不需要再次访问缓慢的磁盘。例如,当文件被读入内存时,内核可能会在缓存中保留文件的副本。如果再次请求该文件,则内核可以从缓存中检索文件,而不是从较慢的硬盘中读取文件。这减少了访问文件所需的时间,并提高了系统的性能。

所以,总结下,buffer和cache都用于提高系统性能,但它们用于不同的上下文。buffer用于I/O操作期间的临时存储,而cache用于缓存经常使用的数据,以加快对这些数据的访问。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值