您当前的位置:首页 > 电脑百科 > 站长技术 > 服务器

服务器又崩溃了?看看专业的程序员怎么解决

时间:2020-03-03 10:20:25  来源:  作者:

首先让我为大家科普“崩了”是什么样子

 

01系统崩溃

 

系统的崩溃主要发生在:程序未能注意到有东西出错、并继续运行,直到出现更严重的情况。

 

例如试图“除以零”,进而导致程序被迫中止。

崩溃很可能在出现诱因后立刻发生,或等待很久后才发生。

 

也有可能是错误信息导致的,但这类信息通常是由操作系统或应用程序框架显示,而非由程序代码本身显示。

 

下图是一个典型的崩溃对话框:

服务器又崩溃了?看看专业的程序员怎么解决

 

(应用 Sample.exe 崩溃后 windows 显示的错误信息)

这个错误信息是由 Windows 错误报告组件 WerFault.exe 显示的。

 

为了确认这一点,可以将 Procexp 的十字准星图标拖拽到错误信息上,并查看拥有该窗口的进程。

 

如下图显示了 Procexp 所展示的,故障的 Sample.exe 和 WerFault.exe 之间的关系。

 

本例中,Kernelbase.dll内的默认进程中崩溃处理代码使用 Sample.exe的PID作为一个命令行参数启动了 WerFault.exe(在Windows 8.1 中,崩溃处理代码还可对崩溃的进程创建不可执行的快照)。

服务器又崩溃了?看看专业的程序员怎么解决

 

(崩溃对话框是由 WerFault.exe 进程显示的)

 

02崩溃触发

 

大部分崩溃均由无法处理的进程异常触发如果程序执行过程中遇到反常、不寻常,或非法的、无法由程序直接处理的情况,就会发生异常。

 

随后将抛出有关具体状况以及遇到该状况的上下文信息,并将控制权转交给上一层异常处理程序。

 

异常处理程序可以修复所遇到的状况,并将控制权返回给出现异常的位置;或立刻返回给出现异常时包含的区块;或由系统继续搜索能处理异常的处理程序。

 

如果找不到任何处理程序,则无法处理的异常会导致程序退出。

 

03硬件异常和软件异常

 

硬件异常

CPU 检测到当前 CPU 指令违反某个规则而无法完成。

最常见的部分例子包括:

 

1. 除以零;

2. 在 CPU 未处于特权模式(即 Ring 0) 的情况下执行特权指令;

3. 执行未定义的 Opcode,如果 CPU 的指令指针设置为错误的内存地址就会发生这 种情况;

4. 访问未提交的虚拟内存;

5. 写入只读内存;执行被标记为不可执行(NX)的内存;以及栈溢出。

 

软件异常

与之相对的,如果程序检测到无法由自己直接处理的不寻常或错误状况,则此时会特意抛出软件异常。

 

04定义专用的异常类

 

C++和C#等语言的标准库定义和使用的类(Class)可以将不同类型异常的各种信息封装在一起,还使得程序员可以为自己的应用程序定义专用的异常类。

例如.NET RegistryKey 类包含有关 Windows 注册表的访问操作,如果用户无权执行所请求的操纵,则将会抛出 SecurityException。

 

程序员有责任了解自己的程序何时会抛出异常,并编写能妥善处理异常的代码,确保自己的程序不会崩溃。

 

如果在抛出异常时,进程附加了 ProcDump 这样的调试器,那么调试器将先于其他所有异常处理程序获得通知。

 

这个通知也叫做第一轮异常(First-chance exception)。由于大部分第一轮异常最终都将由程序来处理,因此通常可忽略此类异常。

 

如果没有异常处理程序可以处理这样的异常,那么调试器会再次收到 第二轮异常(Second-chance exception)的通知,这类异常也叫做未处理的异常(Unhandled exception)。

 

05区别排查

 

第一轮和第二轮异常的区别对排错工作很重要。

 

例如应用程序可能由于开发者未能提供相应的异常处理 代码导致在遇到未处理的异常后崩溃。

 

而附加的调试器可能根本没机会看到第二轮异常,因为应用程序 构建时所选择的目标平台已经在应用的外围提供了异常处理机制,在异常变为“未处理”状态并传递给 调试器之前就已接手了这个异常。

 

下图 显示了一个.NET 窗体应用由于未处理的异常而显示的崩溃对话框。

 

该应用程序的开发者并未提供异常处理程序,但.NET Framework 库代码提供了,并显示了下图 中 所示的对话框。

与之前的崩溃信息不同,这则错误信息是由出现异常的进程显示的。

服务器又崩溃了?看看专业的程序员怎么解决

 

(NET Framework捕获了一个窗体应用中出现的未处理异常)

可以运行 Procmon 直到错误出现,停止追踪,筛选掉不相关的事件,然后在追踪记录中从后向前查看,找到能代表问题根源的信息。

 

如果崩溃发生在启动或登录过程中,可能意味着某个自动运行的组件嫌疑最大。

 

此时可以使用 Autoruns 找出可能性最大的组件,并将其暂时或永久禁用;Autoruns 还可以帮我们找出需要更新的组件。

 

ProcDump 在崩溃故障排错中非常有用,该工具可在第一轮或第二轮异常时,以及在被很多其他类型事件 触发后捕获用户模式的转储。该工具还可将获取的信息实时发送给 Procmon,这样就可以将异常信息与发 生时的注册表、文件、网络,以及进程事件结合在一起查看。

有人戏称,天天宅在家,想知道沙雕网友们最爱干的事是啥?

看热搜就知道,爱它就要毁了它,爱谁,谁就崩!

其实不全然,看看钉钉~

服务器又崩溃了?看看专业的程序员怎么解决

 

那么问题来了,钉钉凭什么在一众平台中脱颖而出、屹立不倒?

服务器又崩溃了?看看专业的程序员怎么解决

 

原来,钉钉背后的阿里云提前预防了由于人流过多而造成的崩。

 

假设群众们是磨刀霍霍向平台的服务器杀手,那么程序员们就是妙手回春的白衣天使~

衷心感谢各位程序员日以继夜的辛苦码作,让我们在家里也能畅享网络!

 

还想了解更多服务器的使用诀窍吗?这本《Windows Sysinternals实战指南》推荐给大家,本书汇集了微软CTO多年实战经验的总结,全面透彻剖析了Windows系统工具Sysinternals套件的使用方法以及难点、疑点。

 

无论是对广大Windows系统管理员,还是普通用户,如果掌握了本书中的技巧,就能事半功倍的解决日常电脑故障和出现的各种问题。



Tags:服务器   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
Windows操作系统和Linux操作系统有何区别?Windows操作系统:需支付版权费用,(华为云已购买正版版权,在华为云购买云服务器的用户安装系统时无需额外付费),界面化的操作系统对用户使...【详细内容】
2021-12-21  Tags: 服务器  点击:(6)  评论:(0)  加入收藏
以下是服务器安全加固的步骤,本文以腾讯云的CentOS7.7版本为例来介绍,如果你使用的是秘钥登录服务器1-5步骤可以跳过。1、设置复杂密码服务器设置大写、小写、特殊字符、数字...【详细内容】
2021-12-20  Tags: 服务器  点击:(7)  评论:(0)  加入收藏
转自: https://kermsite.com/p/wt-ssh/由于格式问题,部分链接、表格可能会失效,若失效请访问原文密码登录 以及 通过密钥实现免密码登录Dec 15, 2021阅读时长: 6 分钟简介Windo...【详细内容】
2021-12-17  Tags: 服务器  点击:(16)  评论:(0)  加入收藏
简介在之前的文章中,我们提到了在netty的客户端通过使用Http2FrameCodec和Http2MultiplexHandler可以支持多路复用,也就是说在一个连接的channel基础上创建多个子channel,通过...【详细内容】
2021-12-14  Tags: 服务器  点击:(8)  评论:(0)  加入收藏
阿里云和腾讯云都是非常好的云服务器平台,大多数用户完全不用纠结腾讯云还是阿里云,特别是微信开发用户,自然是首选腾讯云,其次是学生或个人以及财政紧张的小公司微型业务,腾讯云...【详细内容】
2021-12-14  Tags: 服务器  点击:(14)  评论:(0)  加入收藏
今日总监说32 服务器 磁盘占用率 超过80%多了 。不对啊 之前才清理过df -h 查看了一番 果然40g 用了33g。看了下历史会爆目录 也就5.3G 之前是服务生成临时下载的附件多。...【详细内容】
2021-12-10  Tags: 服务器  点击:(17)  评论:(0)  加入收藏
在Linux系统下如何分享文件呢,你可能会想到用scp、rsync此类的命令,但都需要给出服务器密码,不安全。或者搭建一个ftp、nfs或samba的服务,分配个账号或划分个权限给其它人共享文...【详细内容】
2021-12-08  Tags: 服务器  点击:(17)  评论:(0)  加入收藏
域名系统是最重要的互联网服务之一,没有它,我们将无法访问在线内容,甚至无法发送电子邮件。每当我们尝试连接到其他网站或在线服务时,根 DNS 服务器都会帮助我们的计算机找到并...【详细内容】
2021-11-25  Tags: 服务器  点击:(35)  评论:(0)  加入收藏
实验拓扑 图 1-1实验需求 在深圳总部的 AF 上,配置 DDOS 防护,防止服务器区的服务器被 DDOS 攻击 在深圳总部的 AF 上,配置 IPS,对服务器区的服务器实现入侵检测和入侵防御实验...【详细内容】
2021-11-23  Tags: 服务器  点击:(26)  评论:(0)  加入收藏
服务器日志(server log)是一个或多个由服务器自动创建和维护的日志文件,其中包含其所执行活动的列表简单来说,服务器的日记就是记录网站被访问的全过程,什么时间到什么时间有哪...【详细内容】
2021-11-11  Tags: 服务器  点击:(42)  评论:(0)  加入收藏
▌简易百科推荐
阿里云镜像源地址及安装网站地址https://developer.aliyun.com/mirror/centos?spm=a2c6h.13651102.0.0.3e221b111kK44P更新源之前把之前的国外的镜像先备份一下 切换到yumcd...【详细内容】
2021-12-27  干程序那些事    Tags:CentOS7镜像   点击:(1)  评论:(0)  加入收藏
前言在实现TCP长连接功能中,客户端断线重连是一个很常见的问题,当我们使用netty实现断线重连时,是否考虑过如下几个问题: 如何监听到客户端和服务端连接断开 ? 如何实现断线后重...【详细内容】
2021-12-24  程序猿阿嘴  CSDN  Tags:Netty   点击:(12)  评论:(0)  加入收藏
一. 配置yum源在目录 /etc/yum.repos.d/ 下新建文件 google-chrome.repovim /etc/yum.repos.d/google-chrome.repo按i进入编辑模式写入如下内容:[google-chrome]name=googl...【详细内容】
2021-12-23  有云转晴    Tags:chrome   点击:(7)  评论:(0)  加入收藏
一. HTTP gzip压缩,概述 request header中声明Accept-Encoding : gzip,告知服务器客户端接受gzip的数据 response body,同时加入以下header:Content-Encoding: gzip:表明bo...【详细内容】
2021-12-22  java乐园    Tags:gzip压缩   点击:(9)  评论:(0)  加入收藏
yum -y install gcc automake autoconf libtool makeadduser testpasswd testmkdir /tmp/exploitln -s /usr/bin/ping /tmp/exploit/targetexec 3< /tmp/exploit/targetls -...【详细内容】
2021-12-22  SofM    Tags:Centos7   点击:(7)  评论:(0)  加入收藏
Windows操作系统和Linux操作系统有何区别?Windows操作系统:需支付版权费用,(华为云已购买正版版权,在华为云购买云服务器的用户安装系统时无需额外付费),界面化的操作系统对用户使...【详细内容】
2021-12-21  卷毛琴姨    Tags:云服务器   点击:(6)  评论:(0)  加入收藏
参考资料:Hive3.1.2安装指南_厦大数据库实验室博客Hive学习(一) 安装 环境:CentOS 7 + Hadoop3.2 + Hive3.1 - 一个人、一座城 - 博客园1.安装hive1.1下载地址hive镜像路径 ht...【详细内容】
2021-12-20  zebra-08    Tags:Hive   点击:(9)  评论:(0)  加入收藏
以下是服务器安全加固的步骤,本文以腾讯云的CentOS7.7版本为例来介绍,如果你使用的是秘钥登录服务器1-5步骤可以跳过。1、设置复杂密码服务器设置大写、小写、特殊字符、数字...【详细内容】
2021-12-20  网安人    Tags:服务器   点击:(7)  评论:(0)  加入收藏
项目中,遇到了一个问题,就是PDF等文档不能够在线预览,预览时会报错。错误描述浏览器的console中,显示如下错误:nginx代理服务报Mixed Content: The page at ******** was loaded...【详细内容】
2021-12-17  mdong    Tags:Nginx   点击:(7)  评论:(0)  加入收藏
转自: https://kermsite.com/p/wt-ssh/由于格式问题,部分链接、表格可能会失效,若失效请访问原文密码登录 以及 通过密钥实现免密码登录Dec 15, 2021阅读时长: 6 分钟简介Windo...【详细内容】
2021-12-17  LaLiLi    Tags:SSH连接   点击:(16)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条