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

linux系统之vmcore:kdump 的亲密战友 crash

什么是 crash 如前文所述,当 linux 系统内核发生崩溃的时候,可以通过 kdump 等方式收集内核崩溃之前的内存,生成一个转储文件 vmcore。...需要有一个内存崩溃转储文件(例如 vmcore),或者可以通过 /dev/mem 或 /dev/crash 访问的实时系统内存。...如果 crash 命令行没有指定转储文件,则 crash 默认使用实时系统内存,这时需要 root 权限。...kernel 文件 DUMPFILE: 内核转储文件 CPUS: 所在机器的 CPU 数量 DATE: 系统崩溃的时间 TASKS: 系统崩溃时内存中的任务数 NODENAME: 崩溃的系统主机名 RELEASE...系统内核发生崩溃的时候,可以通过 kdump 等方式收集内核崩溃之前的内存,生成一个转储文件 vmcore。

8K21

Electron 应用问题排查解决方法

、参数错误等2 Electron 应用处理方法2.1 JavaScript 层导致针对 JavaScritpt 导致,需要找到出现路径,一步步调试基本可以发现问题原因,做一些防御性编程就可以规避...www.xxx.com', // 上传到服务器的地址 uploadToServer: false, // 不上传服务器 ignoreSystemCrashHandler: false, // 不忽略系统自带的处理...,为 true 时表示忽略,时不会生成堆栈文件});以上代码不能保证每次,都收集到堆栈,但如果较频繁,很可能在某次时生成,如果发现生成了堆栈,一定不要视而不见,对于偶现的问题...GPU 进程的事件接口,监听这些事件,可以知道何时发生了,但的具体原因一般看不出来,需要获取堆栈的 dump 文件。...分析堆栈文件需要提供:堆栈文件、SDK 版本号、操作系统平台信息、SDK本地日志(非必须,最好提供).SDK 本地日志路径,可以参阅相关 API 文档。图片QQ 群:695855795

7.9K20
您找到你想要的搜索结果了吗?
是的
没有找到

OpenFeign的9个坑,每个都能让你的系统

如果不做特殊配置,OpenFeign默认使用jdk自带的HttpURLConnection,我们知道HttpURLConnection没有连接池、性能和效率比较低,如果采用默认,很可能会遇到性能问题导致系统故障...如下图,在一个系统中使用OpenFeign调用外部三个服务,每个服务提供两个接口,其中serviceC的一个接口需要60才能返回,那上面的readTimeout必须设置成60s。...但是如果serviceA出故障了,表现是接口1超过60s才能返回,这样OpenFeign只能等到读超时,如果调用这个接口的并发量很高,会大量占用连接资源直到资源耗尽系统。...但是问题又来了,serviceC中又掉了serviceD,因为serviceD的故障导致接口6发生了读超时的情况,为了不让系统,不得不对serviceC的接口5单独设置超时时间。

2K20

OpenFeign的9个坑,每个都能让你的系统

如果不做特殊配置,OpenFeign默认使用jdk自带的HttpURLConnection,我们知道HttpURLConnection没有连接池、性能和效率比较低,如果采用默认,很可能会遇到性能问题导致系统故障...如下图,在一个系统中使用OpenFeign调用外部三个服务,每个服务提供两个接口,其中serviceC的一个接口需要60才能返回,那上面的readTimeout必须设置成60s。...但是如果serviceA出故障了,表现是接口1超过60s才能返回,这样OpenFeign只能等到读超时,如果调用这个接口的并发量很高,会大量占用连接资源直到资源耗尽系统。...但是问题又来了,serviceC中又掉了serviceD,因为serviceD的故障导致接口6发生了读超时的情况,为了不让系统,不得不对serviceC的接口5单独设置超时时间。

7.3K33

系统内存管理:虚拟内存内存分段分页、页表缓存TLB以及Linux内存管理

这样,进程可以以一种透明的方式访问内存,无需关心内存的实际物理位置。通过虚拟内存机制,操作系统能够更好地管理系统内存资源,提供更高的安全性和稳定性。...虚拟地址物理地址之间通过页表进行映射,页表存储在CPU的内存管理单元(MMU)中,从而CPU可以直接通过MMU找到实际访问的物理内存地址。...在CPU芯片中,内存管理单元(Memory Management Unit)芯片负责处理地址转换和TLB的访问交互。...Linux内存管理Linux内存管理涉及逻辑地址和线性地址的转换。逻辑地址是程序使用的地址,而线性地址是通过段式内存管理映射的地址,也称为虚拟地址。...Linux内存管理涉及逻辑地址和线性地址的转换,将虚拟地址空间分为内核空间和用户空间,方便进程访问内核空间内存。我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!

42680

Linux内存管理KSMA攻击

本文主要记录对该攻击方法的原理分析以及Linux内核中相关内存管理部分。...扯远了,总之目前就是内存管理单元,或者说内存管理模块,实现虚拟地址到物理地址的转换。...操作系统内存管理 程序员一般还知道,我们通常运行一个命令,就启动了一个进程,每个进程有自己独立的地址空间,并相互隔离,这是操作系统所要实现的一个基本功能。...所以,操作系统需要有一种方法去给不同进程分配物理内存并进行管理,而且一般是动态管理。...分页分段 为了使多个进程可以同时在有限的内存中运行,那就需要操作系统时不时将用不到的数据或者代码放在交换分区,充分利用硬件资源。

1.2K40

Linux - Linux内存管理

文章目录 概念 物理内存和虚拟内存 内存的监控 从内核的角度来查看内存的状态 从应用层的角度来看系统内存的使用状态 缓冲区(buffer)缓存(cache)的异同 交换空间的使用 创建交换空间 激活和使用交换空间...移除交换空间 ---- 概念 内存管理Linux系统重要的组成部分。...当需要用到原始内容时,这些信息会被重新从交换空间读入物理内存Linux内存管理采取的是分页存取机制。...---- 缓冲区(buffer)缓存(cache)的异同 在Linux操作系统中,当应用程序需要读取文件中的数据时,操作系统先分配一些内存,将数据从磁盘读入这些内存中,然后再将数据分发给应用程序;当需要往文件中写入数据时...在这种情况下,Linux引入了缓冲区和缓存机制。 缓冲区缓存都是内存操作,用来保存系统曾经打开过的文件以及文件属性信息。

52.1K41

Linux内核内存管理漏洞利用

前言 网上已经有很多关于Linux内核内存管理的分析和介绍了,但是不影响我再写一篇:一方面是作为其他文章的补充,另一方面则是自己学习的记录、总结和沉淀。...伙伴系统 伙伴系统即Buddy System,是一种简单高效的内存分配策略。其主要思想是将大块内存按照一定策略去不断拆分(在到达最小的块之前),直至存在满足指定请求大小的最小块。...使用Buddy算法的的应用有很多,其中Linux内核就是一个,此外jemalloc也是使用Buddy技术的一个现代内存分配器。 Linux内核中的伙伴系统块大小为一页,通常是4096字节。...【文章福利】【Linux内核内存管理专题训练营】火热开营!!...最新Linux内核技术详解 独家Linux内核内存管理干货分享 入营地址:inux内核内存管理专题训练营 两天持续技术输出: -------------------- 第一天: 1.物理内存映射及空间划分

2.3K00

Linux内存管理

本篇介绍 本篇介绍下Linux内存管理,用系统角度看内存的寻址和分配机制。 内容介绍 内存管理应该是系统中最难的模块之一了,而且历史也悠久,就先来简单回顾下。...分段和分页 谈到内存管理,最先想到的就是分段和分页机制。...分页把地址空间按照页框来管理,一般是4k,也有其他款式的,总之要和物理内存的页框大小匹配上。这样内存就按照页框的粒度来管理就好了。...mmap流程如下: image.png 缺页异常 linux 是在不得不使用物理内存的时候才会分配物理内存。这句话该怎么理解呢?...查看伙伴信息信息的内存节点是/proc/pagetypeinfo 和 /proc/buddyinfo 查看内存管理区的内存节点是/proc/zoneinfo 用top 和vmstat也可以看到系统内存信息

13.6K51

Linux 内存管理

操作系统内存管理包括物理内存管理和虚拟内存管理:       我们这篇主要介绍Linux的虚拟内存管理。...物理内存管理在另外一篇:《操作系统内存管理(思维导图详解)》       1、程序的进程在内存的数据结构  一.Linux 进程在内存数据结构 ---- 1、存储(没有调入内存)阶段:       可以看到一个可执行程序在存储...虚拟内存物理内存的区别:虚拟内存就与物理内存相反,是指根据系统需要从硬盘虚拟地匀出来的内存空间,是一种计算机系统内存管理技术,属于计算机程序,而物理内存为硬件。...应用程序员仅需逻辑地址打交道,而分段和分页机制对您来说是完全透明的,仅由系统编程人员涉及。应用程序员虽然自己可以直接操作内存,那也只能在操作系统给你分配的内存段操作。...并且提供段 内分页管理机制 .   为 Linux虚拟内存管理机制提供了支持 。

7.5K10

伙伴系统之伙伴系统概述--Linux内存管理(十五)

管理工作较少, 是伙伴系统的一个主要优点. 基于伙伴系统内存管理专注于某个结点的某个内存域, 例如, DMA或高端内存域. 但所有内存域和结点的伙伴系统都通过备用分配列表连接起来....但在Linux内存管理方面,有一个长期存在的问题:在系统启动并长期运行后,物理内存会产生很多碎片。该情形如下图所示 ? 假定内存由60页组成,这显然不是超级计算机,但用于示例却足够了。...请注意很重要的一点, 页的迁移类型是预先分配好的, 对应的比特位总是可用, 页是否由伙伴系统管理无关. 在释放内存时,页必须返回到正确的迁移链表。...这种惯例设计得很好的用户层应用程序没什么不同, 但在内核中忽略检查会导致严重得多的故障 内核除了伙伴系统函数之外, 还提供了其他内存管理函数. 它们以伙伴系统为基础, 但并不属于伙伴分配器自身....2order页返回给内存管理系统

2.9K50

kmalloc分配物理内存高端内存映射--Linux内存管理(十八)

它与通过固定公式物理内存关联的直接映射页相反,虚拟固定映射地址物理内存位置之间的关联可以自行定义,关联建立后内核总是会注意到的. ?...在分配内存失败可能给内核带来严重后果时(比如威胁到系统稳定性或系统崩溃), 总是会使用该标志 __GFP_MEMALLOC __GFP_NOMEMALLOC __GFP_IO 说明在查找空闲内存期间内核可以进行...在VFS层有联系的内核子系统中必须禁用, 因为这可能引起循环递归调用....如果有可能的话, 在内存管理系统之外, 总是把下列分组之一用于内存分配. 在内核源代码中, 双下划线通常用于内部数据和定义. 而这些预定义的分组名没有双下划线前缀, 点从侧面验证了上述说法....二者的失败不会立即威胁系统稳定性, GFP_KERNEL绝对是内核源代码中最常使用的标志 最后内核设置了碎片管理的可移动依据组织页的MASK信息GFP_MOVABLE_MASK, 参见include/linux

6.3K21

Linux 内核 内存管理内存管理架构 ① ( 内存管理架构组成 | 用户空间 | 内核空间 | MMU 硬件 | Linux 内核架构层次 | Linux 系统调用接口 )

文章目录 一、内存管理架构组成 ( 用户空间 | 内核空间 | MMU 硬件 ) 二、Linux 内核架构层次 三、Linux 系统调用接口 一、内存管理架构组成 ( 用户空间 | 内核空间 | MMU...组成 ; 层次架构如下 : Linux 内核 需要 " 管理硬件 " , 如 : CPU 处理器 , 内存 , I/O 设备 , 网络设备 等 ; Linux 内核 还需要 向上层的 " 应用程序..." 或 " Library Routine " 提供 API 接口 , 如 : 系统调用 ; 三、Linux 系统调用接口 ---- " 系统调用 " 接口 , 可以调用 " " Linux 内核 "...中的如下功能 : ① 进程调度 : 内核 调用 CPU 处理器 实现 进程调度 ; ② 内存管理 : 内核 调用 物理内存 实现 内存管理 ; ③ IPC 跨进程通信 ④ VFS 虚拟文件系统...⑤ 网络管理 : 内核 调用 网络接口 , 实现 网络管理 ; " 设备管理 " 对用户是透明的 , 用户不直到 Linux 内核是如何管理设备的 , 系统调用接口没有关于 " 设备管理 " 的调用接口

9.4K40

Linux 内核 内存管理内存管理系统调用 ④ ( 代码示例 | mmap 创建内存映射 | munmap 删除内存映射 )

文章目录 一、mmap 创建内存映射代码示例 1、fopen 打开或创建文件 2、lseek 设置文件大小 3、mmap 函数使用 4、munmap 删除内存映射 二、完整代码示例 一、mmap 创建内存映射代码示例..., 该内存页的内容可以 读取 写入 MAP_SHARED : 指定映射关系 , 指的是该映射是进程的共享内存空间 fd : 文件描述符 , 被映射的文件 0 : 被映射文件的偏移量 , 从文件的哪个字节位置开始映射...// PROT_READ | PROT_WRITE : 内存保护的标志位 , 该内存页的内容可以 读取 写入 // MAP_SHARED : 指定映射关系 , 指的是该映射是进程的共享内存空间..., 该内存页的内容可以 读取 写入 // MAP_SHARED : 指定映射关系 , 指的是该映射是进程的共享内存空间 // fd : 文件描述符 , 被映射的文件 //..., 该内存是文件映射内存 // 拷贝内存的同时 , 也会修改文件内容 memcpy((*(p_student + i)).name, &name_char, 1);

1.4K10

Linux 内核 内存管理Linux 内核堆内存管理 ② ( 动态分配堆内存方式 | brk 系统调用 | mmap 系统调用 | brk 系统调用源码介绍 )

文章目录 一、Linux 系统 动态分配堆内存 方式 二、brk 系统调用 动态分配堆内存 一、Linux 系统 动态分配堆内存 方式 ---- Linux 系统中 , 提供了 2 种方式 进行 "...动态分配堆内存 " 操作 ; ① brk 系统调用 : 该方式本质是 设置 " 进程数据段 “ 的 结束地址 , 将该 ” 结束地址 " 向 高或低 移动 , 实现堆内存的 扩张或收缩 ; ② mmap...系统调用 : 向 Linux 操作系统 申请 " 虚拟地址空间 " 内存 , 并且将某个文件 " 映射 “ 到该申请的内存中 ; 如果 不需要映射文件 到该空间中 , 则该空间就是 ” 匿名空间 "..., 可作为 " 堆内存 " 使用 ; 二、brk 系统调用 动态分配堆内存 ---- " brk 系统调用 “ 可以指定 ” 堆内存 “ 在 ” 虚拟内存空间 “ 的 ” 结束地址 " ; 如果要 "...扩张 " 堆内存 , 可以将 结束地址 " 大于当前值 " , 如果要 " 收缩 " 堆内存 , 可以将 结束地址 " 小于当前值 " ; brk 系统调用 源码在 Linux 源码中的 linux-5.6.18

5K20

Linux 内核 内存管理内存管理系统调用 ② ( mmap 创建内存映射 | mmap 创建内存映射 malloc 申请内存对比 | mmap 创建内存映射 普通文件操作对比 )

" , glibc 库 的 " 内存分配器 " ptmalloc , 负责调用 系统接口层 的 brk sbrk mmap munmap 等系统调用 申请内存 ; ② 系统调用 : 用户空间 的 内存管理函数...函数之间的 桥梁 ; ③ 内核层调用 : 内核用户层接口 的 内存管理函数 调用 " Linux 内核 " 中的 kmalloc vmalloc 函数 ; 参考 【Linux 内核 内存管理内存管理架构...④ ( 内存分配系统调用过程 | 用户层 malloc free | 系统调用层 brk mmap | 内核层 kmalloc | 内存管理流程 ) 博客 ; 3、malloc 使用的系统调用判定 (...KB ; 使用 brk 系统调用 : 如果 应用程序 申请的内存大小 小于 划分阈值 , glibc 库 的 ptmalloc " 内存分配器 " 会使用 brk 系统调用 , 向 Linux 内核申请内存...; 4、mmap 创建内存映射 mmap 可以直接向 Linux 内核申请 " 虚拟内存 " , 不需要经过 " 用户态 “ ” 内核态 " 之间的转换 ; 二、mmap 创建内存映射 普通文件操作

6K20

Linux 内核 内存管理内存管理系统调用 ⑤ ( 代码示例 | 多进程共享 mmap 内存映射示例 )

文章目录 一、进程一描述 二、进程二描述 三、mmap 进程共享内存展示 一、进程一描述 ---- 在上一篇博客 【Linux 内核 内存管理内存管理系统调用 ④ ( 代码示例 | mmap 创建内存映射...| munmap 删除内存映射 ) 中 , 完成了 进程一 的程序 , 在该进程中 , 创建并打开文件 , 为该文件设置大小 , 使用 mmap 创建 " 文件映射 " , 并通过直接访问内存的方式...秒 , 在这段休眠的时间段 , 运行 进程二 , 在 进程二中 , 创建相同文件的 mmap " 文件映射 " , 读取在 进程一 中写入的文件内容 ; 二、进程二描述 ---- 进程二 的源码 , 上一篇博客...【Linux 内核 内存管理内存管理系统调用 ④ ( 代码示例 | mmap 创建内存映射 | munmap 删除内存映射 ) 中 进程一 源码类似 , 只是将写入 mmap 文件映射 数据 , 修改为..., 该内存页的内容可以 读取 写入 // MAP_SHARED : 指定映射关系 , 指的是该映射是进程的共享内存空间 // fd : 文件描述符 , 被映射的文件 //

3.5K30

Linux系统文件目录管理

Linux系统的文件目录的管理上,不外乎『显示属性』、『拷贝』、『删除文件』、『移动文件或目录』、『重命名』等常用操作,由于文件目录的管理Linux当中是很重要的,尤其是每个人自己家目录的数据也都需要管理...,所以我们来谈一谈有关文件目录的一些基础管理部分吧...《鸟哥的Linux私房菜 (基础学习篇 第三版)》 - 作者:鸟哥 《Linux就该这么学》 - 作者:刘遄 ◆ls 显示目录或文件◆ ls命令用来显示目标列表,在Linux系统中是使用率较高的命令....-A #显示所有文件,包括隐藏文件,但不列出......[root@localhost ~]# ls linux [root@localhost ~]# rm -fr linux/ [root@localhost ~]# ls 实例2:使用 rm -fr *

3.2K20

伙伴系统之避免碎片--Linux内存管理(十六)

1 前景提要 1.1 碎片化问题 分页分段 页是信息的物理单位, 分页是为了实现非连续分配, 以便解决内存碎片问题, 或者说分页是由于系统管理的需要....解答: 在存储管理中 内碎片是指分配给作业的存储空间中未被利用的部分 在固定式分区分配中, 为将一个用户作业装入内存, 内存分配程序从系统分区表中找出一个能满足作业要求的空闲分区分配给作业, 由于一个作业的大小并不一定分区大小相等...在固定分区管理算法中, 分给程序的内存空间往往大于程序所需的空间, 这剩余部分的空间不能被其他程序所用, 这就是”内部碎片” 1.2 今日内容(buddy伙伴系统如何避免碎片) Linux伙伴系统分配内存的大小要求...但在Linux内存管理方面,有一个长期存在的问题 : 在系统启动并长期运行后,物理内存会产生很多碎片。该情形如下图所示 ? 但对内核来说,碎片是一个问题....请注意很重要的一点, 页的迁移类型是预先分配好的, 对应的比特位总是可用, 页是否由伙伴系统管理无关. 在释放内存时,页必须返回到正确的迁移链表。

3.1K30
领券