Files
KnowledgeBase/docs/SWOOLE_CONFIGURATION.md
lizhuoran 3c206e9e06 feat: 新增 Docker 部署支持、Swoole/Octane 集成及相关优化
- 添加 Dockerfile 与多套 docker-compose 配置(开发/生产环境)
- 集成 Laravel Octane (Swoole) 提升性能
- 新增健康检查、监控脚本及部署文档
- 新增 Docker 镜像离线导入包(MySQL/Redis/Meilisearch)
- 优化文档转换、预览服务及队列任务
- 添加 CreateAdminUser 命令与路由健康检查接口
- 新增 Swoole 队列兼容性测试套件

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-28 15:51:19 +08:00

180 lines
4.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Swoole 配置说明
## 概述
本文档描述了 Laravel Octane + Swoole 集成的环境变量配置。这些配置已经添加到所有环境配置文件中,支持不同环境下的优化设置。
## 环境变量配置
### 核心 Swoole 配置
| 环境变量 | 默认值 | 说明 |
|---------|--------|------|
| `OCTANE_SERVER` | `swoole` | 指定使用 Swoole 作为 Octane 服务器 |
| `OCTANE_HOST` | `0.0.0.0` | 服务器绑定的 IP 地址 |
| `OCTANE_PORT` | `8000` | 服务器监听端口 |
| `OCTANE_WORKERS` | `4` | 工作进程数量 |
| `OCTANE_TASK_WORKERS` | `2` | 任务工作进程数量 |
| `OCTANE_MAX_REQUESTS` | `500` | 工作进程处理的最大请求数 |
| `OCTANE_WATCH` | `false` | 是否启用文件监控自动重启 |
| `OCTANE_HTTPS` | `false` | 是否强制使用 HTTPS |
### 高级配置
| 环境变量 | 默认值 | 说明 |
|---------|--------|------|
| `OCTANE_GARBAGE_COLLECTION` | `50` | 垃圾回收阈值MB |
| `OCTANE_MAX_EXECUTION_TIME` | `30` | 最大执行时间(秒) |
| `OCTANE_CACHE_ROWS` | `1000` | Swoole 缓存表行数 |
| `OCTANE_CACHE_BYTES` | `10000` | 每行缓存字节数 |
## 不同环境的配置
### 开发环境 (.env.development)
```bash
# 开发环境优化配置
OCTANE_WORKERS=2 # 较少的工作进程
OCTANE_TASK_WORKERS=1 # 较少的任务进程
OCTANE_MAX_REQUESTS=100 # 较少的最大请求数
OCTANE_WATCH=true # 启用文件监控
OCTANE_GARBAGE_COLLECTION=25 # 较低的垃圾回收阈值
OCTANE_MAX_EXECUTION_TIME=60 # 较长的执行时间用于调试
```
### 生产环境 (.env.production)
```bash
# 生产环境优化配置
OCTANE_WORKERS=8 # 更多的工作进程
OCTANE_TASK_WORKERS=4 # 更多的任务进程
OCTANE_MAX_REQUESTS=1000 # 更多的最大请求数
OCTANE_WATCH=false # 禁用文件监控
OCTANE_GARBAGE_COLLECTION=100 # 较高的垃圾回收阈值
OCTANE_MAX_EXECUTION_TIME=30 # 标准执行时间
```
## 性能调优建议
### 工作进程数量
- **开发环境**: 2-4 个进程,避免资源浪费
- **生产环境**: CPU 核心数的 1-2 倍,通常 4-8 个进程
- **高负载环境**: 可以增加到 CPU 核心数的 2-4 倍
### 最大请求数
- **开发环境**: 100-500 请求后重启,便于内存清理
- **生产环境**: 500-2000 请求后重启,平衡性能和内存使用
- **内存敏感**: 降低到 200-500频繁重启释放内存
### 垃圾回收阈值
- **开发环境**: 25-50MB及时清理内存
- **生产环境**: 50-100MB减少垃圾回收频率
- **大内存服务器**: 可以设置到 200MB 以上
## 启动命令
### 基本启动
```bash
# 使用默认配置启动
php artisan octane:start
# 指定参数启动
php artisan octane:start --workers=4 --task-workers=2 --port=8000
```
### 开发模式启动
```bash
# 启用文件监控
php artisan octane:start --watch
# 指定日志级别
php artisan octane:start --log-level=debug
```
### 生产模式启动
```bash
# 生产环境启动
php artisan octane:start --workers=8 --task-workers=4 --max-requests=1000
```
## 监控和管理
### 服务器状态
```bash
# 查看服务器状态
php artisan octane:status
# 停止服务器
php artisan octane:stop
# 重启服务器
php artisan octane:restart
# 重新加载服务器(优雅重启)
php artisan octane:reload
```
### 配置验证
```bash
# 查看当前 Octane 配置
php artisan config:show octane
# 清除配置缓存
php artisan config:clear
```
## 注意事项
### 内存管理
1. **避免内存泄漏**: 确保在请求结束后清理大对象
2. **监控内存使用**: 定期检查工作进程的内存使用情况
3. **合理设置最大请求数**: 防止内存累积过多
### 开发注意事项
1. **全局变量**: 避免使用全局变量,它们会在请求间保持状态
2. **静态变量**: 小心使用静态变量,可能导致数据污染
3. **单例服务**: 确保单例服务能正确重置状态
### 生产部署
1. **进程监控**: 使用 Supervisor 或类似工具监控 Octane 进程
2. **负载均衡**: 在多服务器环境中配置负载均衡
3. **健康检查**: 实现健康检查接口监控服务状态
## 故障排除
### 常见问题
1. **端口被占用**: 检查端口是否被其他服务占用
2. **权限问题**: 确保有足够权限绑定指定端口
3. **内存不足**: 调整工作进程数量或增加服务器内存
4. **配置不生效**: 清除配置缓存后重启服务
### 调试命令
```bash
# 检查 Swoole 扩展
php -m | grep swoole
# 测试配置
php artisan octane:start --workers=1 --max-requests=1
# 查看详细日志
php artisan octane:start --log-level=debug
```
## 更新历史
- **2024-12-29**: 初始配置,添加所有环境变量支持
- 支持开发、生产环境的差异化配置
- 添加高级配置选项支持