在运维的世界里,服务器的稳定运行是生命的灯塔,一旦遭遇异常重启,便是暴风雨来临的预兆。作为一名运维工程师,深知在这场与故障斗争的战役中,武器的锋利至关重要。今天,我要介绍的主角/工具——kdump,正是这样一款能在风雨来临之际,为我们捕获那一闪而过的真相的工具。
Linux操作系统在作为服务器的场景下应用最为广泛,但是在使用过程中也会遇到莫名崩溃的情况.这时我们就希望能对崩溃前一刻内存中的数据进行分析,从而找到崩溃的原因.本文将对整个过程所涉及到的技术做一个简单但是全面的介绍,包括:如何安装kdump,如何设置系统参数来捕获崩溃前的内存;如何使用crash做简单的分析;并且介绍如何使用更加简便的工具PyKdump来做crash文件的分析.通过了解这些知识, 可以帮助Linux运维人员更快更方便地排查问题.
最近因为搭建scutosc的论坛,买了一台新的腾讯云的2核4G的服务器,但是开机后发现htop命令显示内存只有3.3G:
KDUMP是Linux内核中的一项关键功能,用于在系统崩溃时生成内存转储(core dump)。这对于系统管理员和开发人员来说,分析和调试系统崩溃问题至关重要。本文将详细介绍KDUMP的工作原理、配置方法以及在实际操作中的应用。
前文《[linux][qemu]PVPanic的实现原理以及应用》中,介绍了pvpanic的原理和基本的使用方法,KVM虚拟化场景下,使用pvpanic驱动可以监控到Guest的panic。
Kdump是在系统崩溃、死锁或死机时用来转储内存运行参数的一个工具和服务,是一种新的crash dump捕获机制,用来捕获kernel crash(内核崩溃)的时候产生的crash dump。在第一kernel在运行的时候,系统内部在内存中就已经留存好了给第二kernel(捕获内核)的预留空间(这个预留空间的大小可以自己设定)。在第一kernelcrash的时候,就会进入第二kernel,在第二kernel中执行用户态程序makedumpfile对第一kernel的内存镜像进行裁剪和压缩,最后将第一kernel的vmcore保留在磁盘中并重启。
Linux 内核(以下简称内核)是一个不与特定进程相关的功能集合,内核的代码很难轻易的在调试器中执行和跟踪。开发者认为,内核如果发生了错误,就不应该继续运 行。因此内核发生错误时,它的行为通常被设定为系统崩溃,机器重启。基于动态存储器的电气特性,机器重启后,上次错误发生时的现场会遭到破坏,这使得查找 内核的错误变得异常困难。
无论是 CPU 使用率,还是平均负载,都只是反映系统健康状态的度量指标,而不是问题的根因;
在linux的众多发行版当中,大多数都是面向普通用户的,面向企业的屈指可数,我们通过之前的课程了解到CentOS和Red Hat Enterprise Linux出自同样的源代码,所以从可靠性,硬件兼容性,以及生命周期上来讲无疑是最好的选择,而且CentOS还是一个免费的软件,接下来我们看一下CentOS如何安装
linux内核有社区版本,升级和发布很快。redhat会选择一个内核版本构建自己的发行版,发行版除了内核还包括众多内核之上的软件如bash/gcc/glibc/systemd/开发库等等,redhat的策略是长期维护,只backport和bugfix升级小版本,并且保证任何backport和bugfix不影响原来的使用场景,比如升级内核小版本原来自己开发的内核模块代码不用修改,但在主线linux内核升级估计就得修改代码,再比如原来生产环境有一些脚本和配置文件,小版本升级后这些脚本和配置不用做任何修改,但不用redhat维护的版本,自己升级开源的版本恐怕升级后这些脚本和配置文件都未必能正常工作,维护周期结束后redhat会对大版本做一次升级,至少这个维护周期生产环境可以正常升级。所以生产环境都用redhat的企业版本linux,centos就是去掉商标后的redhat免费企业版,不想付费就用centos。
腾讯云服务器的公共镜像,只提供了两个版本的Debian镜像:Debian 8.2 jessie 和 Debian 9.0 stretch,怎么能够升级到 Debian 10.0 buster 呢?
本文主要介绍kdump服务和crash的使用,并结合一个简单的实例演示如何分析内核奔溃的原因。本文基于linux kernel 4.19, 体系结构为aarch64。 kdump概述 kdump kdump 是一种先进的基于 kexec 的内核崩溃转储机制,用来捕获kernel crash(内核崩溃)的时候产生的crash dump。当内核产生错误时,kdump会将内存导出为vmcore保存到磁盘。 kdump流程 当系统崩溃时,kdump 使用 kexec 启动到第二个内核。第二个内核通常叫做捕获内核,以
作者简介:中年码农,做过电信、手机、安全、芯片等行业,靠Linux混饭吃。 简介 Kdump 提供了一种机制在内核出现故障的时候把系统的所有内存信息和寄存器信息 dump 出来成一个文件,后续通过 gdb/crash 等工具进行分析和调试。和用户态程序的 coredump 机制类似。它的主要流程如下图所示: 可以看到它的核心原理是保留一段内存并且预先加载了一个备用的 kernel,在主 kernel 出现故障时跳转到备用 kernel,在备用 kernel 中把主 kernel 使用的内存和发生故障时的寄
在虚拟化场景下,我们尽量会尝试使用带外监控的方式,来发现虚拟机的异常。pvpanic就是一种常见的方式,虚拟化场景的windows蓝屏检查也是基于如此。
本文一是为了讨论在Linux系统出现问题时我们能够借助哪些工具去协助分析,二是讨论出现问题时大致的可能点以及思路,三是希望能给应用层开发团队介绍一些Linux内核机制从而选择更合适的使用策略。
本文旨在介绍下几种常见的调试方法gdb、crash、kgdb and kdb 以及dynamic debug. 关于在 Linux 内核上使用debuggers,Linus Torvalds 长期以来对它们不太喜欢。简短地解释这种态度是,依赖调试器可能鼓励用权宜之计而非深思熟虑来解决问题,这会导致代码质量恶化。详细解释可以参考https://lwn.net/2000/0914/a/lt-debugger.php3
kdump.conf 配置文件里的coredump存储目录,确认目录位置和目录的空间(或目录所在的挂载点文件系统可用空间)
上传ISO镜像文件 版本:CentOS-7-x86_64-DVD-1908.iso
初学者当安装模式为默认的 Server with GUI 即可,右侧额外的软件包不要选择,可以在后续学习过程中慢慢安装。生成环境一般为Minimal Install(最小化安装)。
思路:内核timer有回调函数timer->function,可以由function查到crash的内核模块,找到bug的蛛丝马迹。
7、处理器配置,看自己的母机是否是双核、多核,一般而言,虚拟机分配的处理器越多,虚拟机越快。 没有特殊要求默认即可,直接选择下一步。
下载CentOS7的系统,这里为了节省空间,我下载的是[CentOS-7-x86_64-Minimal-1804.iso]。
(adsbygoogle = window.adsbygoogle || []).push({});
很多朋友工作学习中需要在 Windows 上安装 Linux 系统,最常用的就是使用 VMware Workstation 虚拟机。
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
文件系统是操作系统用于明确磁盘或分区上的文件的方法和数据结构,即在磁盘上组织文件的方法
廖威雄,就职于珠海全志科技股份有限公司,负责Linux IO全栈研发、性能优化、开源社区开发交流、Linux 内核开源社区pstore/blk,mtdpstore模块的作者、大客户存储技术支持、全志首个UBI存储方案主导人、全志首个RTOS NFTL主导人
虚拟机下载地址:https://www.vmware.com/go/getworkstation-win 。
写在前面:博主是一只经过实战开发历练后投身培训事业的“小山猪”,昵称取自动画片《狮子王》中的“彭彭”,总是以乐观、积极的心态对待周边的事物。本人的技术路线从Java全栈工程师一路奔向大数据开发、数据挖掘领域,如今终有小成,愿将昔日所获与大家交流一二,希望对学习路上的你有所助益。同时,博主也想通过此次尝试打造一个完善的技术图书馆,任何与文章技术点有关的异常、错误、注意事项均会在末尾列出,欢迎大家通过各种方式提供素材。
作者 | 字节跳动 STE 技术团队 审校 | Tina veLinux 是火山引擎推出的开源 Linux 操作系统,由字节跳动系统技术与工程团队(System Technologies & Engineering,简称 STE)主导研发,广泛集成了字节跳动多年来在支撑海量业务和亿级并发上的系统技术经验。致力于为用户提供稳定、高性能、安全、易用的 Linux 操作系统选择,提供全生命周期管理的完整解决方案和企业级服务支持。 自火山引擎开服以来,veLinux 支撑了包括容器服务、机器学习平台、大数据服
继 RHEL 8 发布之后,CentOS 社区也发布了让人期待已久的 CentOS 8,并发布了两种模式:
Oracle Linux 8.0 发布了,更新包中包括基础 BaseOS 和 Application Streams,其中 BaseOS 提供运行环境的用户空间,Application Streams 提供了一系列以往分发在软件集中的应用,以及可在用户空间内运行的其它产品和程序。
最近客户的centos频繁重启,但是由于没有vmcore文件产生,但客户急于解决,无法等待vmcore,所以只能尝试从堆栈角度分析内核,找出问题的根由。
TencentOS Server( 又名Tencent Linux 简称Tlinux) 是腾讯针对云的场景研发的 Linux 操作系统,提供了专门的功能特性和性能优化,为云服务器实例中的应用程序提供高性能,且更加安全可靠的运行环境。Tencent Linux 使用免费,在 CentOS(及发行版)上开发的应用程序可直接在 Tencent Linux 上运行,用户还可持续获得腾讯云的更新维护和技术支持。
pstore文件系统(是的,这是个文件系统)是Persistent Storage的缩写,最早在2010年由 Tony Luck 设计并合入Linux主分支,设计的初衷是在内核Panic/Oops时能自动转存内核日志(log_buf),在Panic重启后,把转存的日志以文件形式呈现到用户空间以分析内核崩溃问题。
下载地址(16 pro):https://www.aliyundrive.com/s/wF66w8kW9ac 安装:选一下安装地址,一直下一步即可。(可能会要求重启电脑,重启即可)
删除检查选项的默认(不删除的话,就不得行,只能有一个默认,当然你手选也行,但就没得定制镜像的意义了撒)
CentOS 是 Redhat 企业 Linux(RHEL)的复制品,CentOS 是一个稳定版本,与 Fedora 不同的是它是 RHEL 的 beta 版本,CentOS 提供定期更新和像 Redhat 一样的安全补丁,CentOS 是开源平台,任何人都可以免费下载使用和分发。
15)新建虚拟机向导配置完成,可以点击自定义硬件配置虚拟机,或点击完成稍后再配置虚拟
4、选择安装的系统类型,系统为32位的就选32位的(redhat enterprise linux 7),系统为64位的就安装64位的
在RHEL/CentOS 7上,通过使用systemctl命令检查,可以运行systemctl status命令检查服务的运行状态:
本文章使用的镜像:CentOS-7-x86_64-Minimal-2003.iso
前几天Centos8发布了,尽管他是8的第一个版本,那么今天我们就在VM12上面安装centOS8吧,8这个图形化界面我个人感觉有点丑
如果说Ubuntu是现今最受桌面用户欢迎的Linux操作系统,那么CentOS就是最受公司、企业、IDC喜爱的Linux发行版了,得益于它极为出色的稳定性,全球范围内有无数著名网站均选用它。
以前的电脑上安装过vmware+redhat,但是奈何电脑太老,配置太低,打开的时候超级卡,没法用。换了电脑后,再装上玩玩,故此记录一下安装过程。需要安装的小伙伴可以在此获取包然后按此步骤安装。
领取专属 10元无门槛券
手把手带您无忧上云