Linux性能之内存篇

Posted climbmonkey

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux性能之内存篇相关的知识,希望对你有一定的参考价值。

 

  内存分为两种: 【虚存】和【实存】

  程序员控制进程开辟的内存空间为 虚拟内存空间。

  实际上,进程的物理内存空间只受操作系统控制。

  通过top看到, 虚拟地址空间---VIRT

          实际物理内存---RES

技术图片

 

 

 

  • 虚拟内存  和  实际物理内存之间,是通过内存映射建立关联关系
  • 为了完成内存映射, 系统为每个进程维护了一个  【页表】,记录【虚拟地址】和【实际物理地址】的关系
  • 管理的页表位于CPU的MMU上,由TLB(转换检测缓冲区)管理

 

技术图片

 

 

内存缓存:

  linux上缓存分为buffer,cache

  buffer 是用于读写磁盘缓存, cache是用于读写文件缓存

  

  磁盘和文件系统的区别: 

    磁盘是linux上的一个块设备,也是linux操作系统上一个大的块文件设备。

    文件系统:文件系统依托于磁盘,即磁盘是文件系统的载体。

  因为linux上一切皆文件,所以默认情况下,cache的缓存空间大于buffer

 

 

系统内存不够用怎么办?

  1.   回收缓存【ps:正在用的缓存页不回收, 脏页数据写入到磁盘中后回收】。

  2.   置换不常用的页空间到磁盘中【即swap发生作用,回收掉文件内存 or 匿名页】。

  3.   oom机制,杀死系统中占用内存大的进程。

 

为什么java应用系统一般建议关闭swap空间? 不关闭如何处理?

  java应用由于jvm的GC会扫描所有堆内存空间进行回收。若swap将引用的堆置换到了磁盘中,则会降低GC速度,影响到系统性能

  如果不关闭swap空间,可以将swap发生的权重设置swapness=0,再将swap发生时的内存空间设置大。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

技术图片

 

以上是关于Linux性能之内存篇的主要内容,如果未能解决你的问题,请参考以下文章

原创一文掌握 Linux 性能分析之 I/O 篇

性能分析 | Linux 内存占用分析

Linux性能监测:内存篇

Linux(CentOS)之-性能监控

Linux:性能优化-内存篇

Linux系统和性能监控之CPU篇