服务器架构 简单的服务器架构方案


线型服务器群组和树状服务器群组的比较与分析

2007-10-22 Kelvin-Wang

 

1:什么是线型服务器群组,什么是树状服务器群组?

       所谓的线型服务器组,就是指单个服务器本身集成完整的功能(例如服务器本身具有数据运算分析及网络吞吐功能),当服务器服务能力不足的时候,添加一个该类型的服务器到服务器群组中,提供服务,通过分流提高服务的能力。服务能力不足可能表现在多个方面(如带宽不足,处理器处理能力不足,系统硬件io性能不足,操作系统本身运行能力不足等),无论哪个方面,如果产生问题,就需要添加新的服务器来进行服务补充。

       所谓的树状服务器群组,是指每个单点服务器都由一个小型集群组成,当服务能力不足的时候,可以通过改进小集群或者添加新的集群来提高服务能力。

       附图说明两种服务器的结构。

(图1)线型服务器群组

 

(图2)树状服务器群组

 

 

2:提高服务能力的方法

       对于线型服务器群组,当扩展服务能力的时候,需要同时购入服务器和服务带宽。

       对于树状服务器群组,当需要扩展服务能力的时候,可以通过分析是由于什么原因导致服务能力不足的判断来进行相应的扩展(可以改进小型集群或者添加集群)。

 

 

3:硬件成本分析

       线型服务器在扩展服务能力的时候,需要同时购入带宽和服务器。

       树状服务器群组在扩展服务器能力的时候,通过分析进行改进。当处理能力不足的时候,可以通过改进或购入新机器添加到小集群内部的方法来改善性能。当然当网络不足的时候,就需要添加一个完整的集群来进行服务器扩展。

      

       由于带宽的购入价格是比较昂贵的,高性能服务器的价格也是比较高的。那么树状服务器就可以通过其具有的特性,通过小型集群的一些分布,来充分使用购入的带宽,也可以通过多个普通服务器的互补,来达到高性能的服务能力。

 

 

4:软件成本分析:

       线型服务器上面的服务软件,由于功能比较复杂,软件本身集成了数据运算及吞吐处理,而且要求每种能力都比较高,导致软件开发难度较大,后期的改进及维护成本比较高。

       树状服务器上运行的软件,由于服务器是由一个群组来共同完成的,导致服务器的软件构架结构比较复杂,但是由于处理功能比较明显的分隔开来,软件组织相对松散,协同开发以及后期的改进维护就显得比较容易。

 

 

5:服务器功能扩展能力:

       线型服务器组:在软件中扩展功能后,需要注意对其它模块的影响,由于软件本身比较复杂,需要特别的注意。

       树状服务器组:在对应的处理处添加新功能。由于功能相对松散,使得添加功能后引入问题的可能性降低。

 

 

6:对软件设计的影响

       在当前软件设计中,我们采用线程来进行不同层次的设计实现,如果想使得软件可以通用,我们可以采用多进程方式来做。比如,我们可以把网络层当作一个独立的进程,把实际处理也分成独立的进程。那么,当线型服务器不能满足要求的时候,就可以把程序迁移迅速的进行树状结构的布局了。

 

 

总结:

       本文主要讨论如何提升服务器节点本身的服务能力。主要是提高网络带宽的利用(这个费用比较高)。

 

       本文提出两个主张:1-在服务器设计时,分析软件性能瓶颈以决定采用哪种方案。

2-在服务器软件设计实现时,采用多进程交互的方式替代现有的多线程设计,在以后的服务器改进迁移过程中有更好的迁移性能及成本性能。

 

       在实际应用中,无论我们开发那种结构的服务器,开发成本都是比较高的,但是在后期的改进和维护中,树状结构就有较好的表现。

 

       在服务器成本方面,假设带宽的费用比较高(而且网络带宽是循环性的),那么,树状结构可以更好的利用网络带宽。而且树状结构可以通过整合服务器群组来达到高性能服务器的要求。

 

       在实际运行中,我们可以通过对某些服务器进行替换来获取实际的比较数据。在我们的服务器构架中,可以通过对sn或者ims的局部替换来获取这些数据。

 

       这里,有个基本的假设,就是内网传输的延时足够的低,在实际的应用中,我们发现,在内网传输中,一个报文的传输速度基本上是 远远 < 1ms 的。基本上可以忽略不计。

 

       这个yy的想法中也许有些不足,希望大家一起来讨论并改进。

你可能感兴趣的:(服务器架构 简单的服务器架构方案)