近期接触了Linux平台的测试,遇到了软件发生异常,从而接触到了 Linux平台下的Signal——信号,用来通知进程发生了异步事件。...作为测试,免不了需要初步判断一下是否是正在的异常,因此学习了一下Signal NO 1 信号事件的发生有两个来源: 硬件来源(比如我们按下了键盘或者其它硬件故障); 软件来源,最常用发送信号的系统函数是...NO 2 Linux支持的信号列表如下(很多信号是与机器的体系结构相关的) 信号值 默认处理动作 发出信号的原因 SIGHUP 1 A 终端挂起或者控制进程终止...E 信号不能被捕获 F 信号不能被忽略 了解了以上信息后,再来看软件生成异常的log文件,其他的信息可以暂时不关注,将log信息中的Signal字段找出来,解读后面的数值 未了解之前: 跟开发了解了软件在出现异常时会写...是经常出现且需要重点关注的信号,遇到这个数字千万要放过 6和14,遇到这个信号也千万不要忽略,需要找开发进行分析讨论的哟,它可能是问题,当然,也可能不是问题 其他的信号,目前位置没有遇到过 以上简单分享了Linux
文章时间:2020年3月5日 09:59:20 解决问题:系统时间异常,修复系统时间 CentOS系统 yum install ntpdate ntpdate 某个服务器节点 Ubuntu系统
缺页异常被触发通常有两种情况—— 程序设计的不当导致访问了非法的地址 访问的地址是合法的,但是该地址还未分配物理页框. 下面解释一下第二种情况,这是虚拟内存管理的一个特性。...,程序在一定时间内所访问的内存往往是有限的,因此内核只会在进程确确实实需要访问物理内存时才会将相应的虚拟内存区域与物理内存进行关联(为相应的地址分配页表项,并将页表项映射到物理内存),也就是说这种缺页异常是正常的...,而第一种缺页异常是不正常的,内核要采取各种可行的手段将这种异常带来的破坏减到最小。...缺页异常的处理函数为do_page_fault(),该函数是和体系结构相关的一个函数,缺页异常的来源可分为两种,一种是内核空间(访问了线性地址空间的第4个GB),一种是用户空间(访问了线性地址空间的0~...3GB),以X86架构为例,先来看内核空间异常的处理。
当用户提交程序,然后产生进程在机器上运行。机器会判断当前物理内存是否还有空闲允许进程调入内存运行,如果有则直接调入内存进行;如果没有,则会根据优先级选择一个...
我们有个功能是这样的:有个以 root 运行的 python 程序,它需要以 test 用户执行 linux 命令,所以就通过 subprocess 库 + sudo 来执行,也就是下面的关系图: image.png
16 系统出现异常排查思路 16.1 查看用户信息 16.1.1查看当前的用户 # who 04:39:39 up 1:30, 1 user, load average: 0.01, 0.01,...bytes Inactive Handle 0x022B, DMI type 127, 4 bytes End Of Table 16.9 IO的性能 16.9.1 查看磁盘的使用情况 # iostat Linux...0 0 0 0 57 84 1 1 99 0 0 ********************* 16.9.3实时的对系统的监控 # mpstat 2 10 Linux...INET 16 6 10 FRAG 0 0 0 16.15日志消息与内核信息的查看 16.15.1 显示linux
异常处理的基本过程 当异常发生时,Linux内核给造成异常的进程发送一个信号,告知其发生了异常。...但是,除了这些常规的异常以外,Linux有时候会特意利用某些CPU异常管理硬件资源。...异常处理程序一般会执行下面三步: 保存内核态堆栈中的大部分寄存器内容(这一部分一般是汇编语言编写); 处理异常(一般使用C语言函数实现); 退出异常处理程序(调用ret_from_exception()...异常处理程序基本上都是下面这样的代码:(所有的异常和中断处理函数都可以在linux\arch\x86\entry\entry_32.S文件中找到) handler_name: pushl $0...最后异常处理程序跳转到ret_from_exception()函数地址处,从异常状态返回。
查异常 cat -n abc.log |grep Exception|more 如找到行数为:5201314行,再查看该行前后的异常信息 cat -n abc.log |tail -n +5201314...|head -n 30 以下图片 出自菜鸟教程: http://www.runoob.com/linux/linux-comm-tail.html http://www.runoob.com/linux.../linux-comm-cat.html 命令解说:
在Linux系统中,UUID常用于识别磁盘分区,帮助系统正确挂载和访问这些分区。...1、Linux查看UUID方式# 查看Linux主机磁盘盘符[root@starcto ~]# blkid/dev/vda1: UUID="f646340c-9b31-4fd5-8e5d-0b40734d8612..." TYPE="xfs" /dev/vdb: UUID="dd6a9a3b-5dd4-45d1-be1d-be7224635709" TYPE="xfs"# 查看Linux主机盘符[root@starcto
Linux系统编程 - 进程异常自动重启 开篇 在Linux平台,自研服务进程通常以守护进程的形式在后台常驻运行。但偶尔也会遇到服务进程异常crash,导致产品基本功能异常,影响恶劣。 ...则可以通过这点,实现进程异常crash的重启。 「方案一」 在《Linux系统编程》中,有讲道:当子进程终止时,会发送SIGCHLD至父进程。...父进程注册信号SIGCHLD监听,在处理函数中,通过wait()/waitpid()获取异常子进程的pid。 通过pid匹配异常进程对应的bin文件路径,再重新拉起此进程。...总结 在开发阶段,应优先查后台进程异常终止的原因。通常由系统配置生成coredump文件,配合gdb可以快速定位到crash代码行号。...经过此方案,在Linux系统部署用户进程时,加入此方案,能够避免进程异常导致的系统宕机等其他严重问题。
通过《Linux进程的内存管理之malloc和mmap》我们知道,这两个函数只是建立了进程的vma,但还没有建立虚拟地址和物理地址的映射关系。...当进程访问这些还没建立映射关系的虚拟地址时,处理器会自动触发缺页异常。 ARM64把异常分为同步异常和异步异常,通常异步异常指的是中断(可看《上帝视角看中断》),同步异常指的是异常。...关于ARM异常处理的文章可参考《ARMv8异常处理简介》。...(虚拟页到0页的映射),第二次是写时复制缺页异常处理。...由于内存和磁盘的读写性能差异较大,Linux会在内存充裕时将空闲内存当作swap cache,用来缓存磁盘数据,以提高I/O性能。相对的在内存紧张时Linux会将这些缓存回收,将脏页回写到磁盘中。
---- #### 0x01 Linux信息收集 描述:当我们对异常系统进行处理,必须先进行主机基础信息的收集,以防出错后可以更快的恢复或者求助; CentOS系列: #!...echo "Hyper-Threading: off" else echo "Hyper-Threading: on" fi echo echo '===== END =====' 0x02 异常解决...找到相关负载进程的子线程PID $top -Hp [PID] #3.将线程PID转换为 16进制,为后面查找 jstack 日志做准备 printf "0x%x" [PID] #比如0x431 #4.jstack日志异常查询...jstack 1040|vim +/0x431 - #5.定位具体的异常业务使用 pwdx 命令根据 pid 找到业务进程路径 pwdx [PID] ?
前言 硬件异常被硬件以某种⽅式被硬件检测到并通知内核,然后内核向当前进程发送适当的信号。例如当前进程执⾏了除以0的指令,CPU的运算单元会产⽣异常,内核将这个异常解释为SIGFPE信号发送给进程。...再⽐如当前进程访问了⾮法内存地址,MMU会产⽣异常,内核将这个异常解释为SIGSEGV信号发送给进程。...总的来说,这段描述了CPU发生除零错误时的异常处理流程,包括硬件触发异常、OS发现错误、终止异常进程,以及进程切换时上下文保存等步骤。整个过程涉及CPU硬件和操作系统的协作。 野指针异常?...OS会检测是否存在异常状态,有异常存在就会调⽤对应的异常处理⽅法。...&1); return 0; } 指令:wks@hcss-ecs-ab43:~/code/signal24$ man 7 signal Standard signals Linux
今天在centos上使用ftp命令连接本机的FTP服务器(本机FTP服务使用Vsftpd搭建),出现如下的错误提示:-bash: ftp: command no...
业务上线不久后,某次晚高峰,A、B、C三台服务器同时出现负载异常(load偏高),业务侧出现访问卡顿和业务数据加载缓慢等现象,随即客户侧收到大量用户投诉。...即故障现象是三台虚机负载同时出现异常,我们最初怀疑是三台虚机同宿主,宿主出现异常影响了虚机,但是经过排查分析发现三台虚机宿主各不相同,且宿主各项监控指标均未发现异常,初步排除了宿主异常影响的可能性。...回归虚机本身的排查,通过现有监控,并未发现虚机有明显异常之处,进行扩容操作后,业务侧异常并未得到有效缓解。...随后立即展开对UFS的分析,发现由于客户并发读写请求过大,已经触及当前容量UFS的吞吐瓶颈,于是立即进行UFS扩容操作,扩容后,主机负载迅速下降,业务侧异常现象也立刻消失。多么痛的领悟~
这里是一个典型的下载速度曲线: 我们的服务器的曲线:(纵轴单位:包/s) 百度的服务器下载的曲线: 重现该问题的测试环境: 网络: 公司体验网,普通联通4M ADSL 服务器:Linux64位服务器...n = If n outstanding ACKs before timed interval, sent ACK) 因为无法强制用户通过修改注册表避免问题,并且竞争对手也没有看到类似问题,因此只能从linux...Linux这一端,首先怀疑和nagle算法有关系,在nws服务器上设置TCP_NODELAY以后仍然可以重现,可以排除Nagle算法的影响。...因为每次linux仅发送一个数据包,因此怀疑拥塞窗口的问题,推测问题如下: 初始情况下,客户端回复一个ACK时,拥塞窗口增大,每次发送多个数据包,因此刚开始可以有较快的传输速度;因为网络延时抖动或丢包导致服务器协议栈判定数据包超时
一、Python 异常简介 1、异常概念 Python 异常 是在程序运行过程中发生的错误或问题的表示 ; 出现异常可能会中断程序的正常执行流程 , 并引发一个异常对象 ; 此时 , 需要 捕获和处理...异常对象 , 以防止程序崩溃或引发更严重的错误 ; 2、Python 异常示例 在之前的博客中介绍了文件操作 , 如果以只读的形式打开不存在的文件 , 就会导致异常的出现 ; 出现异常代码 : """...---- 程序出现异常有两种情况 : 整个应用因为该异常停止运行 ; 对异常进行捕获处理 , 应用正常运行 ; 1、异常处理简介 程序出现异常导致无法运行 , 这种情况下 并不是要求程序没有异常完美运行..., 而是在力所能及的范围内 , 对可能出现的异常进行处理 ; 异常处理 就是 在可能出现异常的代码块中 , 对可能出现的异常做好提前准备 , 出现异常时将异常捕获 , 然后针对异常类型进行不同的处理...; 异常捕获语法 : try: 可能出现异常的代码块 except: 出现异常后执行的代码块 2、代码实例 - 出现异常代码 执行 """ 文件操作 代码示例 """ open("file3.txt
通过观察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
最近的项目一直在window平台编写和测试,今天转移到linux平台上,莫名出现验证码无法显示的问题,如图 而我本地一切正常 第一个反应是字体版权在linux平台受限,尝试更换字体无解。
异常面试题: thorw 与 throws的区别?...thorw throw一定会执行 throw写在于 方法体 中 后面跟的是异常对象 throws throws可能会执行 throws写在 类 上 后面跟的是异常...类 自定义异常 自定义异常的制作 首先定义一个类 让其继承Exception 或者 RuntimeException 在其构造方法里面 写一个带String参数 message 方法体里面只有super...ScoreException() { } public ScoreException(String mess) { super(mess); } } 测试使用异常...时候 就会出现空指针异常问题。
领取专属 10元无门槛券
手把手带您无忧上云