AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 856512
Accepted
Peter V. Mørch
Peter V. Mørch
Asked: 2017-06-19 10:10:07 +0800 CST2017-06-19 10:10:07 +0800 CST 2017-06-19 10:10:07 +0800 CST

如何向 VMware 管理员描述我们的应用程序的 VMware 性能要求?

  • 772

通常,我们现场安装的基于 debian-stable 的应用程序在虚拟机中运行 - 通常在 VMware ESXi 中。在一般情况下,我们无法查看或影响他们的虚拟化环境,也无法访问例如 VMware vCenter 客户端或同等产品。我在这里专注于 VMware,因为这是迄今为止我们看到的最常见的。

我们想:

  • 告诉客户的 VMware 管理员:您可以在例如您的 VMware ESX 环境中运行我们的应用程序,只要它满足性能标准 X、Y 和 Z。
  • 能够确定标准 X、Y 和 Z 实际上是否连续满足(例如现在也是),即使在正在运行的系统上(我们不能停止我们的应用程序并运行基准测试,并且初始基准测试是不够的,因为性能虚拟环境随时间变化)。
  • 有信心,如果满足标准 X、Y 和 Z,我们将有足够的虚拟硬件资源来运行我们的应用程序并具有令人满意的性能。

现在什么是 X、Y 和 Z?

我们一次又一次地看到,当出现性能问题时,问题不在于我们的应用程序,而在于虚拟化环境。例如,另一台虚拟机使用大量 CPU、内存或实际存储磁盘的 SAN 被我们的应用程序以外的其他东西大量使用。我们目前无法证明或反驳这一点。

从理论上讲,有时我们的应用程序也可能很慢...... ;-)

如何确定我们的性能问题的根本原因:虚拟环境还是我们的应用程序?

性能问题通常有 3 个区域 CPU、内存和磁盘 I/O。

中央处理器

例如,在 VMware 中,管理员可以指定预留和限制,以 MHz 表示,但例如,一台 ESX 主机上的 512MHz 与另一台 ESX 主机上的 512MHz 完全相同,可能在完全不同的 ESX 集群中?

以及如何衡量我们是否真的得到了这一点?当我们的应用程序运行时,我们可能会看到我们在 4 个 CPU 上的 CPU 利用率为 212%。这是因为我们的应用程序正在做很多事情,还是因为同一主机上的另一个 VM 正在运行 CPU 密集型任务并使用所有 CPU?

记忆(气球?)

如果我们要求例如 16GB 的 RAM,这通常是配置的,但由于膨胀,我们实际上只得到 4GB,而且令人惊讶的是,我们的应用程序性能很差。

可以向 VMware 工具询问当前的膨胀,但我们发现它经常是谎言(或者至少是不准确的)。我们已经看到操作系统认为总 RAM 为 16GB 的示例,所有进程的驻留内存 (RSS) 总和为 4GB RAM,但只有 2GB 可用 RAM,即使 VMware 工具告诉我们有 0 个气球: -(

此外,仅将 RSS 相加是无效的,因为可能很容易共享 RAM,例如写时复制内存,因此 512MB + 512MB 不一定意味着 1GB,但可能意味着更少。因此,不能简单地从所有进程中减去 RSS 来衡量应该有多少 RAM 可用,从而可靠地检测膨胀。人们可以检测到一些气球的情况,但在其他情况下气球是有效的,但这种方法无法检测到。

磁盘 I/O

我想我们可以随时间绘制磁盘读写次数、读写字节数以及 IO 等待百分比。但这会给我们提供磁盘 I/O 的准确图景吗?我想如果有一个比特币矿工在另一个使用所有 CPU 的 VM 中运行,我们的 IO 等待百分比会上升,即使底层 SAN 提供完全相同的性能,仅仅是因为我们的 CPU 资源下降,因此 IO 等待(以 % 衡量)上升。

总而言之,我们可以使用什么语言来描述例如 VMware 管理员,我们需要什么样的性能,以可移植和可测量的方式?

virtualization
  • 1 1 个回答
  • 2002 Views

1 个回答

  • Voted
  1. Best Answer
    ewwhite
    2017-06-19T10:30:09+08:002017-06-19T10:30:09+08:00
    • 说真的,大多数 VMware 管理员并不擅长这一点:对资源管理了解不足,通常没有 Linux 知识(这很有帮助),并且缺乏时间带宽。我发现大多数内部管理员很难保持深入的虚拟化知识。

    • 幸运的是,有一本书你可以读!

    • 大多数 VMware 环境都不是很好:糟糕的集群设计、糟糕的资源规划、不合标准的存储(即 Synology NAS)、错误配置的 HA、没有监控或修补。

    • VMware 作为一个组织让我们失望:他们在传播最新信息和推广最佳实践方面特别糟糕。尽管流程和设计随着时间的推移发生了变化,但对常见问题的基本搜索会从 2009 年及更早的 VMware 版本中生成结果。

    所有这些事情都会对你不利。

    您应该确定解决方案的真正要求。能够准确地说明您的设备需要:2 个 vCPU、8GB RAM 和 500 IOPS 存储性能对于像我这样的人来说会有很长的路要走。

    另一种方法是观察健康或理想的环境并从那里推断出指标。

    您已经描述了某些部署的问题。有哪些问题和瓶颈?


    大小合适的 VM 示例:

    用于 300 个用户的组织的 Exchange 服务器。

    • 我们有 6 周的工作量/压力热图与时间的关系。
    • 6 个 vCPU 使我们保持在压力区之上,并为峰值提供缓冲空间。
    • 32GB RAM 让我们保持在压力值之上,但并不是超出真正需要的不合理数量。

    在此处输入图像描述

    • 我可以回收几 GB 的 RAM 和一个 vCPU,但总的来说,这是一个高效的 VM。
    • 在理想条件下对您的应用程序进行这种类型的监控是明智的。

    在此处输入图像描述


    虚拟机资源监控示例。

    Good-ish: - 虚拟机大小合适。- CPU 在整个集群中被过度使用,但我们没有遇到争用。

    在此处输入图像描述

    坏的:

    • VM 永远不会获得它配置的所有 RAM。
    • VM 已经在交换 RAM。
    • CPU配置过度。

    在此处输入图像描述

    • 23

相关问题

  • 哪些 939 插槽芯片支持 AMD-V?

  • Windows Server 2008 Hyper-V 虚拟化服务器的最佳 RAID 配置?

  • VirtualBox 上 Ubuntu 的访客优化技巧 [关闭]

  • 外部硬盘上的 virtualbox 虚拟硬盘驱动器(Vista 主机上的 ubuntu 客户机)

  • 物理机重启时自动重启虚拟机(VMWare)

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve