Docker 容器使用多少個 CPU?


簡介

Docker 容器是打包和部署應用程式的流行方法。容器化的關鍵特性之一是能夠隔離資源並限制其使用。在 CPU 方面,瞭解容器可以使用多少個 CPU 非常重要,因為這會極大地影響容器內執行的應用程式的效能。本文將介紹 Docker 中 CPU 資源分配的概念、確定容器可用的 CPU 數量、配置容器的 CPU 資源以及管理 CPU 資源的高階技術。理解這些概念將有助於確保您的容器擁有足夠的 CPU 資源以高效執行。

CPU 使用率是 Docker 容器中執行應用程式的重要方面。建立容器時,會從主機分配一定量的 CPU 資源給它。瞭解和管理 Docker 容器中的 CPU 使用率對於確保容器擁有足夠的資源以高效執行以及防止與同一主機上執行的其他容器之間發生資源爭用至關重要。

瞭解 Docker 容器中的 CPU 使用率

Docker 使用主機資源(包括 CPU)來執行容器。建立容器時,會從主機分配一定量的 CPU 資源給它。預設情況下,容器沒有特定的 CPU 限制,並且可以使用主機可用的所有 CPU 資源。要檢視正在執行的容器的 CPU 使用率,可以使用 **docker stats** 命令。此命令顯示所有正在執行的容器的 CPU 使用率。

docker stats <container_name> 

另一個檢視正在執行的容器的 CPU 使用率的命令是 **docker top** 命令。

docker top <container_name> 

此命令顯示容器內的執行程序及其資源使用情況。

在 Docker 容器中設定 CPU 限制

在 Docker 容器中設定 CPU 限制有幾種方法:

  • 在 **docker run** 命令中使用 **--cpus** 標誌:此標誌用於將容器可用的 CPU 數量設定為主機上 CPU 總數的一部分。

docker run --name my-container --cpus 0.5 <image> 
  • 在 **docker run** 命令中使用 **--cpu-quota** 和 **--cpu-period** 標誌:這些標誌用於以每秒微秒為單位設定容器 CPU 使用量的絕對限制。

docker run --name my-container --cpu-quota 100000 --cpu-period 100000 <image> 
  • 在 **docker run** 命令中使用 **--cpu-shares** 標誌:此標誌用於設定容器的相對 CPU 份額。這意味著如果多個容器在同一主機上執行,則具有較高 CPU 份額值的容器將獲得更大比例的 CPU 資源。

docker run --name my-container --cpu-shares 512 <image> 
  • 在 **docker run** 命令中使用 **--cpuset-cpus** 標誌:此標誌用於指定容器應繫結的特定 CPU。

docker run --name my-container --cpuset-cpus 0,1 <image> 
  • 使用 **docker update** 命令在容器建立後更新 CPU 限制:

docker update --cpus 0.5 my-container 
  • 對於 Swarm 服務,可以使用 **docker service create** 命令設定服務的 CPU 限制

docker service create --name my-service --config-rm --cpu-quota 100000 --cpu-period 100000 <image>
  • 可以使用 **docker-compose** 檔案設定 CPU 限制

services:
  my-service:
    image: <image>
    deploy:
      resources:
        limits:
          cpus: '0.5'

需要注意的是,限制 CPU 使用率的方法取決於您執行的 Docker 版本和主機作業系統。某些方法可能並非在所有平臺上都可用,並且某些方法可能具有不同的預設值。

管理 Docker 容器中 CPU 使用率的最佳實踐

為了確保您的容器擁有高效執行所需的資源,您應該監控其 CPU 使用率並設定適當的限制。以下是一些管理 Docker 容器中 CPU 使用率的技巧:

  • 首先,使用 **--cpu-shares** 標誌或 Docker Compose 中的 **cpus** 配置選項為所有容器設定一個基本 CPU 限制。這將確保所有容器都擁有可用的最小 CPU 資源。

  • 定期使用 **docker stats** 和 **docker top** 命令監控容器的 CPU 使用率。這將幫助您確定是否有任何容器使用了超出其需求的 CPU 資源。

  • 使用 **--cpu-quota** 標誌或 Docker Compose 中的 **cpus** 配置選項為容器的 CPU 使用率設定上限。這將防止任何一個容器獨佔主機的 CPU 資源。

  • 在 **docker run** 命令中使用 **--cpu-period** 標誌指定 CPU 週期的長度(以微秒為單位)。這對於微調容器的 CPU 使用率很有用。

結論

管理 Docker 容器中的 CPU 使用率是容器中執行應用程式的重要方面。通過了解 Docker 如何使用主機資源來執行容器,並透過為 CPU 使用率設定適當的限制,您可以確保您的容器擁有高效執行所需的資源。此外,使用 **docker stats** 和 **docker top** 命令監控 CPU 使用率可以幫助您識別任何與 CPU 使用率相關的問題並採取措施解決它們。

更新時間: 2023年2月17日

16K+ 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告