Openvz:tcpsndbuf failcnt增加的意义是什么? 为什么限制和障碍之间要有最小的差距?

failcnt tcpsndbuf ,这意味着什么? 这是否意味着系统必须越过barrier ,或超过limit ? 或者,也许系统不能提供足够的缓冲区,要么是因为需要超出limit ,要么是因为需要经过barrier而不能因为其他虚拟机使用太多的资源?

我了解磁盘空间的limitlimit之间的区别,您可以指定系统可以超过limit但不limit的宽限期。 但是像tcpsndbuf这样的资源,没有宽限期的东西, barrierlimit的意义是什么?

为什么tcpsndbuf barrierlimit之间的区别必须至less是tcpnumsock 2.5KB? 如果tcpsndbuf至less是tcpnumsock (障碍或限制)的2.5KB倍,我可以理解,但为什么我应该关心障碍和限制之间的差异?

你在这里有很多问题。

当tcpsndbuf失败时,这意味着什么? 失败是最简单的术语,它超越了资源的极限。 因此,与tcpsndbuf结合,这意味着它会增加这个计数器的次数,它通过tcp缓冲区大小资源。 如果您经常长时间使用此计数器,您将会注意到并体验networking性能问题。

障碍和极限是有区别的。

越过障碍,你会看到networking性能的退化。 应用程序仍然可以运行,但networking性能会很慢。

超过限制一段时间,你会看到丢失的连接。

对于2.5KB,这是为了保证有足够的缓冲空间以允许当前的networking连接能够成功发送数据所需要的,如果不是的话,那么可能最终挂起连接发送数据的一半。

__

  • 失败增加了吗? 字段failcnt显示容器每个生命周期被拒绝的“资源分配”的数量。 这增加了每次tcpsndbuf已达到极限(这是我的意思是“超过tcp缓冲区大小”)。

  • 假设容器要求超出屏障tcpsndbuf。 这是否被授予? 这被认为是正确的,但是请注意,如果为tcpsndbufinput一个更高的值,这并不意味着它会提高networking性能。 它也限于硬件限制。 由于UBC一致性检查,它开始降级。 如果约束条件不满足,那么通过套接字传输数据可能会在某些情况下挂起(不总是,有时候)。