cpu memory limit - daniel-qa/Laradock GitHub Wiki

cpu memory limit

docker inspect laradock_mysql_1 | grep -E 'Memory|CpuShares'
            "CpuShares": 0,
            "Memory": 0,
            "KernelMemory": 0,
            "KernelMemoryTCP": 0,
            "MemoryReservation": 0,
            "MemorySwap": 0,

0 代表無預設值(無限制)


  • 關於預設值
Docker Compose 本身沒有提供默認的 CPU 和內存限制,而是將其交給 Docker 引擎來處理。
因此,如果在 Laradock 的 docker-compose.yml 文件中沒有明確指定 cpus 和 mem_limit,則會使用 Docker 的默認值。

docker 引擎的 cpu,memory 預設值

  • 使用以下命令查看 Docker 配置資訊:
docker info

在輸出中,你會看到一些有關 Docker 引擎的資訊,包括 CPU 和內存的默認值。

要查看單個容器的 CPU 和內存限制,可以使用以下命令:

docker inspect --format='{{.HostConfig.CPUShares}}' container_id

使用 docker inpsect ,找到 Cpu 和 memory 的設定

"HostConfig": {
    "CpuShares": 0,
    "Memory": 0,
    // 其他配置...
},

設定為 0,代表沒有限制

docker inspect laradock_nginx_1 | grep CpuShares
            "CpuShares": 0,

docker inspect laradock_nginx_1 | grep Memory
            "Memory": 0,
            "KernelMemory": 0,
            "KernelMemoryTCP": 0,
            "MemoryReservation": 0,
            "MemorySwap": 0,
            "MemorySwappiness": null,
docker inspect CONTAINER_ID_OR_NAME | grep -E 'Memory|CpuShares'

  deploy:
    resources:
      limits:
        cpus: "0.50"
        memory: "150M"

services:
  php-fpm:
    image: laradock/php-fpm:latest
    container_name: my-php-fpm
    cpus: "0.5"
    mem_limit: "512M"

PHP Memory 限制

  • php.ini

進入容器後,你可以使用以下命令找到 php.ini 文件的位置:

php --ini

; Maximum amount of memory a script may consume (128MB)
; http://php.net/memory-limit
memory_limit = 128M

/usr/local/etc/php/php.ini

找到 php.ini 後

使用 grep "memory" php.ini

取得 memory limit

; Maximum amount of memory a script may consume (128MB)
; http://php.net/memory-limit
memory_limit = 256M