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

Linux下异常信号——Signal

近期接触了Linux平台的测试,遇到了软件发生异常,从而接触到了 Linux平台下的Signal——信号,用来通知进程发生了异步事件。...作为测试,免不了需要初步判断一下是否是正在的异常,因此学习了一下Signal NO 1 信号事件的发生有两个来源: 硬件来源(比如我们按下了键盘或者其它硬件故障); 软件来源,最常用发送信号的系统函数是...NO 2 Linux支持的信号列表如下(很多信号是与机器的体系结构相关的) 信号值 默认处理动作 发出信号的原因 SIGHUP 1 A 终端挂起或者控制进程终止...E 信号不能被捕获 F 信号不能被忽略 了解了以上信息后,再来看软件生成异常的log文件,其他的信息可以暂时不关注,将log信息中的Signal字段找出来,解读后面的数值 未了解之前: 跟开发了解了软件在出现异常时会写...是经常出现且需要重点关注的信号,遇到这个数字千万要放过 6和14,遇到这个信号也千万不要忽略,需要找开发进行分析讨论的哟,它可能是问题,当然,也可能不是问题 其他的信号,目前位置没有遇到过 以上简单分享了Linux

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

    linux缺页异常处理--内核空间

    缺页异常被触发通常有两种情况—— 程序设计的不当导致访问了非法的地址 访问的地址是合法的,但是该地址还未分配物理页框. 下面解释一下第二种情况,这是虚拟内存管理的一个特性。...,程序在一定时间内所访问的内存往往是有限的,因此内核只会在进程确确实实需要访问物理内存时才会将相应的虚拟内存区域与物理内存进行关联(为相应的地址分配页表项,并将页表项映射到物理内存),也就是说这种缺页异常是正常的...,而第一种缺页异常是不正常的,内核要采取各种可行的手段将这种异常带来的破坏减到最小。...缺页异常的处理函数为do_page_fault(),该函数是和体系结构相关的一个函数,缺页异常的来源可分为两种,一种是内核空间(访问了线性地址空间的第4个GB),一种是用户空间(访问了线性地址空间的0~...3GB),以X86架构为例,先来看内核空间异常的处理。

    1.9K20

    Linux内核20-Linux内核的异常处理过程

    异常处理的基本过程 当异常发生时,Linux内核给造成异常的进程发送一个信号,告知其发生了异常。...但是,除了这些常规的异常以外,Linux有时候会特意利用某些CPU异常管理硬件资源。...异常处理程序一般会执行下面三步: 保存内核态堆栈中的大部分寄存器内容(这一部分一般是汇编语言编写); 处理异常(一般使用C语言函数实现); 退出异常处理程序(调用ret_from_exception()...异常处理程序基本上都是下面这样的代码:(所有的异常和中断处理函数都可以在linux\arch\x86\entry\entry_32.S文件中找到) handler_name: pushl $0...最后异常处理程序跳转到ret_from_exception()函数地址处,从异常状态返回。

    1.6K70

    Linux系统编程 - 进程异常自动重启

    Linux系统编程 - 进程异常自动重启 开篇   在Linux平台,自研服务进程通常以守护进程的形式在后台常驻运行。但偶尔也会遇到服务进程异常crash,导致产品基本功能异常,影响恶劣。  ...则可以通过这点,实现进程异常crash的重启。 「方案一」   在《Linux系统编程》中,有讲道:当子进程终止时,会发送SIGCHLD至父进程。...父进程注册信号SIGCHLD监听,在处理函数中,通过wait()/waitpid()获取异常子进程的pid。 通过pid匹配异常进程对应的bin文件路径,再重新拉起此进程。...总结 在开发阶段,应优先查后台进程异常终止的原因。通常由系统配置生成coredump文件,配合gdb可以快速定位到crash代码行号。...经过此方案,在Linux系统部署用户进程时,加入此方案,能够避免进程异常导致的系统宕机等其他严重问题。

    45221

    Linux进程的内存管理之缺页异常

    通过《Linux进程的内存管理之malloc和mmap》我们知道,这两个函数只是建立了进程的vma,但还没有建立虚拟地址和物理地址的映射关系。...当进程访问这些还没建立映射关系的虚拟地址时,处理器会自动触发缺页异常。 ARM64把异常分为同步异常和异步异常,通常异步异常指的是中断(可看《上帝视角看中断》),同步异常指的是异常。...关于ARM异常处理的文章可参考《ARMv8异常处理简介》。...(虚拟页到0页的映射),第二次是写时复制缺页异常处理。...由于内存和磁盘的读写性能差异较大,Linux会在内存充裕时将空闲内存当作swap cache,用来缓存磁盘数据,以提高I/O性能。相对的在内存紧张时Linux会将这些缓存回收,将脏页回写到磁盘中。

    2.7K42

    【linux学习指南】Linux进程信号产生(三) 硬件异常&&除零出错?&&野指针异常?&&core文件

    前言 硬件异常被硬件以某种⽅式被硬件检测到并通知内核,然后内核向当前进程发送适当的信号。例如当前进程执⾏了除以0的指令,CPU的运算单元会产⽣异常,内核将这个异常解释为SIGFPE信号发送给进程。...再⽐如当前进程访问了⾮法内存地址,MMU会产⽣异常,内核将这个异常解释为SIGSEGV信号发送给进程。...总的来说,这段描述了CPU发生除零错误时的异常处理流程,包括硬件触发异常、OS发现错误、终止异常进程,以及进程切换时上下文保存等步骤。整个过程涉及CPU硬件和操作系统的协作。 野指针异常?...OS会检测是否存在异常状态,有异常存在就会调⽤对应的异常处理⽅法。...&1); return 0; } 指令:wks@hcss-ecs-ab43:~/code/signal24$ man 7 signal Standard signals Linux

    9010

    Linux性能异常经典案例分析之D进程

    业务上线不久后,某次晚高峰,A、B、C三台服务器同时出现负载异常(load偏高),业务侧出现访问卡顿和业务数据加载缓慢等现象,随即客户侧收到大量用户投诉。...即故障现象是三台虚机负载同时出现异常,我们最初怀疑是三台虚机同宿主,宿主出现异常影响了虚机,但是经过排查分析发现三台虚机宿主各不相同,且宿主各项监控指标均未发现异常,初步排除了宿主异常影响的可能性。...回归虚机本身的排查,通过现有监控,并未发现虚机有明显异常之处,进行扩容操作后,业务侧异常并未得到有效缓解。...随后立即展开对UFS的分析,发现由于客户并发读写请求过大,已经触及当前容量UFS的吞吐瓶颈,于是立即进行UFS扩容操作,扩容后,主机负载迅速下降,业务侧异常现象也立刻消失。多么痛的领悟~

    9300

    Linux 2.6.16 TCP 连接速度异常的问题分析

    这里是一个典型的下载速度曲线: 我们的服务器的曲线:(纵轴单位:包/s) 百度的服务器下载的曲线: 重现该问题的测试环境: 网络: 公司体验网,普通联通4M ADSL 服务器:Linux64位服务器...n = If n outstanding ACKs before timed interval, sent ACK) 因为无法强制用户通过修改注册表避免问题,并且竞争对手也没有看到类似问题,因此只能从linux...Linux这一端,首先怀疑和nagle算法有关系,在nws服务器上设置TCP_NODELAY以后仍然可以重现,可以排除Nagle算法的影响。...因为每次linux仅发送一个数据包,因此怀疑拥塞窗口的问题,推测问题如下: 初始情况下,客户端回复一个ACK时,拥塞窗口增大,每次发送多个数据包,因此刚开始可以有较快的传输速度;因为网络延时抖动或丢包导致服务器协议栈判定数据包超时

    4.9K00

    【Python】异常处理 ① ( 异常概念 | 异常处理 | 异常捕获 )

    一、Python 异常简介 1、异常概念 Python 异常 是在程序运行过程中发生的错误或问题的表示 ; 出现异常可能会中断程序的正常执行流程 , 并引发一个异常对象 ; 此时 , 需要 捕获和处理...异常对象 , 以防止程序崩溃或引发更严重的错误 ; 2、Python 异常示例 在之前的博客中介绍了文件操作 , 如果以只读的形式打开不存在的文件 , 就会导致异常的出现 ; 出现异常代码 : """...---- 程序出现异常有两种情况 : 整个应用因为该异常停止运行 ; 对异常进行捕获处理 , 应用正常运行 ; 1、异常处理简介 程序出现异常导致无法运行 , 这种情况下 并不是要求程序没有异常完美运行..., 而是在力所能及的范围内 , 对可能出现的异常进行处理 ; 异常处理 就是 在可能出现异常的代码块中 , 对可能出现的异常做好提前准备 , 出现异常时将异常捕获 , 然后针对异常类型进行不同的处理...; 异常捕获语法 : try: 可能出现异常的代码块 except: 出现异常后执行的代码块 2、代码实例 - 出现异常代码 执行 """ 文件操作 代码示例 """ open("file3.txt

    22310

    Linux 系统 CPU 100% 异常排查实践与总结

    通过观察load average,以及负载评判标准(8核),可以确认服务器存在负载较高的情况; 观察各个进程资源使用情况,可以看出进程id为682的进程,有着较高的CPU占比 2.2 定位具体的异常业务...2.3 定位异常线程及具体代码行 传统的方案一般是4步: 1、top oder by with P:1040 // 首先按进程负载排序找到 maxLoad(pid) 2、top -Hp 进程PID:1073...4、解决方案 定位到问题之后,首先考虑是要减少计算次数,优化异常方法。排查后发现,在逻辑层使用时,并没有使用该方法返回的set集合中的内容,而是简单的用set的size数值。...上线后观察服务器负载和cpu使用率,对比异常时间段下降了30倍,恢复至正常状态,至此该问题得已解决。 5、总结 在编码的过程中,除了要实现业务的逻辑,也要注重代码性能的优化。...https://my.oschina.net/leejun2005/blog/1524687 [2] linux 系统监控、诊断工具之 top 详解 https://my.oschina.net/leejun2005

    1.6K00
    领券