首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    字节跳动提出 KVM 内核热升级方案,效率提升 5.25 倍

    目前,在各个开源社区(如 Linux,QEMU,CloudHypervisor 等)和各大云计算公司,都在积极地尝试对 KVM 的热升级支持进行研发,也是历年各大技术峰会的一个重要研讨主题。...其中 E820 type 12 是一个 NVDIMM 类型(例如 memmap = 2G!6G)。 这个类型的物理页,将不再被内核动态管理,而是作为“非易失性内存”来看待。...kram_get_fixed_page(area, index) kram_alloc_page() 在 E820 的 enum 中定义新的 type 用以预留物理页给 KRAM:memmap=*:*...字节跳动系统与技术工程团队将会继续优化 Linux 内核和虚拟化软件,为数据中心持续提供安全、稳定、高效运行的系统软件。...10 年系统工程师工作经验,关注 Linux 内核、虚拟化、性能等领域。当前主要负责 KVM 虚拟化研发和系统性能优化工作。

    1K20

    干货:Linux 文件系统与持久性内存介绍

    所有这些配置好之后就开始编译以及安装内核: # make -j9 # make modules_install install 然后进入到新编译的内核Linux-4.15中 使用下面的命令打印出e820...表: dmesg | grep e820 得到如下的内容: [0.000000] e820: BIOS-provided physical RAM map: [0.000000] BIOS-e820...配置选项通过GRUB传递给内核,更改GRUB菜单项和内核参数在Linux发行版本之间有所不同,下面是一些常见Linux发行版的说明。有关更多信息,请参阅正在使用的Linux发行版和版本的文档。...内存区域将标记为e820类型12(0xc),这在引导时可见,使用dmesg命令查看这些消息。 $ dmesg | grep e820 GRUB配置中的'memmap=4G!...使用或与保留内存重叠可能导致损坏或未定义的行为,此信息可通过dmesg在e820表中轻松获得。

    2.7K10

    内存管理的另辟蹊径 - 腾讯云虚拟化开源团队为内核引入全新虚拟文件系统(dmemfs)

    Linux内存管理概述 我们知道linux系统内核的主要工作之一是管理系统中安装的物理内存,系统中内存是以page页为单位进行分配,每个page页的大小是4K,如果我们需要申请使用内存则内核的分配流程是这样的...我们知道内核的内存信息全部来自e820表, 这部分e820信息只提供了内存的区间描述和类型,无法提供NUMA节点信息, 所以必须在memblock初始化之后, 内核buddy伙伴系统初始化之前做好内存预留...当触发了MCE时, 在Linux内核流程中会检查这个物理页面是否属于dmem管理, 我们在基于每个连续内存块的dmem region内引入了一个error_bitmap, 这是以物理页面为单位的, 来记录当前系统中发生过...P.S Tencent Cloud(腾讯云)虚拟化开源团队正在招聘Linux内核/虚拟化/容器大牛,详情请查看次条文章,好机会别错过哦~

    1.5K20

    物理内存管理

    前言: 书接上回《内存映射技术分析》,继续来分析一下linux的物理内存管理。 分析: 1,物理内存 PC上的内存条,或者手机上的内存芯片,物理上实实在在的内存,就是物理内存。...Orz 2,e820 使用dmesg查看内核log: 从时间上也看得出来,在kernel启动的早期阶段,会得到物理内存的RAM map。 ?...6,buddy system Linux的内存管理的核心算法,就是“伙伴系统”。...在linux-4.0.4/mm/page_alloc.c中: ? 其中MAX_ORDER是11,所以order最大也就是10,因此linux上从buddy system可以申请最大的连续内存就是4M。...就是说,让Linux在管理这些memory block的时候,跳开两个不连续的block中间的hole,节省一些page struct占用的内存。

    2.7K70

    Linux-3.14.12内存管理笔记【建立内核页表(1)】

    前面已经分析过了Intel的内存映射和linux的基本使用情况,已知head_32.S仅是建立临时页表,内核还是要建立内核页表,做到全面映射的。...; } if (last_pfn > max_arch_pfn) last_pfn = max_arch_pfn; printk(KERN_INFO "e820...max_arch_pfn = %#lx\n", last_pfn, max_arch_pfn); return last_pfn; } 这个函数用来查找最大物理的页面帧号,通过对e820...所以Linux为了保持良好的兼容性和移植性,系统设计成了以下的4级分页模型,根据平台环境和配置的情况,通过将页上级目录和页中间目录的索引位设置为0,从而隐藏了页三级目录和页中间目录的存在。...由此管中窥豹,看到了Linux内存分页映射模型的存在和相关设计,暂且也就先了解这么多。 分析宏是一件很乏味的事情,不过以小见大却是一件很有意思的事情。

    1.9K41

    Linux-3.14.12内存管理笔记【系统启动阶段的memblock算法(2)】

    其结构体定义: 【file:/include/linux/memblock.h】 struct memblock { bool bottom_up; /* is bottom up direction...往下看看memory和reserved的结构体memblock_type定义: 【file:/include/linux/memblock.h】 struct memblock_type { unsigned...total_size则表示当前状态(memory/reserved)的空间大小(也就是可用的内存块信息大小总和),而regions则是用于保存内存块信息的结构(包括基址、大小和标记等): 【file:/include/linux...memblock_dump_all(); } 该函数的实现中,调用了memblock_allow_resize() 仅是用于置memblock_can_resize的值;里面的for则是用于循环遍历e820...现在很明了,可以看到其功能作用是把e820图里面的内存布局转换到memblock管理算法当中的memblock.memory进行管理,表示该内存可用。

    1.1K20

    Linux - Linux内存管理

    为了解决内存紧缺的问题,Linux引入了虚拟内存的概念。为了解决快速存取,引入了缓存机制、交换机制等。...要深入了解Linux内存运行机制,需要知道下面提到的几个方面。 首先,Linux系统会不时地进行页面交换操作,以保持尽可能多的空闲物理内存。...其次,Linux进行页面交换是有条件的,不是所有页面在不用时都交换到虚拟内存中,Linux内核根据“最近最经常使用”算法,仅仅将一些不经常使用的页面文件交换到虚拟内存中。...Linux虽然可以在一段时间内自行恢复,但是恢复后的系统已经基本不可用了。...Linux下可以使用文件系统中的一个常规文件或者一个独立分区作为交换空间。同时Linux允许使用多个交换分区或者交换文件。

    52.4K41
    领券