首页 > 其他分享 >服务扛不住了,你是加机器还是堆硬件了?

服务扛不住了,你是加机器还是堆硬件了?

时间:2024-08-03 15:27:08浏览次数:13  
标签:垂直 机器 扩展 水平 应用程序 硬件 扛不住 服务器

当您的系统面临用户量增多时,它需要更多的资源来处理更多的请求,两种常见的方法是垂直扩展和水平扩展。

在本文中,我们将探讨这两种扩展策略的优缺点,并讨论如何选择。

垂直扩展

垂直扩展是通过增强系统内现有机器的硬件以应对流量的增加,这可能意味着升级CPU、RAM、存储或其他硬件以增强服务器的处理能力。

  • 升级 CPU:用更强大的处理器替换服务器现有的处理器。
  • 增加 RAM:添加更多内存来处理更大的数据集。
  • 增强存储:切换到更快的存储(如 SSD)或增加整体存储容量。

垂直扩展的优点
  1. 简单性:垂直扩展相对容易实现,因为它不需要改变应用程序架构。
  2. 更低的延迟:由于所有资源都位于一台机器上,垂直扩展可以消除服务器间通信的需要,从而降低延迟。
  3. 降低软件成本:在初始阶段,垂直扩展可能比水平扩展更节省成本更具有性价比。
  4. 无需进行重大代码变更:通常不需要对应用程序的代码进行任何调整。
垂直扩展的缺点
  1. 可扩展性有限:单台机器的性能总归是有一个上限的。
  2. 单点故障:只有一台服务器,如果这台服务器挂了就会导致整个系统崩溃。
  3. 停机时间:升级硬件通常需要使服务器停止服务,这可能是一个很大的缺点。
  4. 长期成本更高:随着规模的扩大,具有强大 CPU 和大量 RAM 的高端服务器可能会变得非常昂贵。

水平扩展(横向扩展)

水平扩展意味着向系统添加更多机器,以将工作负载分散到多个服务器上。每台机器都运行应用程序的一个副本,并且通常使用负载平衡器将流量相对均衡的分发到每个实例上。

水平扩展的优点
  1. 近乎无限的可扩展性:只要您的架构支持,您就可以继续添加服务器,从而提供处理更大负载的能力。
  2. 提高容错能力:一个服务实例发生了故障,还有其它服务实例可用提供服务,不会导致整个系统崩溃,这点是非常重要的。
  3. 成本效益:水平扩展可以更具成本效益,因为它使用商品硬件而不是昂贵的高端服务器。
水平扩展的缺点
  1. 复杂性:将应用程序分布在多台服务器上会增加数据一致性、负载平衡和服务器间通信方面的复杂性。
  2. 增加延迟:与单台机器相比,服务器之间的通信可能会引入额外的延迟。
  3. 成本:由于基础设施的复杂性,初始的维护成本可能会更高。
  4. 应用程序兼容性:您的应用程序代码可能需要调整才能在分布式环境中有效运行。

何时选择垂直扩展?何时选择水平扩展

在垂直和水平扩展之间做出选择时需要考虑的事项:

  • 成本:分析初始硬件成本与长期运营费用。
  • 工作负载:您的应用程序是否受 CPU 限制、内存限制,或者是否适合分布?
  • 架构复杂性:您的应用程序代码可以处理分布式工作吗?
  • 未来增长:您实际预计的扩展规模是多少?

何时选择垂直扩展

垂直扩展非常适合以下场景:

  1. 可扩展性有限:小型到中型应用程序的增长预测有限,您的需求可以通过硬件升级轻松满足。
  2. 遗留应用程序:当组件之间存在紧密耦合时,很难分布在多台服务器上。
  3. 低延迟:当低延迟是一项关键要求,并且服务器间通信开销是不可接受的。
何时选择水平扩展

水平扩展非常适合以下情况:

  1. 快速增长:业务快速爆发增长。
  2. 高可用性需求:应用程序需要高可用性。
  3. 易于分发:应用程序无需进行重大修改即可轻松分发到多个服务器上。
  4. 成本效益:当成本效益是优先考虑因素时,优先使用廉价的计算机而不是升级为高端服务器。

总之,在垂直和水平扩展之间进行选择在很大程度上取决于应用程序的具体需求、预期的增长规模、预算以及正常运行时间对业务的重要性。

综合垂直和水平扩展

通常,最好的方法是将垂直和水平扩展两种策略结合起来。例如系统最初可以垂直扩展,直到达到单台机器的实际极限,然后切换到水平扩展以适应进一步的增长。许多成功的系统都采用了两者的组合。

标签:垂直,机器,扩展,水平,应用程序,硬件,扛不住,服务器
From: https://blog.csdn.net/weixin_42627385/article/details/140891243

相关文章

  • 【机器学习】过拟合和欠拟合、高偏差(High Bias)和高方差(High Variance)的区别、过拟合和
    引言在机器学习中,过拟合(Overfitting)是指模型在训练数据上学习得太好,以至于它捕捉到了数据中的噪声和随机波动,而不是潜在的真实关系,这导致模型在新的、未见过的数据上表现不佳;欠拟合(Underfitting)是指模型在训练数据上未能捕捉到足够的信息或模式,导致模型在训练集和测试集上......
  • 硬件开发笔记(二十九):TPS54331电源设计(二):12V转3.3V和12V转4V原理图设计
    若该文为原创文章,转载请注明原文出处本文章博客地址:https://hpzwl.blog.csdn.net/article/details/140868749长沙红胖子Qt(长沙创微智科)博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结合等等)持续更新中…硬件相关开发......
  • 一文读懂SEnet:如何让机器学习模型学会“重点观察”
    深入探讨一个在图像识别、自然语言处理等众多领域大放异彩的注意力模块——Squeeze-and-ExcitationNetworks(SEnet)。本文不仅会理论剖析SEnet的核心原理,还会手把手带你完成在TensorFlow和Pytorch这两个主流框架上的代码实现。准备好了吗?一起步入注意力机制的精妙世界。一、......
  • 基于深度学习的适应硬件的神经网络
    基于深度学习的适应硬件的神经网络设计旨在最大限度地利用特定硬件平台的计算和存储能力,提高模型的执行效率和性能。这些硬件包括图形处理单元(GPU)、张量处理单元(TPU)、现场可编程门阵列(FPGA)和专用集成电路(ASIC)。以下是关于适应硬件的神经网络的详细介绍:1.背景和动机硬件异构......
  • 使用OpenAI API搭建AI聊天机器人
    在本文中,我们将介绍如何使用OpenAIAPI搭建一个简单的AI聊天机器人。为了便于国内用户访问,我们将使用中专API地址http://api.wlai.vip。什么是OpenAIAPIOpenAIAPI提供了一系列强大的自然语言处理(NLP)模型,这些模型可以用来执行各种任务,如文本生成、翻译、问答、摘要等。......
  • 书籍分享《TensorFlow机器学习实战指南》从入门到实战,免费领取!
    Google公司开发的TensorFlow深度学习库因其简单易学、应用场景广泛已经快成为各家公司开展人工智能研究的标配了。TensorFlow机器学习实战指南作者:NickMcClure,资深数据科学家,就职于美国西雅图PayScale公司,曾经在Zillow公司和Caesar’sEntertainment公司工作,获得蒙......
  • 1.机器视觉的概念及其功能
    机器视觉是什么?机器视觉就是用机器代替人眼来做测量和判断。机器视觉系统的特点是提高生产的柔性和自动化程度。在一些不适合于人工作业的危险工作环境或人工视觉难以满足要求的场合,常用机器视觉来替代人工视觉;同时在大批量工业生产过程中,用人工视觉检查产品质量效率低且精......
  • 022.(附加)chromedriver编译-绕过selenium机器人检测
    有小伙伴说使用selenium没能绕过机器人检测,盘他。一、selenium简介Selenium是一个强大的工具,用于Web浏览器自动化,更常被用于爬虫但selenium需要通过webdriver来驱动chrome,每次运行selenium时,都要先找到对应版本的chromedriver.exe。chromedriver自动化会对浏览器的部分属......
  • 【学术会议征稿】第三届图像处理、计算机视觉与机器学习国际学术会议(ICICML 2024)
    第三届图像处理、计算机视觉与机器学习国际学术会议(ICICML2024)20243rd InternationalConferenceonImageProcessing,ComputerVisionandMachineLearning 重要信息大会官网:参会投稿/了解会议详情大会时间:2024年11月22日-24日 大会地点:中国深圳接受/拒稿......
  • 基于飞书机器人的基础跨账号消息提醒
    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、添加飞书机器人二、在飞书机器人助手配置流程三、存在的问题以及后续前言飞书企业账号和个人账号是独立的,然而不知道为什么它不支持跨账号消息提醒。在多次忽略领导消息后痛定思痛,......