RedHat中Linux故障定位技术的详细解决方案及实例(2)

RedHat中Linux故障定位技术的详细解决方案及实例(2)
3、内核故障情况处理

(1)内核恐慌

恐慌是最直接的故障定位报告核心,恐慌的发生,使得内核的故障定位导致操作系统不再具有正常的运行状态。当发生恐慌时,Linux将中断和进程调度,所有CPU的功能都被关闭,所以当系统没有响应时,如果用户在图形界面中被激活屏幕上就看不到任何关于计算机故障的信息。

我们经常遇到,机器没有反应,平垒,大部分都是恐慌。恐慌发生时,内核直接印刷在调用堆栈中的恐慌代码控制台,用串口连接到机收集印刷字母控制台信息的传统用户,但串行方式,这不是明显的方便,现在Linux,比如RHEL5,rhel6,使用kdump法收集恐慌信息。在配置kdump,恐慌系统将使用kexec加载和切换到一个新的内核(首先放置在预分配的内存),以及全部或部分的内存中的数据保存磁盘网络计算机故障。

收集数据后的恐慌与崩溃kdump,用户可以使用工具直接查看the.cpu安装设置引起恐慌的代码路径

恐慌是非常直观的,恐慌的堆栈信息,能够直接反映出错误原因,如MCE故障,没有故障,数据结构分配失败。但有时恐慌是活跃的,因为内核发现关键数据结构不一致,这种不一致是什么时候,什么导致了代码。不清楚,可能还需要反复测试工具如SystemTap捕获

(2)多处理器环境内核的执行路径所产生的死锁

内核的死锁和不一样的恐慌,死锁,内核不积极地使自己处于暂停状态。但是,当内核状态中有两个以上CPU的执行路径不能在状态中阻塞时,内核死锁发生,CPU占用100%(带自旋锁),导致所有CPU的调度过程不能直接或间接地进行。内核死锁与两种情况:

-与死锁有关。此死锁中断上下文,至少有一个CPU中断被阻塞。系统可能不会响应ping请求。因为有一个CPU中断没有反应,局部APIC定时器中断失败,该方法可用于检测NMI看门狗(检查本地APIC计数器变量处理维修),NMI看门狗在处理程序调用恐慌(),用户可以通过kdump收集内存信息,从而分析CPU和僵局的调用堆栈,导致死锁的一个合乎逻辑的理由。

不要打断上下文。僵局僵局涉及这种情况,CPU的中断是正常的,系统可以响应ping请求,那么NMI看门狗不能触发。在2.6.16内核,并不是处理这种情况的一个好方法。在RHEL5,rhel6内核,CPU提供了看门狗的存在一个看门狗内核线程死锁,CPU内核线程死锁不能如期(即使它是一个实时进程优先级最高的),它不会更新相应的计数器变量,每个CPU的NMI看门狗计数器中断定期检查相应的CPU,发现没有更新,叫恐慌(),用户可以收集kdump内存信息,调用堆栈的CPU上,分析导致僵局,僵局的合乎逻辑的理由。

(3)哎呀,或者是内核的警告

哎呀,警告和恐慌是相似的,他们是由于内核发现异常不一致和主动报告。但是,哎呀,问题的严重性相关的警告比恐慌更轻,以应对问题时,内核不需要挂。哎呀,警告生产,通常在记录中的大量信息,dmesg内核特别糟糕,至少当地的印刷故障呼叫跟踪。哎呀可以转换的恐慌/ kdump离线调试,只要你设置panic_on_oops变量/过程/系统/内核是1就行了。

有啊和警告的直接原因很多,如内核故障或段,内核,计数器的数据结构和断层的值是错误的,并改变计数器的值,还有更深层次的原因,通常不出来从dmesg内核信息,解决这一问题的方法是使用SystemTap调查,如果发现一个计数器的值是错误的,我们将做探针,记录所有的计数器访问代码,然后分析。

定位圈和警告比应用程序的内存访问故障定位困难得多,因为在内核中,它不遵循数据的分布和结构使用像Valgrind跟踪中的应用。

2,其他(与硬件有关的)故障

自动重启是一个常见的故障,一般由硬件等物理故障造成的物理内存故障,只会导致死锁或恐慌,内核代码几乎没有发现问题,如果重启的话,在内核目录中。这台机器有一个编号panic,如果它的值设置为0,在恐慌,几秒钟后,内核将重启机器。现在的高端PC服务器处理软件如MCA的物理内存故障;HWPoison将物理页故障隔离、故障杀死页的过程,现在已经rhel6支持;HWPoison马。那些没有机器的物理内存故障的能力,不能直接通过MCE异常重启机器的硬件机制

4日和rhel6调试技术的介绍

(1) Kdump fault location collection and crash analysis

kdump是用来收集在内核恐慌系统内存信息,用户也可以在网上的案例引发的by'c'key SysRq。随着核心无污染进行转储工作kdump,所以它是比以前的diskdump,LKCD方法更可靠。对kdump使用,用户可选择的数据转储到本地磁盘或网络,而且通过滤波参数的定义在makedumpfile收集存储信息,减少了需要停机kdump

坠毁在kdump信息分析工具。它实际上是一个包装器。GDB使用崩溃,最好是安装内核调试信息包,它可以解析kdump内核数据符号信息的收集。使用崩溃来定位问题,完全取决于用户对内核代码的理解和分析能力。

指# >的人kdump.conf# >的人crash# >的人makedumpfile学习如何访问文件和崩溃。kdump kdump

(2)与SystemTap定位错误

SystemTap定位工具属于探索类,它可以探测到指定的内核或用户代码的位置,在执行时指定指定的位置或数据访问的位置,探头的用户定义的功能,可以打印出调用堆栈,位置参数,变量值信息。将探头的位置是非常灵活的,它是将强大的功能。将探头如下:

-整个系统在内核中调用,内核和模块中所有函数的入口或出口点。

-自定义计时器探测点

-内核中任何指定的代码或数据访问位置

-特定用户进程中的任意代码或数据访问位置

-许多探测点,如TCP、UDP、NFS和信号,已经预先为每个功能子系统建立了若干检测点。
STAP的SystemTap脚本语言来编写脚本,调用API提供的STAP脚本代码统计、打印数据等,对API函数,STAP语言参考# >;人将stapfuncs。关于使用参考功能;# >的人stap人stapprobes,# >;

(3)生物

Ftrace使用的是Linux内核实现的事件跟踪机制的跟踪点的基础设施,它是行政的作用可在一定时间内或活动的过程更清晰的呈现,如函数调用路径,切换流程。ftrace可以用来观察延迟系统的各个组成部分,以优化实时应用;它也可以通过一段时间的核心活动记录帮助故障定位。与下面的方法一样,可以在函数调用结束时跟踪一个进程。
除了跟踪函数调用,也可以切换生物过程,跟踪系统的唤醒,块设备访问内核数据结构分布。注意跟踪和分布是不同的,跟踪是一种在一段时间内的所有活动的记录,而不是统计信息,用户可以设置缓冲下 / / /系统内核调试/跟踪buffer_size_kb更长一段时间的记录数据的大小。

生物的具体使用可以称为内核源代码documenation /跟踪的内容

(4)即与性能

Oprofile性能在系统配置文件(抽样统计)的工具,主要用于解决系统的性能和应用问题。性能更强大,更全面和完善的用户空间工具和内核源代码以及维护和发布,让用户可以享受在性能提高内核的新特点。只有在rhel6,RHEL5的性能。和Oprofile性能不是用于CPU现代硬件计数器做统计工作,但性能还可以使用定义内核;软件和counter微量points所以,做更多的工作。CPU的NMI中断采样即使用开展,和性能都可以定期NMI中断也可以使用硬件计数器提供中断。用户可以方便的使用性能来即一个过程或系统的连续时间分布,如
也可以使用软件定义的系统;counter和各子系统的微量points各子系统的分析,如
数的子系统在6秒内kmem活动能力(这实际上是利用生物的跟踪点实现)

我认为性能,用户不需要使用oprofile
内容导航

第一页:详细解释Linux错误定位技术在红帽和第二页:内核故障和处理
第三页:使用kdump工具找到核心故障实例第四页:使用Kprobe观察内核函数的执行情况
(0票)
(0票)
(0票)
(0票)
(0票)
(0票)
详细说明:Red Hat Linux故障定位技术(2)返回操作系统主页的详细解决方案和实例

免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部