C++ 全栈知识体系C++ 全栈知识体系
✿导航
  • 基础
  • 函数
  • 知识点
  • IO框架
  • 新版本特性
  • 数据库原理
  • SQL语言
  • SQL - MySQL
  • NoSQL - Redis
  • NoSQL - ElasticSearch
  • 算法基础
  • 常见算法
  • 领域算法
  • 分布式算法
  • 数据结构与算法
  • 计算机网络
  • 操作系统
  • 计算机组成
  • 开发
  • 测试
  • 架构基础
  • 分布式系统
  • 微服务
  • 中间件
  • 概念
  • 理论
  • 架构设计原则
  • 设计模式
  • 协议
  • 技术选型
  • 编码规范
  • 流水线构建 - CI/CD
  • 知识点 - Linux
  • 网站 - Nginx
  • 容器化 - Docker
  • 容器编排 - Kubernetes
  • 服务网格 - Service Mesh Istio
  • 常用快捷键 - Shortcut
  • 工具使用 - Tools
  • 开源项目
  • 学习项目
  • 个人项目
  • 项目开发
  • 项目Idea
  • 并发
  • 部署
  • 分布式
  • 知识
  • 问题
  • 编程语言与技术
  • 系统与架构
  • 软件开发实践
  • 数据处理与应用设计
  • 个人
  • 产品
  • 团队
  • 知识体系
  • Vue
关于
✿导航
  • 基础
  • 函数
  • 知识点
  • IO框架
  • 新版本特性
  • 数据库原理
  • SQL语言
  • SQL - MySQL
  • NoSQL - Redis
  • NoSQL - ElasticSearch
  • 算法基础
  • 常见算法
  • 领域算法
  • 分布式算法
  • 数据结构与算法
  • 计算机网络
  • 操作系统
  • 计算机组成
  • 开发
  • 测试
  • 架构基础
  • 分布式系统
  • 微服务
  • 中间件
  • 概念
  • 理论
  • 架构设计原则
  • 设计模式
  • 协议
  • 技术选型
  • 编码规范
  • 流水线构建 - CI/CD
  • 知识点 - Linux
  • 网站 - Nginx
  • 容器化 - Docker
  • 容器编排 - Kubernetes
  • 服务网格 - Service Mesh Istio
  • 常用快捷键 - Shortcut
  • 工具使用 - Tools
  • 开源项目
  • 学习项目
  • 个人项目
  • 项目开发
  • 项目Idea
  • 并发
  • 部署
  • 分布式
  • 知识
  • 问题
  • 编程语言与技术
  • 系统与架构
  • 软件开发实践
  • 数据处理与应用设计
  • 个人
  • 产品
  • 团队
  • 知识体系
  • Vue
关于
  • 并发

    • 并发 - 各类锁的应用场景
  • 部署

    • 部署 - 蓝绿部署、AB测试、灰度发布
  • 分布式

    • 分布式 - 单元化技术架构
    • 分布式 - Distributed Lock Manager
  • 知识

    • 知识 - 服务网格
    • 知识 - 共享单车背后技术
    • 知识 - 软件架构模式
    • 知识 - 同源策略和跨域
    • 知识 - 看门狗和喂狗机制
    • 知识 - 时区和时间戳
    • 知识 - 裸机服务器和虚拟机(VM)服务器
    • 知识 - 负载均衡
  • 问题

    • 问题 - 资源占用(top命令)
    • 问题 - 跟踪进程栈(pstack命令)
    • 问题 - 数据库与缓存不一致如何解决
    • 问题 - 如何解决三高

知识 - 裸机服务器和虚拟机 (VM) 服务器

裸机服务器和虚拟机 (VM) 服务器。

  • 专用资源
  • 表现
  • 自定义选项
  • 部署

参考资料

  • 什么是裸机服务器和虚拟机 (VM) 服务器?

概念

在裸机和 VM 服务器之间进行选择并不总是一个简单的决定。

裸机提供更好和更一致的性能,而虚拟服务器具有无与伦比的可扩展性和成本效益。实际使用时,需要根据自身的需要选择合适的服务器。

裸机服务器

裸机服务器是专用于单个客户端(租户)的物理托管设备。通常设置在本地或第三方数据中心(租用或通过托管),裸机服务器可以处理比任何其他托管解决方案更多的数据,因为用户可以独占使用所有计算资源,包括:

  • 中央处理器
  • 内存
  • 磁盘空间
  • 带宽

除了完全专用的计算资源外,公司选择裸机服务器的其他主要原因是:

  • 高水平的处理能力。
  • 每秒一致的输入/输出操作 (IOPS)。
  • 数据隐私性很高(单用户)。
  • 完全控制服务器的硬件和软件堆栈。
  • 可预测的计费。

如果应用程序对性能很敏感,且希望将数据存储在单租户设备上,那么裸机的优势将难以匹敌。

虚拟机 (VM) 服务器

VM 服务器是基于软件的托管设置,可在单个设备内的多租户环境中运行。将机器拆分为单独的 VM 需要服务器虚拟化,该过程使设备能够托管多个系统,同时共享相同的物理资源(磁盘空间、RAM 和 CPU)。

数据中心使用管理程序创建共享资源服务器。管理程序将服务器分成不同的单元,这些单元依赖于相同的组件,但具有独立的操作系统、应用程序和网络。

大多数选择 VM 服务器而不是其他托管解决方案的公司,选择原因如下:

  • 快速简单的部署,便于弹性拓展。
    • 高频使用时,动态新增服务器数量;流量低时,动态减少服务器数量。
  • 通过现收现付模式控制和优化成本的能力。
  • 几乎没有硬件相关的服务器管理,没有硬件的维护成本。
  • 快速可靠的快照和备份。

VM 服务器是动态工作负载和非任务关键型应用程序的理想选择,这些应用程序优先考虑灵活性而不是始终如一的高性能。

裸机与 VM 服务器 对比

下表提供了裸机和 VM 服务器之间主要区别的概述:

比较点裸机服务器虚拟机服务器
主要卖点一致的性能和完整的数据隐私近乎即时的可扩展性和成本优化选项
硬件奉献所有服务器资源(CPU、RAM、内存、带宽)都属于单个用户租户托管在同一设备上并共享服务器资源
性能能力始终如一的高性能由于多个租户,性能不太一致
自定义选项租户在设置硬件和软件时拥有完全的自由由于服务器的共享特性,更少的软件定制选项
部署时间设置新服务器需要时间(租用设备需要几个小时,本地服务器需要几天)新部署只需几分钟
硬件维护没有托管服务的复杂系统无需硬件维护
可扩展性扩大或缩小本地服务器需要数月,租用设备需要数小时近乎即时的按需可扩展性(向上和向下)
容量优化有限容量优化通过负载平衡实现高级容量优化
安全定制选项和单一租户确保安全的 IT 平台其他租户可能会引起安全和隐私问题
系统恢复从中型灾难中恢复可能需要数小时甚至数天从灾难中恢复发生在几分钟内
服务器可移植性移动物理服务器是一项复杂而漫长的任务您可以轻松地将 VM 跨虚拟环境或从一台物理服务器移动到另一台
典型计费方式(租用服务器)可预测的(通常是每月)账单根据使用资源量收费
现场费用硬件和空间的前期成本高(但无需购买许可)较小的硬件成本但昂贵的 VM 软件许可证

下面详细介绍裸机和 VM 服务器之间的主要区别。

专用资源

资源专用是裸机和 VM 服务器之间最显着的区别:

  • 裸机服务器使用户能够依赖整个硬件设置。
  • VM 服务器要求您与其他租户共享资源。

专用资源的好处是巨大的,使裸机服务器的用户能够消除以下风险:

  • 网络拥塞。
  • 由于另一个租户的活动占用了资源,服务器响应时间变慢。
  • 在交通高峰时段加载时间很短。
  • 更频繁的停机。

虽然信誉良好的虚拟机提供商不会经常遇到这些问题,但如果您使用多租户服务器,遇到这些问题的机会要高得多。

表现

由于裸机服务器将所有资源专用于单个用户,因此这些托管设备提供比同类虚拟服务器更一致和更好的性能。

VM 解决方案性能较差的主要原因有两个:

  • 管理程序导致的延迟
    • 安装和运行管理程序会在服务器资源上产生 5% 到 10% 的自动开销。
    • 依赖虚拟服务器时,轻微的延迟和数据包延迟很常见。
  • 吵闹的邻居
    • 如果 VM 服务器中的另一个租户运行资源密集型应用程序,那么无论您在服务器上托管什么,都会看到性能下降。
    • 嘈杂的邻居因素会导致资源瓶颈,从而导致所有 VM 用户的性能损失 20% 到 30%。

虽然裸机服务器比同类虚拟机更强大,但一些企业发现虚拟机服务器的灵活性比物理服务器的性能提升更有价值。但是,如果始终如一的高性能是决定因素,那么裸机是更好的选择。

自定义选项

裸机服务器使用户能够从头开始构建设置并选择设备中的每个组件。除了硬件资源,用户还可以选择首选:

  • 操作系统。
  • 应用。
  • 工具和附加组件。
  • 资源控制系统。
  • 安全和数据备份措施。

裸机服务器的大量定制使您能够配置设备以满足您的特定操作需求。另一方面,VM 服务器在该部门有限制。

虽然您可以根据资源和特定操作系统自定义 VM,但用户在选择服务器允许的工具和安全措施时通常选择有限。

VM 服务器是为许多用例量身定制的多租户设备,因此提供商通常不会完全自由地设置自定义环境。

部署

部署新的裸机服务器比启动新 VM 需要更多时间。

  • 裸机服务器需要仔细规划并充分了解用户的需求,再进行设置。如果有特殊需求,时间将被延长。(通常几小时到几天时间不等)

部署 VM 服务器只需几分钟。选择配置后,启动新 VM 几乎是即时创建,马上投入使用。

  • 部署速度快
  • 可移植性强,能够快速进行环境切换
Last Updated:
Contributors: klc407073648
Prev
知识 - 时区和时间戳
Next
知识 - 负载均衡