Openvz:tcpsndbuf failcnt 增加到底意味着什么?为什么 limit 和 barrier 之间必须有一个最小差值?

Openvz:tcpsndbuf failcnt 增加到底意味着什么?为什么 limit 和 barrier 之间必须有一个最小差值?

failcnttcpsndbuf增加时,这意味着什么?这是否意味着系统必须超过barrier,或超过limit?或者,也许系统未能提供足够的缓冲区,要么是因为它需要超过limit,要么是因为它需要超过barrier但无法超过,因为其他虚拟机使用了太多资源?

barrier我理解和之间的区别limit只适用于磁盘空间,您可以指定系统可以超过的宽限期,barrier但不能超过limit。但在像这样的资源中tcpsndbuf,没有宽限期,barriervs.是什么意思limit

barrier为什么和limit之间的差异tcpsndbuf必须至少为 2.5KB 倍tcpnumsock?我可以理解,例如,tcpsndbuf应该至少为 2.5KB 倍tcpnumsock(屏障或限制),但我为什么要关心屏障和限制之间的差异?

答案1

您这里有很多问题。

当 tcpsndbuf 的 failcnt 增加时,这意味着什么?用最简单的术语来说,failcnt 就是超出资源限制。因此,与 tcpsndbuf 结合使用,这意味着它会将该计数器增加超过 tcp 缓冲区大小资源的次数。如果您在较长时间内不断达到此计数器,您将开始注意到并遇到网络性能问题。

障碍和限制是有区别的。

越过屏障,您只会看到网络性能下降。应用程序仍会运行,但网络性能会变慢。

如果超过特定时间段的限制,您将开始看到断开的连接。

至于2.5KB,这是为了保证足够的缓冲空间,让当前的网络连接能够成功发送数据,如果没有,那么最终可能会在发送数据到一半时挂起连接。

__

  • failcnt 有没有增加?字段 failcnt 显示了容器生命周期内被拒绝的“资源分配”数量。该值会随着 tcpsndbuf 达到限制的次数而增加(这就是我所说的“超过 tcp 缓冲区大小”)。

  • 假设容器请求超出屏障的 tcpsndbuf。这是否被批准?这是可以接受的,但请记住,如果您为 tcpsndbuf 输入更高的值,并不意味着它会自动提高网络性能。它也受限于硬件限制。由于 UBC 一致性检查,它会开始降级。如果不满足约束条件,则在某些情况下(并非总是,只是有时),套接字上的数据传输可能会挂起。

相关内容