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