“宕机”的拼音读法为:dàng ji。宕机属于计算机的术语,指电脑或者服务器不能正常工作。口语中我们简单地把停掉机器叫做down机,转换为汉字是“宕机”,不过多数人都叫做“当机”/“死机”,虽然不规范但却流行。
down就是up的反义,就是计算机不能正常工作了,包括一切原因而导致出现的死机。
通俗一点来说,宕机我们完全可以理解为服务器或者电脑出现故障,导致了无法正常工作。相信我们在浏览一些不知名的网站,有的时候出现无法访问的问题,那么这种现象都可以叫服务器宕机。
B站回应崩了:部分服务器机房发生故障
周二 ( 7 月 13 日 ) 晚间有消息称,B 站出现服务器宕机事故。消息传来之后,哔哩哔哩股价短线走低,涨幅收窄至 3%。
稍早前,有多位网友反映,B 站网页端和移动端均出现加载失败现象,有网友一开始还以为是手机或者信号的问题。
针对昨晚哔哩哔哩全平台崩溃一事官方现回应称,B 站的部分服务器机房发生故障,造成无法访问。技术团队随即进行了问题排查和修复,现在服务已经陆续恢复正常。
除此之外,官方未对任何服务器方面或技术方面的细节进行讲解。
严格的说,Hbase 和它的支持系统源于著名的Google BigTable和Google文件系统设计(GFS的论文发于2003年,BigTable的论文发于2006年)。而 Cassandra 则是最近Facebook的数据库系统的开源分支,她在实现了BigTable的数据模型的同时,使用了基于Amazon的Dynamo的系统架构来存储数据(实际上,Cassandra的最初开发工作就是由两位从Amazon跳槽到Facebook的Dynamo工程师完成的)。备注1Dynamo是亚马逊的key-value模式的存储平台,可用性和扩展性都很好,性能也不错:读写访问中999%的响应时间都在300ms内。
在Dynamo的实现中提到一个关键的东西,就是数据分区。假设我们的数据的key的范围是0到2的64次方(不用怀疑你的数据量会超过它,正常甚至变态情况下你都是超不过的,甚至像伏地魔等其他类Dynamo系统是使用的 2的32次方),然后设置一个常数,比如说1000,将我们的key的范围分成1000份。然后再将这1000份key的范围均匀分配到所有的节点(s个节点),这样每个节点负责的分区数就是1000/s份分区。
如图二,假设我们有A、B、C三台机器,然后将我们的分区定义了12个。
图二:三个节点分12个区的数据的情况
因为数据是均匀离散到这个环上的(有人开始会认为数据的key是从1、2、3、4……这样子一直下去的,其实不是的,哈希计算出来的值,
备注2DHT(Distributed Hash Table,分布式哈希表),它是一种分布式存储寻址方法的统称。就像普通的哈希表,里面保存了key与value的对应关系,一般都能根据一个key去对应到相应的节点,从而得到相对应的value。
备注3Consistency(一致性):即数据一致性,简单的说,就是数据复制到了N台机器,如果有更新,要N机器的数据是一起更新的。
Availability(可用性):好的响应性能,此项意思主要就是速度。
Partition tolerance(分区容错性):这里是说好的分区方法,体现具体一点,简单地可理解为是节点的可扩展性。
定理:任何分布式系统只可同时满足二点,没法三者兼顾
这个理论说明,分布式(或共享数据)系统的设计中,至多只能够提供三个重要特性中的两个——一致性、可用性和容忍网络分区。简单的说,一致性指如果一个人向数据库写了一个值,那么其他用户能够立刻读取这个值,可用性意味着如果一些节点失效了,集群中的分布式系统仍然能继续工作,而容忍分区意味着,如果节点被分割成两组无法互相通信的节点,系统仍然能够继续工作
对比关系型数据库,NoSQL的优点在哪里看NoSQL具有高性能、良好的扩展性以及高可靠性等优点。然而,没有一个产品可以在所有的方面都达到完美。当你仔细审视NoSQL的产品,完全可以找到一些弱点,就像那些杰出的优点一样逗鲜明出众地。基于此原因,选择经过验证的NoSQL产品就是关键。在本文中,作者从运行方面分析Cassandra,HBase以及MongoDB等产品的扩展性和可靠性。
Cassandra故障恢复以及数据一致性
Cassandra在数据的分布式和可靠性方面展示了自身卓越的性能。首先,作者检测了它的分布能力,Cassandra通过一致性哈希算法来实现数据的分配处理。
Cassandra的一致性哈希算法
通过一致性哈希算法,用户可以不经过查询元数据就能搜索并发现key存储在哪个节点上。用户通过计算key的哈希值就能发现key,同样只通过Hash值就可以找到节点所在。你可以想像一致性哈希被作为哈希值顺序的放在圆环上,每个节点处理环上的一个部分。如果环上增加了一个节点,那么某个拥有很大体积数据的特定节点就会被拆分然后分配给新的节点;如果某个节点被移除,分配给该节点的资源就会转移到邻节点上。利用这种方式,Cassandra使增加或者移除节点带来的影响降到了最小。
Cassandra的运行中不需要主服务器,换句话说:并没有特定的服务器来管理数据的分配或者故障恢复。这就意味着,Cassandra并不存在单点故障(Single Point Of Failure,SPoF)。取代主服务器,每个节点都和其他节点周期性地分享元数据,这个也被称之为Gossip协议。使用Gossip协议,节点可以对其他节点的运行状态进行查询。
Cassandra通过提供一致性级别来实现系统的可靠性。如果使用一个很低的一致性级别,即使一个节点宕掉也可能导致整个服务的停滞。例如,3个节点中的某一个节点在存储副本数据的过程中宕掉了,一个通用的写 *** 作,就不能立刻返回成功信息,这是因为故障节点不能完成写入数据的请求。然而,如果一致性级别被定义成一个约定值或者是1,而存活的节点数大于或者等于设定值,这样的话就能立刻返回成功。如果是这样的话,只有在所有的3个节点都同时宕掉,才会发生请求错误。
但是,读/写 *** 作真的没有受到节点出错的影响吗看
为了证明这点,当有新节点添加时,作者在不断的服务器请求下故意让一个节点发生故障。结果如下所示:
移除一个节点和增加一个新的节点
以下是移除一个节点和增加一个新的节点的结果:
在管理工具中明确移除一个节点,存储在此节点中的数据就被迁移到剩余的节点中,然后该节点被移除。
当一个新节点被增加,这个被称之为引导指令,增加的节点就会向种子节点(seed nodes)报告它已经添加完毕。基于配置信息,新节点会被添加在环上配置信息中指定的范围,或者环上资源被占用最高的节的附近—— 当然这是在没有其它节点被引导在这个范围上。
数据从那个节点迁移到到新节点上。
一旦数据迁移进程结束,新节点就能进行使用。
节点失败后增加一个新节点
下面是节点失败后新增节点的结果:
当一个节点宕掉之后,存储在节点上的数据并没有迁移到其他的节点上,服务在于两个副本(节点)共舞。换句话说,并没有返回任何错误信息,即使在这段时间里又收到服务请求。
当一个新节点被增加的时候,该节点会被分配到环上的一个特定区域。然而,引导指令并没有执行,因为引导指令只有系统中存在3份副本的时候才会被执行!
新增的节点并没有数据,但是它能处理请求,这是因为它可以提供服务。如果此时接受到一个读请求,节点并不会对key返回数据。如果备份因子是3而读一致性的级别是1,那么1/3的读请求可能不会返回数据。如果一致性级别被设置为约定值,1/6的读请求可能会返回空数据。简单来讲,这没有读一致性的保证,除非故障节点已经恢复。实际上在级别1中,协调节点是最有可能第一个接受来自新节点的响应。出现这种情况是因为没有来自新节点的I/O请求——因为它没有数据。出于这个原因,新的节点比现有节点有更大的机率返回空数据。
当通过管理工具对新节点做Read Repair时,节点通过读其他节点的同步数据才能得以建立。此时读一致性就被破坏了,只到Read Repair完成。
即使节点失败,Cassandra也能提供无错的服务。尽管Cassandra在写数据的时候,展示了自身强大的性能,但是在读数据的时候并非如此,因为Read Repair的延迟必然导致数据的非一致性的延迟。因此,为了在节点故障中保持读一致性,需要使用以下的方法:
设置读一致性水平为逗all地然后执行读 *** 作。在这种情况下,就能获得所有来自副本的最新数据。
一旦读请求失败,Cassandra会再次进行尝试。这是因为在第一次读写的时候Read Repair可能会作为第二次读写时的恢源数据源。然而,这种方法能确保Rread Repair在二次读之前完成。(当一致性的水平较低,那么读修复就会在后台执行,这是一个独立的线程,区别于读 *** 作过程的线程)
HBase的失败因子和恢复方法
HBase包含以下几个组件:
HRegionServer负责数据的分布处理,由HMaster进行监控。HDFS存储和复制数据,Zookeeper存储了HMaster以及备选HMaster的储存单元信息。如果没有为每个组件建立冗余,所有的组件都会成为SPoF。
HRegionServer主要负责响应用户I/O请求,向HDFS文件系统中读写数据,是HBase中最核心的模块。HRegionServer内部管理了一系列HRegion对象,每个HRegion对应了Table中的一个Region,HRegion中由多个HStore组成。每个HStore对应了Table中的一个Column Family的存储,可以看出每个Column Family其实就是一个集中的存储单元,因此最好将具备共同IO特性的column放在一个Column Family中,这样最高效。(百度百科)
HRegionServer把数据分布到一些称之为逗region地的单元中,region就是将一张大表格通过指定字段对数据进行排序,然后针对排序键的范围拆分出的结果(就像大表中的一小块)。每个region排序字段的值范围存储在一个单独的region中,被称为meta region。而region和meta region的对应关系被存储在root region中。长话短说,region服务器存储着一个层次树中,包含了root region、meta region以及data region。如果一个region服务器宕机,这个region服务器包含的region都不可以被访问直到被分配给了其它region服务器。因此产生了服务器宕机时间,直到那个region被恢复。①
运行环境:一般来说,此原因是排名第一的服务器宕机类别,运行环境可以看作是支持数据库服务器运行的系统和资源集合,包括 *** 作系统、硬件以及网络等,在运行环境的问题中,最普遍的问题是磁盘空间耗尽。
② 服务器性能:最常见的服务器宕机原因是运行SQL,但还有其他的可能,比如也有些问题是由于服务器Bug或错误的行为导致的。
③ 复制问题:复制问题通常由于主备数据不一致导致。
④数据丢失、损坏:数据丢失问题通常由于错误 *** 作导致,并总是伴随着缺少可用备份的问题,数据丢失一般情况下是由于drop
table的错误 *** 作导致,并总是伴随着缺少可用备份的问题。
| 要及时地发现服务器宕机的问题!!!
有一句话说得很好,时间就是金钱,要最快时间发现宕机的问题,例如是否是应用程序导致内存溢出或泄露,是否是进程过多或不断创建、耗尽资源等,是否应用程序异常导致,是否是遭受黑客入侵攻击导致,是否是误 *** 作导致等等,服务器宕机时,为了避免造成不必要的损失,要尽早通知服务商解决相关问题。
| 多准备空间
最好准备2个网站空间,它们存放的内容相同,但IP不同,且机房的地理位置不同,这样宕机的可能性就大大降低了,第一时间发现宕机问题后,可以迅速地通过修改域名记录,指向目前正常的网站空间。简要回答 宕机是指 *** 作系统无法从一个严重系统错误中恢复过来,致使系统长时间无响应,只能重启计算机的现象。
当某位计算机维修人员对普通客户说,你的计算机经常宕机吗?相信很多用户都无法回答,毕竟宕机这个词太专业了,很多人都不明白是什么意思,下面让我们一起去了解宕机的真实含义吧。
详细内容 01
一般情况下宕机指的就是计算机主机出现意外故障而死机。其次,一些服务器例如数据库死锁也可以称为宕机,一些服务器的某些服务挂掉了。
02
一般来说,普通的电脑出现故障,称之为“死机”,很少会说宕机;而一些知名网站或者媒体服务器出现故障时,通常会被报道为宕机。
03
宕机是一种非常常见的现象,一般是指网站服务器出现故障,导致服务中断。由于服务器通常都是365天不间断的工作,因此很多网站都会出现宕机故障,不过大网站通常会配备多台服务器,因此宕机出现的概率极少。
04
对一些中小网站来说,其实每天都在上演宕机,只是鲜为人知罢了。媒体从来只会曝光成功的大型网站宕机故障,一些失败的企或小网站,是没有理会或在乎的,因此宕机事件也不是经常有报道,但是很多宕机现象在很多中小网站中,基本天天都在上演。
05
防止宕机的方法:可以设置一个宕机警报框架,对有可能发生宕机的网站进行监控,一般情况下,我们可以设置15分钟就诊断一次,从而减少出现宕机的几率。服务器的问题,我现在也维护一台windows2003 Server 标准版的服务器,服务器是IBM的X系列,曾经因为环境问题烧掉过一个CPU(原服务器是双CPU现在放在高标准机房),未知问题坏过一次电源,这些硬件问题都是厂家客服解决。所以你首先考虑硬件问题,硬件问题怎么解决:机房环境要合格,放在类办公室的地方,高速消耗。软件问题首先系统要打好ServicePack补丁,我维护的这台win服务器在内网内,不用经常去打安全补丁。我个人觉得为了求稳尽量少变。其次,服务器的软件环境要尽可能简单,与服务器部署服务无关的其他第三方应用程序一律删除。比如有的服务器管理员喜欢拿服务器当P2P下载机用。三、windows和Linux的选择,Linux各种那个发行版方向定位明确,所以很多自定义的Linux服务器效能非常高,比如豆瓣的Getoo定制的服务器。你要想部署Linux,在自己机器上装个或者虚拟一个,玩熟了再在生产应用中部署。CPanel的这个问题,我看到的好像和你们老板看到的一样。面板这种东西要通用才方便。
服务器崩溃的几种原因第一:高并发流量或请求超过服务器承受力
无论是企业和个人在租用服务器的时候都会受到峰值承受限制的,一旦超过服务器的承受能力,就会导致服务器瘫痪,应用程序暂停,网站无法访问。服务器都是有峰值限制的,不可能承受无上限的并发能力。而造成服务器瘫痪的原因就是在同一段时间内,访问人数多,造成高流量的突进。超出了服务器的承受范围。这种例子我们经常可以看到,比如双11期间,很多公司为了应对双11的高流量,开启的紧急避险措施和大规模的服务器负载能力。还有春运期间,12306网站由于受到高并发的问题,也会频繁的出现崩溃。
第二:磁盘空间不足
导致服务器无法正常运行的原因也有可能是磁盘空间溢出导致的。企业的网络管理员应该实时关注磁盘的使用情况,并且要在规定的时间把磁盘储存的数据备份到另外的存储设备里面,确保数据无遗失,推荐相关阅读:哪些网站应该使用服务器呢?
服务器的磁盘大部分的资源都是被日志文件占用了,包括web服务器,数据库等日志信息都包括其中,以及应用程序服务器日志文件均与内存泄漏是同等的危害。我们可以采取措施保护我们的数据和日志文件,日志文件对应用程序进行异地存储。日志文件系统空间如果满了,则web服务器将自动被挂起,但是机器本身瘫痪和宕机的几率就会大大降低。
第三:服务器超载
连接web服务器都是用一个线程链接的,web服务器会在线程用过之后自动挂起,不会再未已链接的线程提供任何服务。如果我们用了负载机制,那么如果该服务器没有响应,则该服务器的负载则会自动的转移到其他web服务器上,这个 *** 作会使服务器一个接一个的用光线程。这中 *** 作可能会导致整个服务器机组被挂起, *** 作系统同时还有可能在不断接收新的链接,而我们的web服务器无法未其提供服务,致使服务器崩溃。
第四:服务器遭到恶意攻击
网络科技的不断发展同时,黑客的技术和渗透也是很强的,服务器和系统遭受到攻击已经是普遍存在的了。所有服务器都会面临这个问题,这个是无法预测的危险,我们只能实时做好安全防护,将被攻击的风险降至最低。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)