首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Linux内存吃掉了,它去哪里了?

而当我们使用free命令查看Linux系统内存使用情况时,会发现内存使用一直处于较高的水平,即使此时系统并没有运行多少软件。...这正是Windows和Linux内存管理上的区别,乍一看,Linux系统吃掉我们的内存Linux ate my ram),但其实这也正是其内存管理的特点。 ?...,由于这块内存从操作系统的角度确实使用,但如果用户要使用,这块内存是可以很快被回收用户程序使用,因此从用户角度这块内存应划为空闲状态。...其实不然,Linux并没有吃掉你的内存,只要还未使用到交换分区,你的内存所剩无几时,你应该感到庆幸,因为Linux缓存了大量的数据,也许下一次你就从中受益。.../ 前两天在Hacker News看到”Linux ate my ram”这个网页,的通俗易懂,也顺藤摸瓜解决心中很多疑惑 http://www.linuxatemyram.com/play.html

1.5K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Linux 内存中的Cache,真的能回收么?

    这种人的反应反而让人感觉最不懂Linux,他们的反应是:free显示的是这样,好吧我知道了。神马?你问我这些内存够不够,我当然不知道啦!我特么怎么知道你程序怎么的?...cache都能回收么? 我们分析了cache能回收的情况,那么有没有不能回收的cache呢?当然有。...在进程对相关内存没有释放之前,这段cache也是不能正常释放的。 实际上,mmap的MAP_SHARED方式申请的内存,在内核中也是由tmpfs实现的。...我们当前实验场景是Centos 6的环境,不同版本的Linux的free现实的状态可能不一样,大家可以自己去找出不同的原因。 当然,本文所述的也不是所有的cache不能释放的情形。...那么,在你的应用场景下,还有那些cache不能释放的场景呢?

    2.8K110

    Linux 内存中的 Cache 真的能回收么?

    这种人的反应反而让人感觉最不懂 Linux,他们的反应是:free 显示的是这样,好吧我知道了。神马?你问我这些内存够不够,我当然不知道啦!我特么怎么知道你程序怎么的?...在历史上,它们一个(buffer)用来当成对 io 设备的缓存,而另一个(cache)用来当作对 io 设备的读缓存,这里的 io 设备,主要指的是块设备文件和文件系统上的普通文件。...cache都能回收么? 我们分析了 cache 能回收的情况,那么有没有不能回收的 cache 呢?当然有。...在进程对相关内存没有释放之前,这段 cache 也是不能正常释放的。实际上,mmap 的 MAP_SHARED 方式申请的内存,在内核中也是由 tmpfs 实现的。...我们当前实验场景是 Centos 6 的环境,不同版本的 Linux 的 free 现实的状态可能不一样,大家可以自己去找出不同的原因。 当然,本文所述的也不是所有的 cache 不能释放的情形。

    5.3K50

    为什么OpenAI不能计划?

    来自OpenAI科学家肯尼斯·斯坦利和乔尔·雷曼跨界撰写了一本思维奇书——《为什么伟大不能计划》。 两位作者持续多年扎根人工智能前沿领域,这本书是他们在科学研究的过程中迸出的意外火花。...为什么OpenAI不能计划?我们能把OpenAI的成功复制过来吗? 2023年8月15日(周二)19:00,新智元策划了一场与本书作者的直播访谈。...《为什么伟大不能计划》最初的创作思想起源于2015年。在此之后的8年间,您是否有了一些新的经历、时间积淀和个人成长的思考,让您感觉需要为这本书做补充?...《为什么伟大不能计划》一书最后,您对AI领域存在的评审制度和同仁规则提出了质疑。时隔8年,您认为这种以目标为导向的生态是否有所改变呢?...他与肯尼斯合著了《为什么伟大不能计划》,讲述了人工智能搜索算法对个人和社会成就的影响。他的专业研究重点是:机器创造力、进化计算和人工智能的安全性。

    15410

    Linux 内核 内存管理】优化内存屏障 ② ( 内存屏障 | 编译器屏障 | 处理器内存屏障 | 内存映射 IO 屏障 )

    文章目录 一、内存屏障 二、编译器屏障 三、处理器内存屏障 一、内存屏障 ---- 内存屏障 , 又称为 " 屏障指令 " , 用于保证 " 编译器 “ 或 ” CPU “ 访问内存时 , 保证 按照顺序执行..., 即 ” 内存屏障 之前 “ 的指令 与 ” 内存屏障 之后 " 的指令 不会犹豫 编译器 和 CPU 优化导致 顺序混乱 ; " 指令 " 优化主要分 2 种 : ① 编译器优化 : 为了 提高程序执行性能...调整程序指令的执行顺序 ; ② CPU 执行优化 : 该优化是为了 提高 " 流水线 " 性能 , 但是 CPU 执行优化会导致 指令乱序执行 , 后面的指令先于前面的指令执行 , 导致 寄存器中的值冲突 ; Linux...内核支持的 3 种内核屏障 : ① 编译器屏障 ② 处理器内存屏障 ③ 内存映射 I/O 屏障 , 全称 Memory Mapping I/O , 简称 MMIO , 目前已经弃用 ; 二、编译器屏障...---- " 处理器内存屏障 “ 针对 ” CPU " 之间的内存访问乱序 和 CPU 访问外设乱序 问题 ; 为了 提高 " 流水线 " 性能 , 新式处理器可以采用 " 超标量 体系结构 “ 和

    2.4K30

    Linux内存描述之高端内存--Linux内存管理(五)

    但是,当Linux物理内存超过1G时,线性访问机制就不够用了,因为只能有1G的内存可以映射,剩余的物理内存无法内核管理,所以,为了解决这一问题,Linux把内核地址分为线性区和非线性区两部分,线性区规定最大为...当物理内存大于1G的时候, 内核是不能完全用低端内存管理全部物理内存的, 所以低端内存剩下的部分就是高端内存了, 高端内存没有直接映射的, 是动态映射到内核空间的....但是有些控制路径不能阻塞,例如一些内核路径产生一些原子内存分配请求。尽管无法保证一个原子内存分配请求不失败,但是内核会减少这中概率。...不能用于大于896M的高端内存。...每当一个进程调度(schedule())即将进入运行态时,Linux内核都要用该进程的PGD指针设 置CR3(switch_mm())。

    12.4K23

    Linux - Linux内存管理

    例如,一个占用很大内存的进程运行时,需要耗费很多内存资源,因此就会有一些不常用页面文件交换到虚拟内存中。...最后,交换空间的页面在使用时会首先交换到物理内存中。...当应用程序需要用到内存的时候,buffers/cache会很快地回收,以供应用程序使用。...然而,如果有大量数据需要从磁盘读取到内存或者由内存写入磁盘,系统的读写性能就变得非常低下。 因为无论是从磁盘读数据,还是数据到磁盘,都是一个很消耗时间和资源的过程。...创建交换空间 创建交换空间所需的交换文件是一个普通的文件,但是,创建交换文件与创建普通文件不同,必须通过dd命令来完成,同时这个文件必须位于本地硬盘上,不能在网络文件系统(NFS)上创建交换文件。

    52.3K41

    ifconfig详解_linux不能ifconfig

    功能:ifconfig命令用于配置和显示Linux内核中网络接口的网络参数。用ifconfig命令配置的网卡信息,在网卡重启后机器重启后,配置就不存在。...>:设置网络设备的类型与硬件地址; io_addr:设置网络设备的I/O地址; irq:设置网络设备的IRQ; media:设置网络设备的媒介类型; mem_start:设置网络设备在主内存所占用的起始地址; metric:指定在计算数据包的转送次数时,所要加上的数目; mtu:设置网络设备的MTU; netmask:设置网络设备的子网掩码...第三行:UP(代表网卡开启状态)RUNNING(代表网卡的网线接上)MULTICAST(支持组播)MTU:1500(最大传输单元):1500字节。 第四、五行:接收、发送数据包情况统计。...ssh登陆linux服务器操作要小心,关闭了就不能开启了,除非你有多网卡。

    2.6K10

    Linux内存描述之内存节点node--Linux内存管理(二)

    因此linux内核需要用一种体系结构无关的方式来表示内存....UMA结构来说, 内核把内存当成只有一个内存node节点的伪NUMA 1.2 内存结点的概念 CPU划分为多个节点(node), 内存分簇, 每个CPU对应一个本地物理内存, 即一个CPU-node...对应一个内存簇bank,即每个内存认为是一个节点 系统的物理内存划分为几个节点(node), 一个node对应一个内存簇bank,即每个内存认为是一个节点 内存划分为结点...., Linux采用节点局部分配的策略, 从最靠近运行中的CPU的节点分配内存, 由于进程往往是在同一个CPU上运行, 因此从当前节点得到的内存很可能用到 1.3 pg_data_t描述内存节点 表示node...内存域同样用类似的方法设置, 仅当系统中存在ZONE_MOVABLE内存内存域(配置了CONFIG_MOVABLE_NODE参数)时, N_MEMORY才设定, 否则则设定成N_HIGH_MEMORY

    7.8K21

    Linux内存描述之内存页面page--Linux内存管理(四)

    1 Linux如何描述物理内存 Linux把物理内存划分为三个层次来管理 层次 描述 存储节点(Node) CPU划分为多个节点(node), 内存分簇, 每个CPU对应一个本地物理内存, 即一个...页面(Page) 内存细分为多个页面帧, 页面是最基本的页面分配的单位 首先内存划分为结点....是系统中预留的可用内存空间, 不能内核直接映射. 最后页帧(page frame)代表了系统内存的最小单位, 堆内存中的每个页都会创建一个struct page的一个实例....简单来说, 页是一个数据块, 可以存放在任何页框(内存中)或者磁盘(交换至交换分区)中 我们今天就来详细讲解一下linux下物理页帧的描述 2 页帧 内核把物理页作为内存管理的基本单位....当PFRA决定要回收某个page后,需要设置该标志 PG_swapbacked 该page的后备存储器是swap PG_unevictable 该page锁住,不能交换,并会出现在LRU_UNEVICTABLE

    8.3K11

    Linux内存描述之概述--Linux内存管理(一)

    Linux内核通过插入一些兼容层, 使得不同体系结构的差异很好的隐藏起来, 内核对一致和非一致内存访问使用相同的数据结构 2.1 (N)UMA模型中linux内存的机构 非一致存储器访问(NUMA)模式下...而内存管理的其他地方则认为他们就是在处理一个(伪)NUMA系统. 2.2 Linux物理内存的组织形式 Linux把物理内存划分为三个层次来管理 层次 描述 存储节点(Node) CPU划分为多个节点...是系统中预留的可用内存空间, 不能内核直接映射. 最后页帧(page frame)代表了系统内存的最小单位, 堆内存中的每个页都会创建一个struct page的一个实例....ISA总线的直接内存存储DMA处理器有一个严格的限制 : 他们只能对RAM的前16MB进行寻址 在具有大容量RAM的现代32位计算机中, CPU不能直接访问所有的物理地址, 因为线性地址空间太小, 内核不可能直接映射所有物理内存到线性地址空间...2.6 高端内存 由于能够Linux内核直接访问的ZONE_NORMAL区域的内存空间也是有限的,所以LINUX提出了高端内存(High memory)的概念,并且允许对高端内存的访问

    6.9K30

    Linux内存描述之内存区域zone--Linux内存管理(三)

    是系统中预留的可用内存空间, 不能内核直接映射....3 内存管理区类型zone_type 前面我们说了由于硬件的一些约束, 低端的一些地址用于DMA, 而在实际内存大小超过了内核所能使用的现行地址的时候, 一些高地址处的物理地址不能简单持久的直接映射到内核空间...ZONE_NORMAL类型的内存区域直接内核映射到线性地址空间上面的区域(line address space),ZONE_HIGHMEM将保留给系统使用,是系统中预留的可用内存空间,不能内核直接映射...例如, 如果AMD64系统只有两2G内存, 那么所有的内存都属于ZONE_DMA32范围, 而ZONE_NORMAL则为空 ZONE_HIGHMEM 标记了超出内核虚拟地址空间的物理内存段, 因此这段地址不能内核直接映射...位系统中, Linux内核虚拟地址空间只有1G, 而0~895M这个986MB用于DMA和直接映射, 剩余的物理内存成为高端内存.

    9.3K31
    领券