服务器出现宕机是什么原因?服务器打不开怎么解决

发布时间:2024-12-11 19:06:00   来源:免备案CDN 关键词:服务器出现宕机是什么原因

服务器出现宕机是什么原因?服务器打不开怎么解决

一、服务器出现宕机的常见原因

1.运行环境问题:一般来说,“运行环境”是排名第一的服务器宕机类别,运行环境可以看作是支持数据库服务器运行的系统和资源集合,包括操作系统、硬件以及网络等。在运行环境的问题中,最普遍的问题时磁盘空间耗尽。

2.服务器性能问题:最常见的服务器宕机原因是运行很糟糕的SQL,但也不能确定一定是这样的,还有其他的可能,比如也有些问题是由于服务器Bug或错误的行为导致的。

3.复制问题:复制问题通常由于主备数据不一致导致。

4.数据丢失或损坏:数据丢失问题通常由于错误操作导致,并总是伴随着缺少可用备份的问题。数据丢失,一般情况下是由于drop table的错误操作导致,并总是便随着缺少可用备份的问题。

 

二、服务器宕机的解决办法

1、要即时发现服务器宕机的问题:时间就是金钱,这是不变的真理。要第一时间,发现宕机的问题,例如是否是应用程序导致内存溢出或者泄露;是否是进程过多或者不断创建,耗尽资源导致;是否是应用程序异常导致;是否是遭受黑客入侵攻击导致;是否是误操作导致等等。服务器宕机时,为了避免造成不必要的损失,要尽早通知服务商解决相关问题。

2、多准备服务器:最好准备2个服务器,他们存放的内容相同,而ip不同,并且机房的地理位置不同。这样2个主机,同时宕机的可能性就大大降低了。第一时间发现宕机问题后,可以迅速的通过修域名记录,指向目前正常的网站空间

服务器宕机原因排查思路

服务器工作步骤有哪几步呢?其实呀,基本上分4个步骤。

步骤1:客户端发出域名请求,形如xxx.com
这里可能出现的错误是,手工输入的域名网址错误。自然不能访问正确的网站了。这是最初级的错误。解决的办法自然是检查正确无误后重新输入。

步骤2:通过dns服务器,将域名解析成对应的ip

这个步骤很关键,也是问题的高发期,40%的宕机,都是因为dns服务器不稳定造成的。Dns服务器,就像联系着姓名与电话号码的查询簿。这里如果出现问题,其后果是不堪设想的。相信绝大部分的站长都是选用空间来建设网站,只有条件好一点的才会进行服务器租用或者服务器托管,极少数人拥有独立的服务器。这就导致了DNS服务器的压力巨大,变得极不稳定。如果这时同服务器的网站能打开,就你的不能打开,那就是这个步骤出现的问题了。解决的办法是选择一些专业的DNS解析服务商来提供服务,尽量避免服务器宕机情况。

步骤3:与ip对应的网站空间,或服务器做出响应

这个步骤,引起服务器宕机的概率在40%左右。这里故障的原因,就是服务器宕机了。一般站长,所指的宕机,也主要在这里。服务器当机的原因很多,流量过大,DDOS攻击,内部不稳定的程序,等等…
解决的办法就是准备2个网站空间,其中一个为备份空间,但是ip不同,地理位置也不一样,当第一时间发现宕机时立刻解析到备份空间去,尽量减少损失。

步骤4:数据下载至本地网络,完成一次请求
这里出现问题的机率较小,不过也有可能。其表现的症状就是,在你的机器上不能访问你的网站。而在别人的电脑上,却是可以打开的。如果发生了这样的情况,那就可能是因为你所在地的网络不稳定,而造成的访问中断。

要想知道哪一步出现问题,我们可以通过排除法,依次排除故障,从而实现快速的恢复主机。


作为运维工程师来说,日常工作中肯定会遇到服务器宕机的问题,除了快速恢复业务之外,排查宕机原因有时候也很麻烦,以下是自己对宕机可能的原因及排查思路的一个简单总结,比较常规,还不涉及系统参数配置的优化,仅供参考,后续有新的思路会再补充。

1.真假死机

  真死机
  服务器确确实实宕机了,导致服务不可用,无法访问。
  假死机
  由于硬件资源暂时性地被消耗殆尽,因而无法对外部指令进行响应的现象,比如CPU和内存被占满,表明有软件正在大量的占用服务器的内存和CPU,或者网站处于访问高峰期,带宽资源跑满等,这时只需要等待一定的时间,待服务器腾出更多的硬件资源即可恢复正常,如果长时间恢复不了,可能需要我们手动处理下,比如杀死进程。

  那么,如何解决这个问题呢?第一,要从网站着手,看看是不是网站程序有不合理的地方,数据查询,是否有死循环。尽可能的用html静态网页显示,减轻数据库的压力。第二,升级服务器硬件配置,例如:加大服务器内存,升级服务器CPU,加大服务器带宽,这样就可以解决服务器假死机的问题。

2.宕机可能原因

访问量过高,超出系统承载能力,包括正常的短暂性突增,或者异常访问,比如黑客攻击等;
服务器配置过低,导致即便访问量不算太高也超出了系统承载能力,需要提高配置;
应用程序本身存在bug,比如死循环,消耗系统资源的逻辑导致资源耗尽;
某些系统参数配置不合理,比如fd个数或允许连接数过低等;
多线程造成的死锁现象,互相等待对方释放资源;
服务器硬件故障,比如内存故障,需要更换;
系统内核bug,比如软死锁等,需要升级内核;
当然,也有可能是人为误操作导致的;
3.排查思路  

  首先判断是真死还是假死,如果假死,那等一段时间或手动杀死进程即可,如果真死则需要进一步排查;

  查看系统日志 /var/log/messages,分析宕机时间前后的系统日志,看看是否有明显的报错,比如oom或内核bug;

  如果启用了kdump,也可以查看宕机生成的crash文件,默认/var/crash目录下,注意生成时间是否对应;

  查看监控数据,在宕机前有没有指标异常,比如CPU或内存突增,可能短暂突发上量超过系统承载能力;

  也有可能是硬件故障,可以看下/var/log/dmesg,或者登录远控查看系统日志,比如内存故障等,可能需要更换;

4.如何处理

  首先恢复业务、

  分析问题,排查原因、

  制定解决方案、

  完善监控,及时发现、

  复盘总结,避免再次发生,

  经验积累,知识库

5.没有办法的办法

  万能的重启

猜你喜欢