Linux Monitor
监测内核的各种手段。
pwl999
莫听穿林打叶声,何妨吟啸且徐行。
展开
-
[monitor] 1. Linux魔术键的使用
linux在出现故障但是没有完全挂死的情况下,可以使用魔术键来打印一些系统信息或者执行一些操作。linux魔术键使用的官方文档在内核中sysrq.txt(/usr/src/linux/Documentation/sysrq.txt )。1、linux魔术键的使能可以通过“echo 1 > /proc/sys/kernel/sysrq”命令使能linux魔术键,通过“echo 0 > /proc/sy原创 2017-10-13 11:38:28 · 1516 阅读 · 0 评论 -
[monitor] 10. Linux oprofile(硬件采样性能分析)
1、oprofile概念前面我们通过tick timer增加“/proc/stat”计数的方式来计算cpu占用率,更精确的计算方法是采用performance counter。cpu硬件提供了一系列的performance counter用于分析程序性能。performance counter的原理很简单就是采样。比如把performance counter配置成“采样cpu周期”型的,采样coun原创 2017-10-14 11:18:18 · 816 阅读 · 0 评论 -
[monitor] 7. Linux几种内核故障定位方法
Linux系统崩溃有kdump机制来记录,但是由于kdump的文件内容一般很大,在嵌入式系统一般不使用,嵌入式系统一般使用把printk重定位到黑匣子中的方法来记录异常,另外还需要其他的故障检测方法来完善系统所有场景下的异常检测。除了系统的一些通用方法,我们在定位系统死机、复位故障时需要更多的手段来搜集信息,一般嵌入式系统采取的手段有:1、创建内存、flash黑匣子,把故障点、函数调用栈等信息在复原创 2017-10-14 12:08:20 · 3539 阅读 · 0 评论 -
[monitor] 8. Linux kprobe(内核探针)
1、kprobe概念kprobe是一个动态地收集调试和性能信息的工具,它从Dprobe项目派生而来,是一种非破坏性工具,用户用它几乎可以跟踪任何函数或被执行的指令以及一些异步事件(如timer)。它的基本工作机制是:用户指定一个探测点,并把一个用户定义的处理函数关联到该探测点,当内核执行到该探测点时,相应的关联函数被执行,然后继续执行正常的代码路径。kprobe实现了三种类型的探测点: kprobe原创 2017-10-13 14:39:51 · 3093 阅读 · 1 评论 -
[monitor] 6. Linux kdump(系统临终快照)
1、kdump概念前面讲过进程在崩溃的时候可以使用core dump功能存储一个快照,那么系统崩溃有没有类似的存储故障快照的功能呢?答案是肯定的,kdump可以实现。kdump在系统崩溃的时候,另外起一个内核系统,这个新系统起来以后,把崩溃系统的内存信息和cpu信息等故障场景存储为一个快照文件。kdump使用了两个内核系统,一个是正常运行的内核系统,一个是捕捉故障的内核系统,在运行的系统崩溃时转而启原创 2017-10-13 14:18:27 · 688 阅读 · 0 评论 -
[monitor] 5. Linux core dump(进程临终快照)
1、Core dump概念linux下一个用户态程序出错通常会报出“Segmentation fault”并退出。如果系统使能了“core dump”功能,系统会给崩溃的进程拍一个临终快照存储到一个core文件当中,快照中包括进程所有的内存、cpu寄存器、os状态标志等等。程序出故障以后,可以使用gdb来调试快照文件,定位程序当时出现了什么故障。Core dump的说明: A core dump原创 2017-10-13 14:06:54 · 1181 阅读 · 0 评论 -
[monitor] 4. Linux内核Oops机制
1、内核异常Linux内核在陷入一些不可恢复的异常时,马上就要崩溃了,内核陷入了恐慌,这种内核的异常除了复位也没有什么更好的手段。在复位之前内核会打出出现异常的寄存器、堆栈等故障场景信息,以供故障定位之用,这些信息就叫做Oops信息。1.1、BUG_ON()在内核的关键点中,常常预设一些判断条件来捕获内核的异常,如果这些条件成立表明内核出现了bug或者warn。内核会调用panic复位或者仅仅打印一原创 2017-10-13 13:58:40 · 1465 阅读 · 0 评论 -
[monitor] 3. Linux内核参数sysctl设置
1、内核参数“/proc/sys”Linux提供了一种非常灵活的方法可以在系统运行的时候动态更改内核的参数。性能优化、功能变更时通常需要更改这些参数。这些参数大部分都存在于“/proc”目录下,其中最核心的部分被集中于“/proc/sys”目录下linux称之为sysctl。查看/proc/sys下的内容,都是相关内核参数。2、sysctl工具“/proc/sys”下这些参数的修改可以通过手工命令“原创 2017-10-13 11:58:51 · 604 阅读 · 0 评论 -
[monitor] 2. Linux CPU占用率的计算原理
1、CPU占用率查看工具Linux提供了多种工具,用来查看CPU占用率、内存使用情况等等。1.1、toptop是linux下最常用的cpu占用率查看工具,他提供了查看每个CPU上所有进程总的占用率和单个进程占用率的功能。 us : user态的占用率,ni : nice为正的user态的占用率(低优先级),sy :system态占用率,wa :io等待占用率,hi:硬中断占用率,si:软中断占用原创 2017-10-13 11:51:08 · 3444 阅读 · 0 评论 -
[monitor] 9. Linux ptrace(程序调试器原理)
1、ptrace概念你一定知道linux下大名鼎鼎的程序调试工具gdb,但你可能没有听说过ptrace。Ptrace是linux一个标准系统调用,是gdb实现程序调试的核心。 ptrace能让一个进程实现对另一个进程的调试,主进程可以对被调试进程进行一系列控制动作:可以让被调试进程在进入/退出系统调用时断点,可以对被调试进程的任何位置插入调试断点,可以控制被调试进程单步执行,可以读取/写入被调试进程原创 2017-10-14 14:52:08 · 1591 阅读 · 0 评论