昨天凌晨三点,服务器突然宕机,早上起来看了一下,日志报错、数据库链接超时,cpu、内存 磁盘利用率占比虚高 ,还好当初系统采用了springcloud 架构,通过日志剖析,服务器凌晨1点-3点接发大量请求,10分钟后宕机代备案宕机检测。一开始程序总认为是负载均衡失效,进一步分析,流量集中在inner 接口,应该是FeignClient 请求,同时日志中出现sql 批量操作,进一步确定是Eurake 负载失效或者项目内部代码逻辑问题。宕机检测,如何有效预警服务器宕机的发生高防服务器出现堵塞的原因,代码逻辑中使用了多线程,并且频繁操作数据库,导致了程序运行一段时间之后,整个运营模块宕机。排查难点:宕机时,服务器日志丢失,MySQL数据库 链接不足导致服务器宕机,而导致链接不足的逻辑代码较难定位。服务器宕机一般分为两种:假死机和死机第一种假死机(非蓝屏死机):1、是硬件资源暂时性地被消耗殆尽,因而无法对外部指令进行响应的现象, 通常是网站处于访问高峰期,流量负载过大导致,带宽等资源跑满。2、是否是遭受黑客入侵攻击导致、最简单的就是关掉服务器,等待一段时间,待服务器腾出更多的硬件资源即可恢复正常。3、检查是否是误操作导致,可能原因和解决方案:进程过多或者不断创建,耗尽资源导致。数据库程序死锁,应用程序异常导致,连接数过多导致。4、数据丢失问题通常由于drop table的错误操作导致,并总是便随着缺少可用备份的问题。糟糕的Schema和索引设计是第二大影响性能的问题。5、在性能问题中,最普通的服务器宕机原因确实是运行很糟糕的SQL, 但也不一定都是这个原因,比如也有很多问题时由于服务器Bug或错误的行为导致的。6、复制问题通常由于主备数据不一致导致。是否是应用程序导致内存溢出或者泄露,out of memory导致第二种死机:如果通过ping测试服务器,键盘切换数字锁定键(NumLock)或大写锁定键(Caps Lock)功能, 显示器无画面输出,或者鼠标光标没有任何反应则表明服务器硬件故障,这就是服务器最麻烦的宕机情况。服务器出现宕机的原因和解决方案1、定时任务设计不合理,批量处理程序设计不合理。生产环境中 往往没有直接登录服务器权限,一般思路从代码逻辑入手,毕竟MySQL Linux 或者spring cloud 都是经过时间检验的,服务器宕机更有可能是自己写的代码逻辑有问题。2、要即时发现服务器宕机的问题。第一时间, 发现宕机的问题。如果服务器宕机时,为了避免造成不必要的损失,要尽早通知服务商解决相关问题。3、准备2个网站空间,他们存放的内容相同,而ip不同,并且机房的地理位置不同。这样2个主机, 同时宕机的可能性就大大降低了。第一时间发现宕机问题后,可以迅速的通过修改dnspod.com中的域名记录,指向目前正常的网站空间。Dnspod解析生效的时间是实时的, 而一般的dns服务器,刷新时间较长,对外声称24小时内生效,按照实际经验看来,差不多30分钟内生效,否则就要检查域名绑定是否正确了。域名解析其实就2个步骤:aa.在dns服务器上,将域名指向ip.bb.在网站空间上,将主机绑定域名(也是在这里,申请网站备案的!)。一个是,发送给谁?另一个是,接受谁的请求?4、数据下载至本地网络,完成一次请求有的朋友遇到在自己的机器上不能访问网站。而在别人的电脑上,却是可以打开。那测试一下是不是你所在地的网络不稳定,而造成的访问中断。如果没问题,那再通过”在线代理”打开你的网站试一试。百度一下”在线代理”,有一些网站能提供,用其它的ip,或国外ip代理访问某个网站的服务。如果在线代理,能够打开你的网站,基本上可以确定,你所在的本地网络,出现了暂时的不稳定情况。从上面几个方面可以看出,服务器宕机是指服务器因为某些原因而导致服务器无法运转,造成网络无法正常使用。 对于网站来说,服务器宕机所造成影响很大,它不但造成访客无妨对网站进行访问,甚至还可能影响到网站在搜索引擎上的收录和排名, 因而在租用服务器时,建议站长选择像互联数据这种香港新机房,宕机概率比较低。在服务器使用的过程中,服务器宕机可能都出现, 首先我们要找到服务器可能出现宕机的原因吗,才能找到对应的解决办法。