高并发 Docker 化 Laravel 应用调优方案(64C/512G/SSD)
一、Docker 编排与资源分配优化
1. Docker 全局配置 (/etc/docker/daemon.json
)
{
"default-ulimits": {
"nofile": {
"Name": "nofile", "Soft": 1048576, "Hard": 1048576 }
},
"log-driver": "json-file",
"log-opts": {
"max-size": "100m", "max-file": "3"},
"storage-driver": "overlay2",
"storage-opts": ["overlay2.override_kernel_check=true"],
"oom-score-adjust": -1000
}
2. Docker Compose 资源分配 (docker-compose.yml
)
version: '3.8'
services:
php:
image: php:7.4-fpm
deploy:
resources:
limits:
cpus: '48'
memory: 96G
volumes:
- ./src:/var/www/html
- ./php/php.ini:/usr/local/etc/php/php.ini
mysql:
image: mysql:5.7
deploy:
resources:
limits:
cpus: '32'
memory: 256G
volumes:
- ./mysql/data:/var/lib/mysql
- ./mysql/my.cnf:/etc/mysql/my.cnf
redis:
image: redis:6-alpine
deploy:
resources:
limits:
cpus: '8'
memory: 48G
command:
- redis-server
- --maxmemory 40G
- --maxmemory-policy allkeys-lfu
- --io-threads 8
nginx:
image: nginx:1.21-alpine
deploy:
resources:
limits:
cpus: '16'
memory: 16G
volumes:
- ./nginx/nginx.conf:/etc/nginx/nginx.conf
ports:
- "80:80"
networks:
app_net:
driver: bridge
attachable: true
二、核心服务深度调优
1. PHP 7.4-FPM 调优 (php/php.ini
)