Pet*_*rch 23 virtualization performance vmware-esxi
通常,我们现场安装的基于 debian 稳定版的应用程序在虚拟机中运行 - 通常在 VMware ESXi 中。在一般情况下,我们无法了解或影响他们的虚拟化环境,也无法访问例如 VMware vCenter 客户端或等效物。我在这里重点介绍 VMware,因为这是迄今为止我们看到的最常见的。
我们想:
现在什么是 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 可用,从而可靠地检测膨胀。可以检测到一些气球膨胀的情况,但还有其他情况下气球有效,但无法通过这种方法检测到。
我想我们可以绘制随时间变化的磁盘读取和写入次数、读取和写入的字节数以及 IO 等待百分比。但这会给我们提供磁盘 I/O 的准确图片吗?我想如果有一个比特币矿工在另一个使用所有 CPU 的 VM 中运行,我们的 IO 等待百分比会上升,即使底层 SAN 提供完全相同的性能,仅仅是因为我们的 CPU 资源下降,因此 IO 等待(以 % 衡量)上升。
总而言之,我们可以使用什么语言以可移植和可衡量的方式向例如 VMware 管理员描述我们需要什么性能?
eww*_*ite 23
说真的,大多数 VMware 管理员并不擅长这个:对资源管理的理解很差,通常没有 Linux 知识(它有帮助)和缺乏时间带宽。我发现大多数内部管理员都很难保持深入的虚拟化知识。
幸运的是,有一本书你可以阅读!
大多数 VMware 环境都不是很好:糟糕的集群设计、糟糕的资源规划、不合标准的存储(即 Synology NAS)、错误配置的 HA、没有监控或修补。
VMware 作为一个组织让我们失望:他们在传播最新信息和推广最佳实践方面尤其糟糕。尽管流程和设计随着时间的推移发生了变化,但对常见问题的基本搜索会生成 2009 年及更早版本的 VMware 的结果。
所有这些事情都会对你不利。
您应该确定解决方案的真正要求。能够准确说明您的设备需要:2 个 vCPU、8GB RAM 和 500 IOPs 存储性能对我这样的人来说意义重大。
另一种方法是观察健康或理想的环境,并从那里推断指标。
您已经描述了某些部署的问题。有哪些问题和瓶颈?
大小合适的 VM 的示例:
一个有 300 个用户的组织的 Exchange 服务器。
虚拟机资源监控示例。
好一点: - VM 大小合适。- CPU 跨集群过度使用,但我们没有遇到争用。
坏话:
| 归档时间: |
|
| 查看次数: |
1983 次 |
| 最近记录: |