【发布时间】:2018-04-09 12:01:53
【问题描述】:
因为我们可以限制 Docker (--cpus cmd) 以及 Kubernetes (-cpulimit) 平台上容器的 CPU 资源。
有没有办法限制在 PCF 上运行的应用程序的 CPU?
【问题讨论】:
标签: linux linux-kernel cloud-foundry cf-bosh
因为我们可以限制 Docker (--cpus cmd) 以及 Kubernetes (-cpulimit) 平台上容器的 CPU 资源。
有没有办法限制在 PCF 上运行的应用程序的 CPU?
【问题讨论】:
标签: linux linux-kernel cloud-foundry cf-bosh
这在 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 参数。
【讨论】: