该文原版著作权属于Malcolm Davis,中文版翻译权属于田东山所有。引用、转载请注明来源为库吧网。
这几年来,我经常跟一些程序员、数据库管理员、系统管理员讨论一个问题:想要获得更好的可伸缩性(scalability),我们到底是应该把硬件升级为一台性能更强大的服务器还是应该买多台性能差一些但是可以组装起来协同工作的服务器集群。
系统的可伸缩性(scalability)可以定义为:当系统硬件升级之后,系统的吞吐量按比例增长的能力。比如,单台服务器可以对100个用户进行服务,那么升级为两台服务器之后,系统至少应该可以对200个用户进行服务。
垂直可伸缩性(Vertical scalability)就是对单个一台服务器添加更多的内存和CPU,也叫做纵向扩容(scale up)。纵向扩容适用在数据库层,因为数据库服务器需要:更大的共享内存空间、很多相互依赖的线程、紧耦合的内部互连接(Tightly-coupled internal interconnect)。
水平可伸缩性(Horizontal scalability)就是添加多台内存和CPU差不多的服务器,也叫横向扩容(scale out)。横向扩容更适合于web层,因为web层具有以下特点:不需要太大的共享内存空间、线程之间通常依赖性不大、多是松耦合的外部互连接(Loosely-coupled external interconnect,这是很重要的一点)、可能需要不同的操作系统做不同类型的服务器。
[译者注:以下部分摘自刘守照的文章
]
Scale Out 按字面意思是超过尺寸范围,而Scale Up则是按比例增高。即使用靠增加处理器来提升运算能力和增加独立服务器来增加运算能力。
对于服务器体系来说必须要考虑的一点就是可扩展性(Scalability)。除非业务永不增长,否则随着使用人数不断增多,服务器就一定会很快达到性能和并发极限。解决这个问题,通常只有两个办法:即代表分布式计算的Scale out和以主机或机箱式为主的Scale up。
Scale Out(向外扩展):就是指企业可以根据需求增加不同的服务器应用,依靠多部服务器协同运算,借负载平衡及容错等功能来提高运算能力及可靠度。
Scale Up(向上扩展):指企业后端大型服务器以增加处理器等运算资源进行升级以获得对应用性能的要求。
在现今这两种技术已经没有明显的区别,各个提供商不仅提供用于分布式计算的Unix和Windows平台,还提供用于集中式计算的Unix和Windows平台。甚至传统的集中式计算大型机也正具有分布式计算的性质——如在IBM zSeries服务器上使用Linux和z/VM的虚拟性能,就是其中的证明。
但是更大更强的服务器同时也是更昂贵的,往往成本会大于部署大量相对便宜的服务器来实现性能的提升。而且服务器性能所能提高的程度也有一定的上限(分布式的部署相对来说性能提高的上限更高些)。所以一种呼声是应该使用向外扩展(Scale Out)来实现可扩展性,同时可以让使用者得以保留通过增加服务器以提升系统能力的后路。
但是在实现中也有很多困难需要解决:
首先,要想成功地实现向外扩展架构必须解决复杂的分布式计算问题(相对来说Scale Up方案不需要考虑这个问题),而这个问题的解决往往需要很复杂的技术和相对多的资金.大型站点如Google、Yahoo和Amazon.com,都自行研发大量相关技术。
其次,Scale Out方案还需要对原先是用的软件进行大量的重写工作,以保证系统能在分布式服务器上运行(Scale Up方案则对现有软件几乎没有改动要求)。这一步往往是每个公司的开发人员的噩梦。一个不好会使开发人员的所有工作白费。
再者,Scale Out方案始终面临着数据集中的问题,即拆分过的数据在服务器逻辑体系中仍然是各自相对集中的而非无限随意拆分。如果大量的逻辑放在数据库服务器一端,数据库服务器将会使得系统失去Scale out的能力和可能。因此,要保证Scale out的能力就必须保证数据库只处理实质性的数据提交和不可避免的数据查询,对于能够避免的数据查询和非实质性数据提交都应该想办法予以避免。而具体的策略和方案相对没有最优的方法。
原文:http://html.libzone.cn/translation/2009/10/04/scale_up_vs_scale_out.html
分享到:
相关推荐
本文档提供了详细的指导,帮助用户完成 vSAN 的扩容操作,包括横向扩容、纵向扩容和其他硬件扩容等。 首先,vSAN 扩容可以分为横向扩容和纵向扩容两种。横向扩容是指增加 vSAN 节点,以提高计算资源和存储资源。...
1. **横向扩容** - 增加vSAN节点:这种方式不仅可以增加计算资源,还能增加存储资源。 2. **纵向扩容** - 增加磁盘或磁盘组:主要用于增加存储资源。 3. **其他硬件扩容** - 如增加主机的内存、网卡等,以提高主机...
"MySQL 分库分表无限扩容后的瓶颈及解决方案" MySQL 是一个非常popular 的数据库管理系统,广泛应用于各行各业。随着业务的发展,数据量也在不断增长,数据库的性能和容量也将面临着极大的挑战。这篇文章将讨论 ...
兰州大学平安校园视频监控系统扩容方案收集.pdf 本文档主要介绍了兰州大学平安校园视频监控系统扩容方案的收集,旨在提高监控系统性能,提高我校安全防范和现代化管理水平。 1. 项目背景 安全技术防范已成为我校...
再者,在渠道方面,五粮液实施了营销组织变革,从传统营销向现代营销转变,实现了营销组织的“横向专业化,纵向扁平化”。数字化营销策略的实施提高了营销协同性和执行力,进一步推动了渠道的高效化。 高端白酒市场...
截至2020年半年报,宏川智慧运营的石化品储罐数量为523座,总罐容达到230.6万立方米,市场占有率高达5.4%。在2020年,宏川智慧通过并购和新建项目,新增了40%的罐容,这也体现了公司正处在快速扩张的阶段。 财务...
- **动态扩展**:支持平滑纵向扩容(通过在单节点上预留额外内存来实现扩容)与平滑横向扩容(通过增加分片数量来提升整体容量)。 - **存储优化**:基于内存+固态硬盘(SSD)的两级存储结构,并自主研发了存储引擎,...
当某个组的存储压力大时,可以通过添加Server进行纵向扩容,或者新增组进行横向扩容。 文件上传流程如下: 1. 客户端发起文件上传请求至Tracker Server。 2. Tracker Server选择一个合适的Storage Server,并返回给...
分组存储方式允许灵活的扩容策略:当一个组的压力增大时,可以通过增加该组的Storage Server进行纵向扩容;当整个系统的容量不足时,可以新增组进行横向扩容。 每个Storage Server会定时向所有Tracker Server报告其...
同时,纵向扩容允许单个DSU内部根据需求调整应用节点和DB配置,优化资源利用率。数据库分库分片策略能进一步提升系统应对高并发交易的能力。 **容灾与灾备**是金融系统不可或缺的部分。采用两地三中心的架构,结合...
分组存储策略允许横向和纵向扩容,即通过添加更多组或在同一组内增加Server来扩展存储容量和服务能力。 文件上传流程如下:客户端上传文件后,Storage Server会返回一个唯一的文件ID,包括组名、虚拟磁盘路径、数据...
这种设计便于横向和纵向扩展:当一个组的存储压力大时,可通过添加新Storage进行纵向扩容;当总体存储容量不足时,可新增组进行横向扩容。 【Storage状态收集】 Storage服务器会定期向所有Tracker报告自身状态,如...
#### 一、扩展性、高扩展性、扩容能力、高扩容能力、可用性、高可用性、并发、高并发、容错性、高容错性、分布式数据库分片机制 1. **扩展性**: - **纵向扩展**:通过不断提升单一服务器的性能,如增加CPU、内存...
分组存储使得扩容更加灵活,可以通过增加Server进行纵向扩容(在同一组内),或增加新组进行横向扩容(扩大集群规模)。 【Storage状态收集】 Storage server会定期向所有Tracker server报告其状态,如磁盘剩余...
5. **可扩展性**:云存储系统应支持在线横向和纵向扩容,随着业务的增长,能够无缝扩展存储节点,同时,节点间的自动感知和数据格式的支持也是重要的考量因素。 6. **接口支持**:为了适应不同应用场景,系统需提供...
- 扩容时,新增AP应通过扫频避免与现有AP频率冲突。 - 在用户和AP数量较多的地方,可降低发射功率以减少同频干扰。 - 设备选择需兼顾性能、成本和系统整体干扰控制。 4. **频率规划与干扰控制**: - 为避免信道...
Storage server集群采用分组存储,每组内的服务器通过同步保持文件一致性,支持横向和纵向扩容以适应容量需求。 【Storage状态收集】 Storage server会定期向所有Tracker server报告其状态,如磁盘空间、文件同步...