如何保证服务器可以支持百万用户访问?服务器品牌有哪些?如何选购服务器?对于这些问题,今天我们就一起来看下关于服务器的相关知识。
假如你开发了一个网站或者一个app把他放到服务器上,之后你把它发布到了网上,运行良好,每天有几百人的访问量,用户量不大,能快速地响应用户的请求。
但是随着你的运营,你的网站或app出名了,服务每天要承担着成千上万的人来访问,这个时候对你来讲,这是个好消息,但是对你的服务器来说这是个坏消息,因为它变得慢了,用户多了,打开速度就慢了,服务器就很卡,所以它需要扩展了,你的服务器需要为成千上万的用户提供 7*24 不宕机服务,那么如何扩展,才能保持服务器不宕机呢?
一、服务器如何才能保证成千上万的人访问呢?
1、引入负载均衡器
负载均衡器的使用使得我们可以在多个服务器之间分配负载。
例如:
想象下有一万个用户在一分钟内来访问你的服务器。
遗憾的是,你的服务器在一分钟内只能保证5千个用户的流畅访问。这怎么办呢?同时运行两个服务器就行了,就是增加了服务器来分配负载。
负载均衡器的功能就是把访问请求分发到两台服务器上。用户 1 往左,用户 2 往右,用户 3 再往左。。。以此类推。
如果一次有 100万个用户同时访问服务器,这该怎么解决呢?确切地说,你可以扩展到200台付款服务器,之后让负载均衡器分发请求到这200服务器上。
2、扩展数据库
虽然我们上面提到,关于大量的用户,我们可以用成百上千台服务器处理请求,但是他们都是用同一个数据库存储和检索数据。
那么,我们不能以同样的方式来扩展数据库吗?稍有不同。
我们需要做的第一件事是把数据库分成多个部分。一部分专门负责接收并存储数据,其他部分负责检索数据。
3、缓存和内容分发网络(CDN)
有什么方式能使服务更高效?
我们使用缓存而不是对每个请求都重新处理,缓存用于记住最后一次的结果并交由其他服务或者客户端,这样就不用每次都请求后端服务了。
缓存的加强版叫内容分发网络(CDN),遍布全球的大量缓存。将这些缓存服务器分布到用户访问相对集中的地区或网络中,在用户访问网站时,利用全局负载技术将用户的访问指向距离最近的工作正常的缓存服务器上,由缓存服务器直接响应用户请求。
这使得用户可以从物理上靠近他们的地方来获取网页内容,而不是每次都把数据从源头搬到用户那里。
4、分片处理
分片究竟是什么意思呢?其实也很简单:Facebook 上需要为 20 亿用户提供个人资料, 可以把你的应用架构分解为 26 个 mini-Facebook。
用户名如果以 A 开头,会被 mini-facebook A服务器 处理, 用户名如果以 B 开头,会被 mini-facebook B服务器 来处理……
分片不一定按字母顺序,根据业务需要,你可以基于任何数量的因素,比如位置、使用频率(特权用户被路由到好的硬件)等等。你可以根据需要以这种方式切分服务器、数据库或其他方面。
二、服务器品牌
服务器的品牌非常多,应用在各个领域中,我们来看下服务器用的多品牌有哪些。
不止这些,还有中兴、清华同方、富士通、海康等等,也是大家用的多的品牌。
三、服务器选购主要参数有哪些?
1、带宽:服务器5M带宽在线多少人?
我这里详细的给你介绍下,带宽和同时在线人数的计算,也方便后面有想了解的朋友在你这个提问上寻找答案。
首先,服务器带宽说的5M带宽,实际上是5Mbps/=625KB,需要是独享带宽,共享的话因为他人的因素无法计算。
然后计算你的网站大小,普通大小的网站页面(图片少,压缩过,代码优化)只有几K,我们姑且按照50K计算。
所以 625kb/50k=12.5人,大概同时在线12.5人访问这个50KB的页面是没有问题的。
要值得注意,这个是同时,也就是传统意义上的同一秒,只要有先后发送请求的顺序就可以错开,所以5M带宽严格意义上是很大的,如果你的页面小,几乎可以满足千人在线,因为大部分的人都是点击后浏览页面的,不会说一直给你发送请求。
2、CPU
中央处理器(CPU,Central Processing Unit)是是一台计算机的运算核心和控制核心。
计算机的性能在很大程度上由CPU的性能决定,而CPU的性能主要体现在其运行程序的速度上。影响运行速度的性能指标包括CPU的工作频率、Cache容量、指令系统和逻辑结构等参数。
主频:主频也叫时钟频率,单位是兆赫(MHz)或千兆赫(GHz),用来表示CPU的运算、处理数据的速度。通常,主频越高,CPU处理数据的速度就越快;
缓存(Cache):实际工作时,CPU往往需要重复读取同样的数据块,而缓存容量的增大,可以大幅度提升CPU内部读取数据的命中率,而不用再到内存或者硬盘上寻找,以此提高系统性能。但是由于CPU芯片面积和成本的因素来考虑,缓存都很小;
核心数:般情况下每个核心都有一个线程,几核心就有几线程,但是intel发明了超线程技术,可以让单核模拟多核心工作,intel的超线程可以让单核心具有两个线程,双核四线程 ;
线程数 :线程数多当然速度就快,但功耗就大 ,从英特尔品牌来看,主要有酷睿、至强、奔腾、凌动、赛扬、安腾和应用在物联网领域的几大品类。PC多以酷睿系列为主,至强则是服务器级处理器的唯一选择。在真实的场景中,确实有玩家将至强E3处理器应用在PC之上,这主要是因为服务器级CPU会比一般PC能支持更大的缓存和多处理(安装了多个物理CPU)。
3、芯片组
这里说的芯片组,是X86系统独有的,一般RISC处理器都是SoC,芯片即为系统;X86比较独特,以前是由CPU、南桥、北桥组成一个系统,现在是由CPU+PCH形成一个系统。因为接口和总线太多,太复杂,又由于X86系统一直传承着继承性,兼容性等特点,所以多个处理器可以匹配不同主板,同一个主板可以适配多种处理器,所以这样做了功能拆分。
4、内存
服务器采用专用的ECC校验内存,并且应当与不同的CPU搭配使用。通常情况下,内存数量越大,服务器的性能越高。特别是对于数据库服务、代理服务、Web服务等网络服务而言,内存数量显得尤其重要。通常情况下,入门级服务器的内存不应该小于2GB,工作组级的内存不小于4GB,部门级的内存不小于8GB。
5、硬盘
SATA:Serial ATA接口,即串行ATA,采用串行技术以获得更高的传输速度及可靠性。目前是第二代即SATAII。
SCSI:全称为“SmallComputer System Interface”(小型计算机系统接口),具有应用范围广、多任务、带宽大、CPU占用率低,以及热插拔等优点,主要应用于中、高端服务器和高档工作站
SAS:Serial Attached SCSI接口,即串行SCSI, 采用串行技术以获得更高的传输速度。目前仍然是第一代
SSD:固态存储硬盘(Solid State Disk)其特别之处在于没有机械结构,以区块写入和抹除的方式作读写的功能,与目前的传统硬盘相较,具有低耗电、耐震、稳定性高、耐低温等优点。
另外,为了扩充数据存储空间,保证数据存储的安全性,成倍提高数据读取速度,部门级和企业级服务器还往往采用SAS RAID卡,将若干硬盘组建为磁盘阵列。入门级服务器可采用廉价的SATA RAID卡,以实现相似的功能。
6、网卡
既然服务器要为网络中其他计算机提供服务,自然就要实现与其他计算机之间的通讯。即使服务器的处理能力很高,如果无法快速响应客户端的请求,那么,就会给网络传输造成瓶颈。因此,服务器应当连接在传输速率最快的端口上,并最少配置一块千兆网卡。对于某些有特殊应用的服务器(如FTP服务器、文件服务器或视频点播服务器),还应当配置两块千兆网卡。需要注意的是,千兆网卡通常需要安装在64位PCI插槽中。
7、冗余
可靠性是服务器最重要的指标。既然服务器在网络中的作用如此重要,那就要求服务器必须非常稳定,以便能随时为客户端能提供服务,也就是说,服务器需要不间断地工作。另外,所有重要数据都存储在服务器上,一旦硬盘损坏,数据将全部丢失。为了保证系统的可靠性,服务器采用了专门的技术。
磁盘冗余。磁盘冗余采用两块或多块硬盘来实现磁盘阵列,即使一块硬盘损坏,也不会丢失数据。
部件冗余。由于所有硬件设备都有发生故障的可能,因此,许多重要硬件设备都不止一个,例如,网卡、电源、风扇,这样可以保证部分硬件损坏之后,服务器仍然能够正常运行。
热插拔。所谓热插拔,是指带电进行硬盘或板卡的插拔操作,实现故障恢复和系统扩容。既然服务器是7×24小时工作的,那么,即使在更换或添加硬盘,甚至在插拔板卡时也不能停机。因此,热插拔对于服务器则言,就显得非常重要。
8、可扩展性
服务器的可扩展性既被用于部件冗余以保证运行的稳定性,同时,也被用于提升系统配置、增加功能。因此,服务器除了有较多的硬盘位置、内存插槽、CPU插座外,还拥有丰富的板卡插槽。如果硬盘数量较多,还应当能够扩充电源模块。