我已经设置了预生产 ESXi 服务器,并且我想对其上的客户操作系统进行一些负载测试。
我特别感兴趣的是
- 磁盘访问,客户操作系统是否会争夺磁盘访问权限、读取和写入
- 客户操作系统之间的处理器使用和共享
- 客户操作系统之间的内存使用和共享
- 在客户操作系统中加载 SQL 服务器
- 在客户操作系统中的 Exchange 服务器上加载
我对这样的负载测试还很陌生,所以我真的不知道该问什么?
我希望能够改变选项,这样我就可以显示在 1000 个 Exchange 用户时我们需要创建另一个 Exchange VM 之类的东西。
它们有任何标准基准吗?
答案1
尝试 VMWare 自己的 VMMark -从这里开始:它可能不像您所寻找的那么具体,但它可以很好地衡量您的底层硬件设置的性能以及它在不断增加的负载下如何扩展,这正是您所寻找的。
答案2
从 Linux 角度来看,有 bonnie++ 用于磁盘基准测试/负载生成,有 cpuburn 用于 CPU 浪费。
不知道有任何好的内存粉碎机,但对于 VMware 来说,这无论如何都不是一个好主意,因为 VMware 假设虚拟机之间存在一定量的内存重叠,而故意打破该假设只会导致性能不佳。
答案3
如果您使用基于 *nix 的客户机,请检查 unix bench。
http://www.hermit.org/Linux/Benchmarking/
理想情况下,您不会将需要大量磁盘 IO 的客户端放入系统。它们不适合虚拟化。
可以通过资源组或每个 VM 级别轻松地限制内存和 CPU 的使用。
我发现对 mhz 和 ram 进行限制,即使是较高的限制也可以阻止失控进程对其他虚拟机造成很大影响。
“我希望能够改变选项,这样我就可以显示在有 1000 个 Exchange 用户时我们需要创建另一个 Exchange VM 之类的东西。”
将一台虚拟机加载到主机无法承受的程度并不能解决问题,因为底层硬件已经达到极限。您只是为自己在现有硬件上能够提供服务的上限设定了。
在 VMware 中,您应该密切关注磁盘读/写延迟。一旦您开始看到 500ms-1000ms+ 范围内的延迟数字,您就知道您的磁盘开始受到严重影响。
您要使用直接连接存储还是 NFS/iSCSI 盒?
将大量低负载服务器虚拟化到更大的盒子中非常有意义,尝试虚拟化负载很重的系统通常会导致比仅仅购买一个合适的专用盒子更糟糕的性能。