我们发生了Windows故障转移群集中断的事件。 验尸表明该节点已被删除,如本文所述 。
我们最近才把这个集群完全迁移到VMware环境中,看起来上面描述的事件可能是导致停机的原因。
相关的VMware知识库文章谈到了增加Small Rx Buffers和Rx Ring #1设置,但警告说增加这些太多可能会大大增加主机上的内存开销。
在对150台Windows虚拟机的Network Interface\Packets Received Discarded性能计数器进行审计后,16个guest虚拟机上的22个vNIC丢弃了一些数据包。
一个足够小的数量,我不担心额外的内存使用的主机征税,但我想了解如何使用内存这些设置和内存来自。
我们正在尝试确定在受影响的VM上将这些设置设置为最大值是否存在缺陷,而不是VMware主机内存使用情况。 例如,如果我们增加客户内存池耗尽的风险,我们更倾向于从小做起。
这些问题中的一些(可能全部)可能不是特定于VMware或虚拟化的。
缓冲区的数量和环的大小之间的关系是什么?
他们是相关的,但独立的。 rx“ring”是指内存中的一组缓冲区,用作队列将来自主机(pipe理程序)的传入networking数据包传递给guest虚拟机(Windows VM)。 内存被networking驱动程序保留在guest虚拟机中,并被映射到主机内存中。
当新的networking数据包进入主机时,它们被置于环中下一个可用的缓冲区。 然后,主机在客户机上触发一个IRQ,客户机驱动程序通过将分组从客户机上取下来响应,并将其分配到客户机OS的networking堆栈,这可能会将其发送给客户机应用程序以进行接收。 假设数据包进来的速度足够慢,而且guest虚拟机驱动程序正在处理它们足够快的速度,那么总是应该有一个空闲的空闲槽。 但是,如果数据包速度过快,或者客户端处理得太慢,则环可能变满,并且数据包可能会丢失(如您所见)。
增加戒指尺寸可以帮助缓解这个问题。 如果增加它,一次可以在环中提供更多的插槽。 这进入了第二个设置“Small Rx Buffers”,这是可用于填充环中的插槽的可用缓冲器的总量。 环中至less需要有和缓冲区一样多的缓冲区。 通常你想要更多。 当guest虚拟机从环形缓冲区中提取guest虚拟机networking堆栈时,它可能不会立即返回给驱动程序。 如果发生这种情况,使用备用缓冲区来填充环意味着您可以更长时间不丢包。
Rx Ring#1 / Small Rx缓冲区用于非巨型帧。 如果你有一个默认的网卡configuration,那将是唯一使用的铃声。
如何计算用于这些设置的给定值的内存量?
假设你正在讨论非巨型帧,每个缓冲区都需要足够大以存储整个networking数据包,大约1.5kb。 所以,如果你有8192个缓冲区可用,那将使用12MB。 一个更大的环也将使用更多的内存,但描述符是小的(字节),所以它真的是你必须担心的缓冲区。
由于这些设置位于客户操作系统中的NIC本身上,我假定它们是驱动程序设置。 这使我认为使用的RAM可能是分页或非分页池。
是的,这是一个非分页池。 如果环形缓冲区被分页,那么当缓冲区被重新分页时,可能会导致丢包。
我在这里没有考虑到担忧吗?
我不确定这与您的情况有关,但值得注意的是,较大的环会增加networkingrxpath的caching占用量。 在microbenchmarks,你会看到一个更大的环通常会损害性能。 也就是说,在现实生活中,如果一个数据包被丢弃了,这通常比速度突发中的小的性能增益要大得多。
来源:我在VMware工作。
我没有对1-2-3的回复,但是你可以和你的虚拟工程师检查一下Vmware主机的configuration。 如果他是VCP他会理解的东西:)
你真的要检查你的主机,因为Windows的问题可能是在主机不在客人。
有很多硬件function可以解释你的问题,directpath io,rss,vcpu,电源pipe理scheme…
我可以给你一些链接,帮助你的虚拟团队,或者你:)
这个链接是关于调整主机http://buildvirtual.net/tuning-esxi-host-networking-configuration/
而这脂肪pdf:
http://www.vmware.com/pdf/Perf_Best_Practices_vSphere5.0.pdf
而这个是关于rss的:
我无法完全search并指向正确的页面:所以我要求你自己去寻找细节……(对不起)
在故障转移群集有4个设置可以tweeked; 而且它们不会影响缓冲区或分页或非分页…它改变了“群集故障切换”决定将“删除”节点考虑在内的方法。 这些设置是:
SameSubnetDelay SameSubnetThreshold CrossSubnetDelay CrossSubnetThreshold
他们可能无法解决你的问题,但调整这些可能会让你摆脱困境,此刻…
回到星期一,如果您还有其他问题,我会回头看看这个post
HTH,Edwin。