专栏首页性能与架构Linux 内存性能指标

Linux 内存性能指标

内存基础概念

先执行一下 top 命令,看结果中关于内存的相关部分

# top

其中的 VIRTRESSWAP 都是什么呢?

分别是下面的3个概念

物理内存 Resident - RES 实际的内存空间 RAM 交换区 Swapped - SWAP 当物理内存不足时,操作系统会把内存中不常用的页换出到磁盘空间 当被换出的页需要被访问时,再换入到物理内存 所以交换区就是用来临时存放内存中不常用的内容的,感觉就想内存的一个小仓库 虚拟内存 Virtual - VIRT

虚拟内存 = 物理内存 + 交换区 程序操作内存时,实际就是操作虚拟内存中的地址,操作系统再负责映射到物理地址,或者交换区

快速了解内存状态

# free

主要指标 total - 物理内存总大小 used - 已经使用的物理内存大小 free - 空闲的物理内存 shared - 多个进程共享内存的大小 buffers/cached - 做为缓存的内存大小 swap - 交互空间的使用状态

关于内存的几个常见问题

1

空闲空间少,是不是内存不够了?

其实linux中空闲的物理空间经常是很少的,和linux使用内存的思路有关 linux会尽量提高内存使用率,经常会把磁盘上的内容缓存到内存,用来加速 linux认为内存闲着也是闲着,还不如拿来做缓存 当内存不足时,linux就会释放缓存部分,让给真正需要的程序使用

2

buffer 和 cache 是什么区别?

buffer 缓存的是磁盘文件的元数据,例如文件属性、目录结构等等 cache 缓存的是真正的文件内容

3

如何判断内存真正不足?

内存不足主要有2个明显的表现 (1)持续的内存换入换出 (2)较多的主缺页中断 主缺页中断的概念: 缺页中断包含主/次缺页中断 次缺页中断,是在内存中可以找到目标页 主缺页中断,是在内存中找不到,需要到磁盘中找 所以较多的主缺页中断意味着较多的访问磁盘 可以通过 sar 命令查看指标 # sar -B 1 3

pgpgin/pgpgout 就是内存的换入换出 fault 次缺页中断 majflt 主缺页中断 vmstat 命令也可以查看一些内存信息 # vmstat 1 5

memory 部分是内存信息 si/so 是交换区的换入换出 补充技巧 执行top命令后,通常不会显示SWAP列,需要自己指定显示 在top的界面中点击‘f’,进入列编辑模式,按下字母‘p’, 会看到SWAP列被选中,然后按回车键返回top界面,SWAP列便显示出来了

本文分享自微信公众号 - 性能与架构(yogoup),作者:杜亦舒

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2016-04-14

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • linux查看CPU和内存的使用情况

    image.png CPU使用情况 通常使用top命令查看CPU的当前状态,如果是多核CPU,也可以看到每核的信息 # top 执行后按数字1,可以显示多个CP...

    dys
  • Nginx的I/O性能为什么比Apache更高效?

    Nginx与Apache的I/O性能差距源于他们采用不同的I/O模型 Apache - select模型 Nginx - epoll模型 特点对比 se...

    dys
  • Redis3 添加新节点到集群

    向集群中添加新节点,有两种情况: (1)添加一个新节点,做为master,需要移动一部分slot到此节点 (2)添加一个新节点,做为slave,设置为集群中某个...

    dys
  • Spark Core源码精读计划24 | StaticMemoryManager——静态内存管理机制

    在上一篇文章的最后,我们阅读了内存管理器MemoryManager抽象类的源码,并且提到它有两种实现:静态内存管理器StaticMemoryManager、统一...

    暴走大数据
  • Android性能优化(四)之内存优化实战

    在上一篇《Android性能优化(三)之内存管理》中我们对Android的内存管理有了一定的认识,本篇文章从实际出发对内存进行优化,主要包含以下部分:

    用户2898788
  • Android 性能测试之内存性能及内存泄漏篇

    APP 占用内存的测试,要比 CPU 的更为简单。App memory 数据来源是 dumpsysmeminfo 。Android 程序内存主要是两部分:nat...

    陈帅
  • ECC(指令纠错) 内存

    对于大多数企业来说,消除数据损坏是一项关键任务——这正是 ECC(纠错码)内存的目的。 ECC 是一种指令纠错技术,能够检测并纠正常见的各种内存数据损坏情况,即...

    斯武丶风晴
  • Java中堆与栈的两种区别

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

    chenchenchen
  • Spark面对OOM问题的解决方法及优化总结

    map执行中内存溢出代表了所有map类型的操作,包括:flatMap,filter,mapPatitions等。shuffle后内存溢出的shuffle操作包括...

    王知无
  • Android 内存优化总结&实践

    导语 智能手机发展到今天已经有十几个年头,手机的软硬件都已经发生了翻天覆地的变化,特别是Android阵营,从一开始的一两百M到今天动辄4G,6G内存。然而大部...

    腾讯Bugly

扫码关注云+社区

领取腾讯云代金券