因为我们可以限制Docker(--cpus cmd)以及Kubernetes(-cpulimit)平台上容器的CPU资源。
有没有办法限制在PCF上运行的应用程序的CPU?
这在Cloud Foundry上自动发生。
在Cloud Foundry上运行的应用程序根据CPU份额受到限制(与docker的--cpu-shares
选项相同)。 分配给应用程序的 CPU 份额数与提供给应用程序的内存限制的大小成比例。 更多的内存意味着更多的 CPU 份额。
确切的股票数量并不重要,重要的是比例。 如果您的应用程序的共享数量多于在 Cell 上运行的其他应用程序,它将获得更多的 CPU 时间。 如果它的份额数量较少,它获得的时间就会更少。 您可以使用内存限制来衡量某个应用程序是否比 Cell 上运行的其他应用程序更小、相同或更大。
棘手的部分是,除了成为操作员并查看Cell之外,没有简单的方法可以判断Cell上还有什么在运行。 希望将来会通过 Loggregator 公开 CPU 份额信息和限制指标,因为这样可以更轻松地了解您的应用程序如何利用它获得的 CPU 时间。
如果要查看用于确定 CPU 份额的确切公式,可以查看此文档链接。 它更深入地解释了平台如何进行这些计算。
https://docs.cloudfoundry.org/concepts/container-security.html#cpu
目前不可能根据 CPU 内核的数量来限制 CPU 使用率,就像 Docker 的--cpus
参数一样。