zoukankan      html  css  js  c++  java
  • linux 内存之Mem和Swap

    Linux 内存概念

    1.Linux mem/swap/buffers/cached区别

    free命令相对于top,提供了更简洁的查看系统内存使用情况:

    # free -m
    # 以M为单位显示内存使用情况
    

    mem:表示物理内存统计

    buff/cache:表示物理内存的缓存统计

    swap:表示硬盘上交换分区的使用情况

    系统当前真正可用的内存并不是第一行 free 标记的,仅代表未被分配的内存。

    2.buff/cache

    buff/cache主要干啥来的?

    Linux具有先进的缓存机制,会针对dentry(用于VFS-虚拟文件系统,加速文件路径名到inode的转换)、buffer cache(针对磁盘块的读,写)和 page cache(针对文件 inode 的读写)进行缓存操作来提高读写效率。但是在进行了大量文件操作之后,缓存会把内存资源基本用完,虽然文件读取效率提高了,但是物理内存会被逐渐吃完。

    原来是因为系统进行了频繁的文件读写操作,但是为什么操作系统不会主动回收呢,原来是因为drop_caches 的默认参数设置的就是不释放。

    drop_caches的值可以是 0-3 之间的数字,代表不同的含义:

      0:不释放(系统默认值)
    
      1:释放页缓存
    
      2:释放dentries和inode
    
      3:释放所有缓存
    
    # 修改: echo 1 > /proc/sys/vm/drop_caches
    

    3.Swap

    当Linux的物理内存快要被耗尽时,系统会把一些进程占用的内存转移到 swap 区,当物理内存被释放一部分时,swap 区的一些内存占用又慢慢回到 mem 区,但是 mem 区却不再是之前的满负荷状态,而是有一部分 free 的内存!

    【总结】

      1)当物理内存快被耗尽时,系统并没有崩溃,而是拿 swap 做临时内存,当两者都耗尽,系统 OutofMemory

      2)物理内存达到峰值,系统中一些不常用的进程内存占用被提到 swap 区

      3)当 Men 区的资源进行释放时,被挪到 swap 的内存并不会全部回来,随着系统或者程序的唤醒才会慢慢回到 men 区

      4)swap 是内存不够时,磁盘虚拟出来的内存,磁盘主要是 I/O 级别的操作,并不是系统内核级别的操作,处理速度跟 mem 区不是一个等级

    转载 & 查阅,原文:https://www.cnblogs.com/lili-xia/p/11506188.html

  • 相关阅读:
    基金进阶
    gpgj-19.高级课总结
    (10)大类资产配置一升级版股债平衡
    13.高速公路行业
    16.投资法总结以及类集团公司介绍
    08.零售类公司分析•上
    在Ubuntu 12.04系统中安装配置OpenCV 2.4.3的方法
    一台电脑上含有多个ubuntu系统的卸载方法
    Linux命令每日一个
    Java UDP实现聊天功能代码
  • 原文地址:https://www.cnblogs.com/davis12/p/14348148.html
Copyright © 2011-2022 走看看